diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..b14d842
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,6 @@
+[submodule "lib/xedit"]
+ path = lib/xedit
+ url = git@github.com:TES5Edit/TES5Edit.git
+[submodule "lib/loggerpro"]
+ path = lib/loggerpro
+ url = git@github.com:danieleteti/loggerpro.git
diff --git a/frontend/Fallout3.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat b/frontend/Fallout3.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat
deleted file mode 100644
index eadd153..0000000
Binary files a/frontend/Fallout3.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat and /dev/null differ
diff --git a/frontend/Fallout4.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat b/frontend/Fallout4.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat
deleted file mode 100644
index 8e937e2..0000000
Binary files a/frontend/Fallout4.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat and /dev/null differ
diff --git a/frontend/FalloutNV.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat b/frontend/FalloutNV.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat
deleted file mode 100644
index c5773d1..0000000
Binary files a/frontend/FalloutNV.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat and /dev/null differ
diff --git a/frontend/MatorSmash.dpr b/frontend/MatorSmash.dpr
old mode 100644
new mode 100755
index ade3a49..499c299
--- a/frontend/MatorSmash.dpr
+++ b/frontend/MatorSmash.dpr
@@ -1,16 +1,17 @@
-{*******************************************************************************
+{ *******************************************************************************
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
+ The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
-*******************************************************************************}
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ ******************************************************************************* }
program MatorSmash;
@@ -21,7 +22,6 @@ uses
Dialogs,
Controls,
SysUtils,
- // lib\mte
CRC32 in '..\lib\mte\CRC32.pas',
mteBase in '..\lib\mte\mteBase.pas',
mteChangeLogForm in '..\lib\mte\mteChangeLogForm.pas',
@@ -35,8 +35,7 @@ uses
RttiJson in '..\lib\mte\RttiJson.pas',
RttiTranslation in '..\lib\mte\RttiTranslation.pas',
W7Taskbar in '..\lib\mte\W7Taskbar.pas',
- // lib\xedit
- wbBSA in '..\lib\xedit\wbBSA.pas',
+ wbInit in '..\lib\xedit\wbInit.pas',
wbDefinitionsFNV in '..\lib\xedit\wbDefinitionsFNV.pas',
wbDefinitionsFO3 in '..\lib\xedit\wbDefinitionsFO3.pas',
wbDefinitionsFO4 in '..\lib\xedit\wbDefinitionsFO4.pas',
@@ -49,7 +48,6 @@ uses
wbLocalization in '..\lib\xedit\wbLocalization.pas',
wbSort in '..\lib\xedit\wbSort.pas',
wbStreams in '..\lib\xedit\wbStreams.pas',
- // Smash
msConfiguration in 'msConfiguration.pas',
msCore in 'msCore.pas',
msLoader in 'msLoader.pas',
@@ -57,18 +55,21 @@ uses
msChoicePanel in 'msChoicePanel.pas',
msSmash in 'msSmash.pas',
msAlgorithm in 'msAlgorithm.pas',
- msProfileForm in 'msProfileForm.pas' {ProfileForm},
+ msProfileForm in 'msProfileForm.pas' {ProfileForm} ,
msProfilePanel in 'msProfilePanel.pas',
- msSmashForm in 'msSmashForm.pas' {SmashForm},
+ msSmashForm in 'msSmashForm.pas' {SmashForm} ,
msThreads in 'msThreads.pas',
- msOptionsForm in 'msOptionsForm.pas' {OptionsForm},
- msSplashForm in 'msSplashForm.pas' {SplashForm},
- msEditForm in 'msEditForm.pas' {EditForm},
- msSettingsManager in 'msSettingsManager.pas' {SettingsManager},
- msPluginSelectionForm in 'msPluginSelectionForm.pas' {MiniPluginSelectionForm},
- msConflictForm in 'msConflictForm.pas' {ConflictForm},
- msTagManager in 'msTagManager.pas' {TagManager},
- msTagHelper in 'msTagHelper.pas' {TagHelper};
+ msOptionsForm in 'msOptionsForm.pas' {OptionsForm} ,
+ msSplashForm in 'msSplashForm.pas' {SplashForm} ,
+ msEditForm in 'msEditForm.pas' {EditForm} ,
+ msSettingsManager in 'msSettingsManager.pas' {SettingsManager} ,
+ msPluginSelectionForm
+ in 'msPluginSelectionForm.pas' {MiniPluginSelectionForm} ,
+ msConflictForm in 'msConflictForm.pas' {ConflictForm} ,
+ msTagManager in 'msTagManager.pas' {TagManager} ,
+ msTagHelper in 'msTagHelper.pas' {TagHelper} ,
+ Vcl.Themes,
+ Vcl.Styles;
{$R *.res}
{$MAXSTACKSIZE 2097152}
@@ -76,32 +77,34 @@ uses
const
IMAGE_FILE_LARGE_ADDRESS_AWARE = $0020;
-
-{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
+{$SETPEFLAGS IMAGE_FILE_LARGE_ADDRESS_AWARE}
var
bProfileProvided, bUseUTF8: boolean;
sParam, sProfile, sPath: string;
i: Integer;
aSettings: TSettings;
+
begin
// set important vars
SysUtils.FormatSettings.DecimalSeparator := '.';
Application.HintHidePause := 8000;
- //ReportMemoryLeaksOnShutdown := true;
+ // ReportMemoryLeaksOnShutdown := true;
PathList.Values['ProgramPath'] := ExtractFilePath(ParamStr(0));
// get current profile if profile switch provided
- for i := 1 to ParamCount do begin
+ for i := 1 to ParamCount do
+ begin
sParam := ParamStr(i);
if sParam = '-profile' then
sProfile := ParamStr(i + 1);
if sParam = '-utf8' then
- wbStringEncoding := seUTF8;
+ wbEncoding := TEncoding.UTF8;
end;
bProfileProvided := sProfile <> '';
sPath := Format('%sprofiles\%s\settings.ini', [ProgramPath, sProfile]);
- if bProfileProvided and FileExists(sPath) then begin
+ if bProfileProvided and FileExists(sPath) then
+ begin
aSettings := TSettings.Create;
TRttiIni.Load(sPath, aSettings);
CurrentProfile := TProfile.Create(aSettings.profile);
@@ -117,9 +120,10 @@ begin
LoadStatistics;
// have user select game mode
- if not bProfileProvided then begin
+ if not bProfileProvided then
+ begin
ProfileForm := TProfileForm.Create(nil);
- if not (ProfileForm.ShowModal = mrOk) then
+ if not(ProfileForm.ShowModal = mrOk) then
exit;
ProfileForm.Free;
end;
@@ -137,4 +141,5 @@ begin
Application.CreateForm(TTagManager, TagManager);
Application.CreateForm(TTagHelper, TagHelper);
Application.Run;
+
end.
diff --git a/frontend/MatorSmash.dproj b/frontend/MatorSmash.dproj
old mode 100644
new mode 100755
index 5dc8112..d62cda5
--- a/frontend/MatorSmash.dproj
+++ b/frontend/MatorSmash.dproj
@@ -1,220 +1,1302 @@
-
-
- {12317C9C-736E-45A4-8CB7-E43FF92DD93C}
- MatorSmash.dpr
- True
- Release
- Application
- VCL
- DCC32
- 13.4
- Win32
- 1
- Win32
-
-
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- true
- Base
- true
-
-
- vcl;rtl;vclx;vclactnband;xmlrtl;VclSmp;vclimg;svnui;svn;bdertl;TeeUI;TeeDB;Tee;vcldb;dbrtl;vcldbx;vcltouch;dsnap;dsnapcon;vclib;ibxpress;adortl;IndyCore;IndySystem;IndyProtocols;inet;intrawebdb_110_150;Intraweb_110_150;vclie;websnap;webdsnap;inetdb;inetdbbde;inetdbxpress;soaprtl;vclribbon;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;DataSnapClient;dbxcds;DbxClientDriver;DataSnapServer;AzureCloud;DBXInterBaseDriver;DBXMySQLDriver;DBXFirebirdDriver;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver
- ..\lib\Imaging\ZLib;..\lib\abbrevia\source;..\lib\Imaging;..\lib\xedit;..\lib\mte;..\lib\superobject;..\lib\xedit\zlib;..\lib\xedit\lz4;$(DCC_UnitSearchPath)
- false
- false
- false
- false
- false
- TES5Edit_Icon.ico
- false
- false
- None
- 3081
- CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
- Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;FMX;System.Win;$(DCC_Namespace)
- false
- 00400000
- false
- false
- false
- false
-
-
- true
- DEBUG;NX_EXCEPTION_LOG_IN_APP_FOLDER;$(DCC_Define)
- 3
- DetailedSegments
-
-
- .\DebugLite
- DEBUG;NX_EXCEPTION_LOG_IN_APP_FOLDER;LiteVersion;$(DCC_Define)
- 3
- DetailedSegments
- true
-
-
- false
- false
- false
- false
- false
- 0
-
-
-
- MainSource
-
-
- RC
- RC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Cfg_2
- Base
-
-
- Cfg_4
- Base
-
-
- Base
-
-
- Cfg_1
- Base
-
-
-
-
-
- Delphi.Personality.12
- VCLApplication
-
-
-
- MatorSmash.dpr
-
-
- True
- False
- 1
- 0
- 1
- 0
- True
- True
- False
- False
- False
- 1033
- 1252
-
-
-
-
- 1.0.1.0
-
-
-
-
- Mator Smash
- 1.0
- created by matortheeternal
-
-
- Embarcadero C++Builder Office 2000 Servers Package
- Embarcadero C++Builder Office XP Servers Package
- Microsoft Office 2000 Sample Automation Server Wrapper Components
- Microsoft Office XP Sample Automation Server Wrapper Components
-
-
-
-
- False
- True
-
- True
-
- 12
-
-
+
+
+ {12317C9C-736E-45A4-8CB7-E43FF92DD93C}
+ MatorSmash.dpr
+ True
+ Release
+ Application
+ VCL
+ DCC32
+ 19.2
+ Win64
+ 3
+ Win32
+
+
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_2
+ true
+ true
+
+
+ true
+ Cfg_2
+ true
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_4
+ true
+ true
+
+
+ true
+ Base
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ true
+ Cfg_1
+ true
+ true
+
+
+ vcl;rtl;vclx;vclactnband;xmlrtl;VclSmp;vclimg;svnui;svn;bdertl;TeeUI;TeeDB;Tee;vcldb;dbrtl;vcldbx;vcltouch;dsnap;dsnapcon;vclib;ibxpress;adortl;IndyCore;IndySystem;IndyProtocols;inet;intrawebdb_110_150;Intraweb_110_150;vclie;websnap;webdsnap;inetdb;inetdbbde;inetdbxpress;soaprtl;vclribbon;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;DataSnapClient;dbxcds;DbxClientDriver;DataSnapServer;AzureCloud;DBXInterBaseDriver;DBXMySQLDriver;DBXFirebirdDriver;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;$(DCC_UsePackage)
+ ..\lib\Imaging\ZLib;..\lib\abbrevia\source;..\lib\Imaging;..\lib\xedit;..\lib\mte;..\lib\superobject;..\lib\xedit\lz4;..\lib\xedit\zlib;..\lib\xedit\FileContainer;..\lib\xedit\tools\BSArchive;..\lib\xedit\tools\BSArchive\TForge;..\lib\LoggerPro;$(DCC_UnitSearchPath)
+ false
+ false
+ false
+ false
+ false
+ TES5Edit_Icon.ico
+ false
+ false
+ None
+ 3081
+ CompanyName=;FileDescription=;FileVersion=2.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+ Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;FMX;System.Win;$(DCC_Namespace)
+ false
+ 00400000
+ false
+ false
+ false
+ false
+ MatorSmash
+ true
+ true
+ true
+ 2
+
+
+ Resources\smash.png
+ Resources\smash.png
+ MatorSmash_Icon.ico
+
+
+ Resources\smash.png
+ Resources\smash.png
+ Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)
+ Debug
+ CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=2.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
+ 1033
+ $(BDS)\bin\default_app.manifest
+ MatorSmash_Icon.ico
+
+
+ true
+ DEBUG;NX_EXCEPTION_LOG_IN_APP_FOLDER;$(DCC_Define)
+ 3
+ DetailedSegments
+ false
+ 2
+ CompanyName=;FileDescription=;FileVersion=1.2.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
+
+
+ MatorSmash_Icon.ico
+ Debug
+
+
+ true
+ PerMonitorV2
+
+
+ .\DebugLite
+ DEBUG;NX_EXCEPTION_LOG_IN_APP_FOLDER;LiteVersion;$(DCC_Define)
+ 3
+ DetailedSegments
+ true
+
+
+ true
+ PerMonitorV2
+
+
+ 0
+ false
+ false
+ false
+ false
+ 0
+
+
+ Debug
+ MatorSmash_Icon.ico
+
+
+ true
+ PerMonitorV2
+ 1033
+ CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=2.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
+ MatorSmash_Icon.ico
+ $(BDS)\bin\default_app.manifest
+
+
+
+ MainSource
+
+
+ RC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+ Cfg_4
+ Base
+
+
+ Cfg_2
+ Base
+
+
+ Cfg_1
+ Base
+
+
+
+
+
+ Delphi.Personality.12
+ VCLApplication
+
+
+
+ MatorSmash.dpr
+
+
+ True
+ False
+ 1
+ 0
+ 1
+ 0
+ True
+ True
+ False
+ False
+ False
+ 1033
+ 1252
+
+
+
+
+ 1.0.1.0
+
+
+
+
+ Mator Smash
+ 1.0
+ created by matortheeternal
+
+
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
+
+
+
+
+ True
+ True
+
+ False
+
+
+
+ Assets\
+ Logo44x44.png
+ true
+
+
+
+
+ .\
+ true
+
+
+
+
+ MatorSmash.exe
+ true
+
+
+
+
+ .\
+ true
+
+
+
+
+ MatorSmash.exe
+ true
+
+
+
+
+ Assets\
+ Logo44x44.png
+ true
+
+
+
+
+ 1
+
+
+ 0
+
+
+
+
+ classes
+ 1
+
+
+ classes
+ 1
+
+
+
+
+ res\xml
+ 1
+
+
+ res\xml
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ library\lib\armeabi
+ 1
+
+
+ library\lib\armeabi
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ library\lib\mips
+ 1
+
+
+ library\lib\mips
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+ library\lib\arm64-v8a
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ res\drawable
+ 1
+
+
+ res\drawable
+ 1
+
+
+
+
+ res\values
+ 1
+
+
+ res\values
+ 1
+
+
+
+
+ res\values-v21
+ 1
+
+
+ res\values-v21
+ 1
+
+
+
+
+ res\values
+ 1
+
+
+ res\values
+ 1
+
+
+
+
+ res\drawable
+ 1
+
+
+ res\drawable
+ 1
+
+
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+
+
+ res\drawable-ldpi
+ 1
+
+
+ res\drawable-ldpi
+ 1
+
+
+
+
+ res\drawable-mdpi
+ 1
+
+
+ res\drawable-mdpi
+ 1
+
+
+
+
+ res\drawable-hdpi
+ 1
+
+
+ res\drawable-hdpi
+ 1
+
+
+
+
+ res\drawable-xhdpi
+ 1
+
+
+ res\drawable-xhdpi
+ 1
+
+
+
+
+ res\drawable-mdpi
+ 1
+
+
+ res\drawable-mdpi
+ 1
+
+
+
+
+ res\drawable-hdpi
+ 1
+
+
+ res\drawable-hdpi
+ 1
+
+
+
+
+ res\drawable-xhdpi
+ 1
+
+
+ res\drawable-xhdpi
+ 1
+
+
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+ res\drawable-xxhdpi
+ 1
+
+
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+ res\drawable-xxxhdpi
+ 1
+
+
+
+
+ res\drawable-small
+ 1
+
+
+ res\drawable-small
+ 1
+
+
+
+
+ res\drawable-normal
+ 1
+
+
+ res\drawable-normal
+ 1
+
+
+
+
+ res\drawable-large
+ 1
+
+
+ res\drawable-large
+ 1
+
+
+
+
+ res\drawable-xlarge
+ 1
+
+
+ res\drawable-xlarge
+ 1
+
+
+
+
+ res\values
+ 1
+
+
+ res\values
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+
+
+ 1
+ .framework
+
+
+ 1
+ .framework
+
+
+ 0
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 0
+ .dll;.bpl
+
+
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 1
+ .dylib
+
+
+ 0
+ .bpl
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+ ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+ ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
+ 1
+
+
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+
+
+ Contents\Resources
+ 1
+
+
+ Contents\Resources
+ 1
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+ library\lib\arm64-v8a
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+
+
+ library\lib\armeabi-v7a
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+ Assets
+ 1
+
+
+ Assets
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 12
+
+
+
diff --git a/frontend/MatorSmash.res b/frontend/MatorSmash.res
old mode 100644
new mode 100755
index 9bafe39..fd69226
Binary files a/frontend/MatorSmash.res and b/frontend/MatorSmash.res differ
diff --git a/frontend/MatorSmash_Icon.ico b/frontend/MatorSmash_Icon.ico
new file mode 100644
index 0000000..c0f9ea8
Binary files /dev/null and b/frontend/MatorSmash_Icon.ico differ
diff --git a/frontend/Oblivion.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat b/frontend/Oblivion.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat
deleted file mode 100644
index fc7c5e2..0000000
Binary files a/frontend/Oblivion.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat and /dev/null differ
diff --git a/frontend/Skyrim.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat b/frontend/Skyrim.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat
deleted file mode 100644
index 2d237ce..0000000
Binary files a/frontend/Skyrim.Hardcoded.keep.this.with.the.exe.and.otherwise.ignore.it.I.really.mean.it.dat and /dev/null differ
diff --git a/frontend/lang/russian.lang b/frontend/lang/russian.lang
new file mode 100755
index 0000000..f2c844a
--- /dev/null
+++ b/frontend/lang/russian.lang
@@ -0,0 +1,182 @@
+{ TSmashForm }
+{ ## QuickBar ## }
+msMain_QuickButton_Hint=Быстрый патч|Применить Smash.All к загруженным плагинам и #13#10сгенерировать Smashed Patch.#13#10
+msMain_NewButton_Hint=Создать новый Smashed Patch|Создать новый пустой Smashed Patch.
+msMain_BuildButton_Hint=Собрать патчи|
+msMain_ManageButton_Hint=Управление настройками Smash|Нажмите здесь, чтобы управлять настройками Smash.
+msMain_OptionsButton_Hint=Параметры|Измените параметры, определяющие, как #13#10программа работает.#13#10
+{ #### DYNAMIC #### }
+msMain_NoPatches=Нет никаких патчей для сборки или пересборки.
+msMain_BuildPatches_Loader=Вы не можете строить патчи, пока фоновый #13#10загручик не загрузится.#13#10
+msMain_BuildAllPatches=Собирает все патчи, которые готовы к сборке или #13#10пересобирает.#13#10
+{ ## Main Panel ## }
+{ ## Details Panel ## }
+msMain_DetailsLabel_Caption=Детали
+msMain_DetailsCopyToClipboardItem_Caption=Скопировать в буфер обмена
+{ ## Plugins Tab ## }
+msMain_PluginsTabSheet_Caption=Плагины
+msMain_PluginsListView_Column0=Индекс
+msMain_PluginsListView_Column1=Имя файла
+msMain_PluginsListView_Column2=Настройка
+msMain_PluginsListView_Column3=Патч
+{ #### DYNAMIC #### }
+msMain_PluginDetails=Детали плагина
+msMain_Filename=Имя файла
+msMain_Hash=Хеш
+msMain_FileSize=Размер файла
+msMain_DateModified=Дата изменения
+msMain_NumRecords=Количество записей
+msMain_NumOverrides=Количество перезаписей
+msMain_Author=Автор
+msMain_Description=Описание
+msMain_Masters=Мастер-файлы
+msMain_ClearTags=Вы уверены, что хотите удалить теги из этих плагинов?
+{ ## Plugins Popup Menu ## }
+msMain_NewPatchItem_Caption=
+msMain_OpenPluginLocationItem_Caption=Открыть расположение плагина
+msMain_AddToPatchItem_Caption=Добавить в патч
+msMain_ManageTagsItem_Caption=Управление тегами
+msMain_SmashSettingItem_Caption=Настройки Smash
+{ ## Patches Tab ## }
+msMain_PatchesTabSheet_Caption=Патчи
+msMain_PatchesListView_Column0=Индекс
+msMain_PatchesListView_Column1=Имя
+msMain_PatchesListView_Column2=Имя файла
+msMain_PatchesListView_Column3=Размер
+msMain_PatchesListView_Column4=Дата создания
+{ #### DYNAMIC #### }
+msMain_PatchDetails=Детали патча
+msMain_Status=Статус
+msMain_PatchName=Название патча
+msMain_PluginCount=Количество плагинов
+msMain_DateBuilt=Дата создания
+msMain_Plugins=Плагины
+msMain_Fails=Ошибки
+msMain_TooManyFails=Слишком много ошибок для отображения.
+msMain_DeletePatches=Вы уверены, что хотите удалить эти патчи?
+{ ## Patches Popup Menu ## }
+msMain_ToggleRebuildItem_Caption=Переключить статус пересборки
+msMain_OpenInExplorerItem_Caption=Открыть в проводнике
+{ ## Plugins Submenu ## }
+msMain_MoveItem_Caption=Переместить
+msMain_UpItem_Caption=Вверх
+msMain_DownItem_Caption=вниз
+msMain_ToTopItem_Caption=К началу
+msMain_ToBottomItem_Caption=К концу
+{ #### DYNAMIC #### }
+msMain_BuildPatch=Собрать патч
+msMain_RebuildPatch=Пересобрать патч
+msMain_BuildPatches=Собрать патчи
+msMain_RebuildPatches=Пересобрать патчи
+{ ## Log Tab ## }
+msMain_LogTabSheet_Caption=Лог
+{ #### DYNAMIC #### }
+msMain_AppDetails=Детали приложения
+msMain_Application=Приложение
+msMain_Author=Автор
+msMain_Version=Версия
+msMain_DateBuilt=Дата создания
+msMain_GameMode=Режим игры
+msMain_Language=Язык
+msMain_TimesRun=Раз запущено
+msMain_PatchesBuilt=Создано патчей
+msMain_PluginsSmashed=Плагинов пропатчено
+msMain_SettingsSubmitted=Настройки Smash отправлены
+msMain_RecsSubmitted=Представленные рекомендации
+msMain_Website=Веб-сайт
+msMain_ApiCredits=Кредиты API
+msMain_xEditVersion=Версия xEdit
+msMain_xEditCredits=Кредиты xEdit
+msMain_Testers=Тестеры
+msMain_Translators=Переводчики
+msMain_LoadException=Исключение загрузки плагинов
+msMain_PluginsNotLoaded=В связи с исключением, не все ваши плагины #13#10были загружены. Вы все еще можете использовать программу. #13#10См. вкладку лога для получения дополнительной информации.#13#10
+msMain_Enable=Включить
+msMain_Disable=Выключить
+msMain_AutoScroll=Автопрокрутка
+{ ## Log Popup Menu ## }
+msMain_FilterGroupItem_Caption=Группа фильтров
+msMain_FilterLabelItem_Caption=Filter label
+msMain_CopyToClipboardItem_Caption=Скопировать
+msMain_SaveAndClearItem_Caption=Сохранить и очистить
+msMain_ToggleAutoScrollItem_Caption=Отключить автопрокрутку
+
+{ TOptionsForm }
+mpOpt_btnCancel_Caption=Отмена
+mpOpt_btnOK_Caption=OK
+{ ## General Tab ## }
+mpOpt_GeneralTabSheet_Caption=Основные
+mpOpt_gbLanguage_Caption=Язык
+mpOpt_lblLanguage_Caption=Выбранный язык
+mpOpt_gbStyle_Caption=Стиль
+mpOpt_kbSimpleDictionary_Caption=Простой просмотр словаря
+mpOpt_kbSimplePlugins_Caption=Простой сисок плагинов
+{ ## Patching Tab ## }
+mpOpt_PatchingTabSheet_Caption=Патчинг
+mpOpt_lblDestinationDirectory_Caption=Каталог назначения патча
+mpOpt_gbDebug_Caption=Отладка
+mpOpt_gbOther_Caption=Остальные опции
+{ ## Advanced Tab ## }
+mpOpt_AdvancedTabSheet_Caption=Дополнительно
+mpOpt_lblCurrentProfile_Caption=Выбранный профиль
+mpOpt_gbLogging_Caption=Логирование (создание логов)
+mpOpt_lblClientColor_Caption=Client
+mpOpt_lblGeneralColor_Caption=Основные
+mpOpt_lblLoadColor_Caption=Загрузка
+mpOpt_lblPluginColor_Caption=Плагин
+mpOpt_lblErrorColor_Caption=Ошибки
+mpOpt_lblTemplate_Caption=Образец
+mpOpt_lblSample_Caption=Пример
+
+{ TSettingsManager }
+{ ## Settings ## }
+msSet_gbFiltering_Caption=Параметры фильтрации
+msSet_lvSettings_Column0=Имя
+msSet_lvSettings_Column1=Записи
+msSet_btnSave_Caption=Сохранить
+msSet_btnDiscard_Caption=Отменить
+{ ## Settings Popup Menu ## }
+msSet_NewSettingItem_Caption=Новая настройка
+msSet_CloneSettingItem_Caption=Скопировать настройку
+msSet_CombineSettingsItem_Caption=Скомбинировать настройки
+msSet_EditSettingItem_Caption=Редактировать настройку
+msSet_DeleteSettingItem_Caption=Удалить настройку
+{ ## Details ## }
+msSet_lblName_Caption=Название
+msSet_lblColor_Caption=Цвет
+msSet_lblDescription_Caption=Описание
+msSet_lblTree_Caption=Дерево
+{ ## Tree Popup Menu ## }
+msSet_ToggleNodesItem_Caption=Toggle Nodes
+msSet_IgnoreDeletionsItem_Caption=Toggle ignore deletions
+msSet_SingleEntityItem_Caption=Toggle treat as single entity
+msSet_PruneNodesItem_Caption=Prune nodes
+msSet_PreserveDeletionsItem_Caption=Toggle preserve deletions
+
+{ TTagManager }
+msTagM_Caption=Manage Tags - %s
+{ ## General ## }
+msTagM_lblDescription_Caption=Описание
+msTagM_btnAdd_Caption=Добавить теги
+msTagM_btnRemove_Caption=Удалить теги
+msTagM_btnClear_Caption=Очистить теги
+msTagM_btnReset_Caption=Сбросить теги
+msTagM_btnApply_Caption=Применить
+msTagM_btnCancel_Caption=Отмена
+msTagM_kbCombine_Caption=Применить скомбинированную настройку
+
+{ TTagHelper }
+msTagH_btnCancel_Caption=Отмена
+msTagH_btnOK_Caption=OK
+{ #### DYNAMIC #### }
+msTagH_AddTags=Добавить теги
+msTagH_RemoveTags=Удалить теги
+msTagH_PromptAdd=Отметьте теги, которые хотите добавить
+msTagH_PromptRemove=Отметьте теги, которые хотите удалить
+
+{ TProgressForm }
+{ #### DYNAMIC #### }
+msProg_Closing=Закрытие
+msProg_Smashing=Создание патча
+msProg_DoneBuilding=Создание патча закончено
+msProg_BuildingTree=Создание дерево
\ No newline at end of file
diff --git a/frontend/msAlgorithm.pas b/frontend/msAlgorithm.pas
old mode 100644
new mode 100755
index e028206..4058af4
--- a/frontend/msAlgorithm.pas
+++ b/frontend/msAlgorithm.pas
@@ -3,7 +3,7 @@
interface
uses
- SysUtils, Classes,
+ SysUtils, Classes, Math,
// superobject
superobject,
// mte units
@@ -13,10 +13,10 @@ interface
// xEdit components
wbInterface, wbImplementation;
- procedure CopyLinkedElement(srcCont, dstCont: IwbContainerElementRef;
- eLink: string; obj: ISuperObject; dstRec: IwbMainRecord);
- function rcore(src, mst, dst: IwbElement; dstrec: IwbMainRecord;
- obj: ISuperObject; bSingle, bDeletions, bOverride: boolean): boolean;
+procedure CopyLinkedElement(srcCont, dstCont: IwbContainerElementRef;
+ eLink: string; obj: ISuperObject; dstRec: IwbMainRecord);
+function rcore(src, mst, dst: IwbElement; dstRec: IwbMainRecord;
+ obj: ISuperObject; bSingle, bDeletions, bOverride: boolean): boolean;
implementation
@@ -24,23 +24,25 @@ implementation
firstLink: string;
bLinkProcessed: boolean;
-{
- ElementByKey:
- Gets an element from a container, @e, matching a specified @key.
- If @bUseSortKey is true uses SortKey, else uses GetAllValues.
-}
-function ElementByKey(e: IwbElement; key: string; bUseSortKey: boolean): IwbElement;
+ {
+ ElementByKey:
+ Gets an element from a container, @e, matching a specified @key.
+ If @bUseSortKey is true uses SortKey, else uses GetAllValues.
+ }
+function ElementByKey(e: IwbElement; key: string; bUseSortKey: boolean)
+ : IwbElement;
var
i: Integer;
c: IwbContainerElementRef;
element: IwbElement;
eKey: string;
begin
- if not Supports(e, IwbContainerElementRef, c) then
+ if not Supports(e, IwbContainerElementRef, c) then
exit;
-
+
// loop through children elements
- for i := 0 to Pred(c.ElementCount) do begin
+ for i := 0 to Pred(c.ElementCount) do
+ begin
element := c.Elements[i];
// get sort key if bUseSortKey, else get values key
if bUseSortKey then
@@ -48,7 +50,8 @@ function ElementByKey(e: IwbElement; key: string; bUseSortKey: boolean): IwbElem
else
eKey := GetAllValues(element);
// if keys match result is current element
- if eKey = key then begin
+ if eKey = key then
+ begin
Result := element;
break;
end;
@@ -61,7 +64,8 @@ function ElementByKey(e: IwbElement; key: string; bUseSortKey: boolean): IwbElem
destination patch record @dstRec.
}
function HandleElementLife(srcCont, dstCont, mstCont: IwbContainerElementRef;
- dstRec: IwbMainRecord; obj: ISuperObject; bSingle, bDeletions, bOverride: boolean): boolean;
+ dstRec: IwbMainRecord; obj: ISuperObject;
+ bSingle, bDeletions, bOverride: boolean): boolean;
var
i: Integer;
element: IwbElement;
@@ -72,7 +76,8 @@ function HandleElementLife(srcCont, dstCont, mstCont: IwbContainerElementRef;
Result := false;
// handle element creation
- for i := 0 to Pred(srcCont.ElementCount) do begin
+ for i := 0 to Pred(srcCont.ElementCount) do
+ begin
element := srcCont.Elements[i];
// if the element isn't in the destination record
@@ -81,67 +86,76 @@ function HandleElementLife(srcCont, dstCont, mstCont: IwbContainerElementRef;
// that it was deleted and shouldn't be copied.
bInDestination := Assigned(dstCont.ElementByName[element.Name]);
bInMaster := Assigned(mstCont.ElementByName[element.Name]);
- if (not bInDestination) and (bOverride or not bInMaster) then begin
+ if (not bInDestination) and (bOverride or not bInMaster) then
+ begin
Result := true;
- if bSingle then
+ if bSingle then
exit;
// skip according to setting
eObj := GetElementObj(obj, element.Name);
- process := Assigned(eObj) and (eObj.I['p'] = 1);
- if not process then begin
+ process := Assigned(eObj) and (eObj.i['p'] = 1);
+ if not process then
+ begin
if settings.debugSkips then
- Tracker.Write(' Skipping element creation at '+element.Path);
+ Tracker.Write(' Skipping element creation at ' + element.FullPath);
continue;
end;
// copy element
try
if settings.debugChanges then
- Tracker.Write(' Created element at '+element.Path);
- wbCopyElementToRecord(element, dstRec, false, true);
+ Tracker.Write(' Created element at ' + element.FullPath);
+ dstCont.AddIfMissing(element, false, true, '', '', '', '', true);
// if another element is linked to the element, copy it
eLink := eObj.S['lf'];
- if (eLink <> '') then begin
+ if (eLink <> '') then
+ begin
firstLink := eLink;
bLinkProcessed := false;
CopyLinkedElement(srcCont, dstCont, eLink, obj, dstRec);
end;
except
on x: Exception do
- Tracker.Write(' HandleElementLife: Failed to copy '+element.Path+', '+x.Message);
+ Tracker.Write(' HandleElementLife: Failed to copy ' +
+ element.FullPath + ', ' + x.Message);
end;
end;
end;
// handle element deletion
- if bDeletions then begin
- for i := Pred(dstCont.ElementCount) downto 0 do begin
+ if bDeletions then
+ begin
+ for i := Pred(dstCont.ElementCount) downto 0 do
+ begin
element := dstCont.Elements[i];
- if Assigned(mstCont.ElementByName[element.Name]) and
- not Assigned(srcCont.ElementByName[element.Name]) then begin
+ if Assigned(mstCont.ElementByName[element.Name]) and
+ not Assigned(srcCont.ElementByName[element.Name]) then
+ begin
Result := true;
if bSingle then
exit;
// skip according to setting
eObj := GetElementObj(obj, element.Name);
- process := Assigned(eObj) and (eObj.I['p'] = 1);
- if not process then begin
+ process := Assigned(eObj) and (eObj.i['p'] = 1);
+ if not process then
+ begin
if settings.debugSkips then
- Tracker.Write(' Skipping element deletion at '+element.Path);
+ Tracker.Write(' Skipping element deletion at ' + element.FullPath);
continue;
end;
// remove element
if settings.debugChanges then
- Tracker.Write(' Deleted element at '+element.Path);
+ Tracker.Write(' Deleted element at ' + element.FullPath);
dstCont.RemoveElement(element);
// if another element is linked to the element, copy it
eLink := eObj.S['lf'];
- if (eLink <> '') then begin
+ if (eLink <> '') then
+ begin
firstLink := eLink;
bLinkProcessed := false;
CopyLinkedElement(srcCont, dstCont, eLink, obj, dstRec);
@@ -152,38 +166,41 @@ function HandleElementLife(srcCont, dstCont, mstCont: IwbContainerElementRef;
end;
// GetMasterElement: Gets the first instance of an element (the master)
-function GetMasterElement(src, se: IwbElement; dstRec: IwbMainRecord): IwbElement;
+function GetMasterElement(src, se: IwbElement; dstRec: IwbMainRecord)
+ : IwbElement;
const
debugGetMaster = false;
var
- i: integer;
- path, key: string;
+ i: Integer;
+ Path, key: string;
mstRec, ovr: IwbMainRecord;
mst: IwbElement;
bSorted: boolean;
begin
Result := nil;
mstRec := dstRec.MasterOrSelf;
- path := IndexedPath(src);
+ Path := IndexedPath(src);
bSorted := IsSorted(src);
-
+
// if sorted, use SortKey, else use GetAllValues
- if bSorted then
+ if bSorted then
key := se.SortKey[false]
else
key := GetAllValues(se);
-
+
// debug message
- if debugGetMaster then
- Tracker.Write(' Called GetMasterElement at path '+path+' looking for key '+key);
-
+ if debugGetMaster then
+ Tracker.Write(' Called GetMasterElement at path ' + Path +
+ ' looking for key ' + key);
+
// loop from override 0 to the second to last override
// last override is in our patch, we don't want to process that one
- for i := 0 to mstRec.OverrideCount - 2 do begin
+ for i := 0 to mstRec.OverrideCount - 2 do
+ begin
ovr := mstRec.Overrides[i];
- mst := ElementByIndexedPath(mstRec, path);
+ mst := ElementByIndexedPath(mstRec, Path);
Result := ElementByKey(mst, key, bSorted);
-
+
// break if we found a subrecord matching the sortkey
if Result <> nil then
break;
@@ -196,14 +213,15 @@ function GetMasterElement(src, se: IwbElement; dstRec: IwbMainRecord): IwbElemen
Uses SortKey if @bUseSortKeys is true, else uses GetAllValues.
}
procedure BuildKeyList(container: IwbContainerElementRef; var sl: TStringList;
- bUseSortKeys: boolean);
+ bUseSortKeys: Boolean);
var
- i, n: integer;
+ i, n: Integer;
childElement: IwbElement;
key, adjustedKey: string;
begin
// loop through children elements
- for i := 0 to Pred(container.ElementCount) do begin
+ for i := 0 to Pred(container.ElementCount) do
+ begin
childElement := container.Elements[i];
// use sort if bUseSortKeys is true, else use GetAllValues
@@ -215,7 +233,8 @@ procedure BuildKeyList(container: IwbContainerElementRef; var sl: TStringList;
// find a non-colliding key
n := 0;
adjustedKey := key;
- while (sl.IndexOf(adjustedKey) > -1) do begin
+ while (sl.IndexOf(adjustedKey) > -1) do
+ begin
Inc(n);
adjustedKey := key + IntToStr(n);
end;
@@ -234,10 +253,10 @@ procedure BuildKeyList(container: IwbContainerElementRef; var sl: TStringList;
deletions if @bDeletions if true. Tracks @dstRec and @obj for
calling rcore on element containers in sorted arrays.
}
-function MergeArray(src, mst, dst: IwbElement; dstrec: IwbMainRecord;
+function MergeArray(src, mst, dst: IwbElement; dstRec: IwbMainRecord;
obj: ISuperObject; bSingle, bDeletions, bOverride: boolean): boolean;
var
- i, s_ndx, m_ndx, d_ndx: integer;
+ i, s_ndx, m_ndx, d_ndx, a_ndx: Integer;
se, de: IwbElement;
slMst, slDst, slSrc: TStringList;
srcCont, dstCont, mstCont, seCont: IwbContainerElementRef;
@@ -248,7 +267,7 @@ function MergeArray(src, mst, dst: IwbElement; dstrec: IwbMainRecord;
// exit if input array elements can't be treated as a containers
if not Supports(src, IwbContainerElementRef, srcCont) then
exit;
- if not Supports(mst, IwbContainerElementRef, mstCont) then
+ if Assigned(mst) and not Supports(mst, IwbContainerElementRef, mstCont) then
exit;
if not Supports(dst, IwbContainerElementRef, dstCont) then
exit;
@@ -262,27 +281,33 @@ function MergeArray(src, mst, dst: IwbElement; dstrec: IwbMainRecord;
slDst := TStringList.Create;
try
BuildKeyList(srcCont, slSrc, bSorted);
- BuildKeyList(mstCont, slMst, bSorted);
+ if Assigned(mst) then
+ BuildKeyList(mstCont, slMst, bSorted);
BuildKeyList(dstCont, slDst, bSorted);
// ELEMENT DELETION:
// Remove elements that are in master and destination, but
// missing from source
if bDeletions then
- for i := 0 to Pred(slMst.Count) do begin
+ for i := 0 to Pred(slMst.Count) do
+ begin
s_ndx := slSrc.IndexOf(slMst[i]);
// element from master isn't in source
- if (s_ndx = -1) then begin
+ if (s_ndx = -1) then
+ begin
Result := true;
// if we're in a treat as single, exit without removing anything
- if bSingle then exit;
+ if bSingle then
+ exit;
// if element is present in destination, remove it
d_ndx := slDst.IndexOf(slMst[i]);
- if (d_ndx = -1) then continue;
+ if (d_ndx = -1) then
+ continue;
if settings.debugArrays then
- Tracker.Write(' > Removing element at '+dst.Path+' with key: '+slMst[i]);
- dstCont.RemoveElement(d_ndx);
+ Tracker.Write(' > Removing element at ' + dst.FullPath +
+ ' with key: ' + slMst[i]);
+ dstCont.RemoveElement(d_ndx, true);
slDst.Delete(d_ndx);
end;
end;
@@ -290,43 +315,67 @@ function MergeArray(src, mst, dst: IwbElement; dstrec: IwbMainRecord;
// ELEMENT ADDITION:
// Copy array elements in source that aren't in master
// or destination
- for i := 0 to Pred(slSrc.Count) do begin
+ for i := 0 to Pred(slSrc.Count) do
+ begin
d_ndx := slDst.IndexOf(slSrc[i]);
m_ndx := slMst.IndexOf(slSrc[i]);
se := srcCont.Elements[i];
-
- if (d_ndx = -1) and ((m_ndx = -1) or bOverride) then begin
+ if (d_ndx = -1) and ((m_ndx = -1) or bOverride) then
+ begin
Result := true;
// if we're in a treat as single, exit without adding anything
- if bSingle then exit;
+ if bSingle then
+ exit;
// add element to destination
- if settings.debugArrays then
- Tracker.Write(' > Adding element at '+dst.Path+' with key: '+slSrc[i]);
- de := dstCont.Assign(dstCont.ElementCount, se, false);
if bSorted then
- slDst.Insert(dstCont.IndexOf(de), slSrc[i])
+ begin
+ if settings.debugArrays then
+ Tracker.Write(' > Adding element at ' + dst.FullPath +
+ ' with key: ' + slSrc[i]);
+ de := dstCont.Assign(dstCont.ElementCount, se, false);
+ slDst.Insert(dstCont.IndexOf(de), slSrc[i]);
+ end
else
- slDst.Add(slSrc[i]);
+ begin
+ a_ndx := Min(i, dstCont.ElementCount);
+ if settings.debugArrays then
+ Tracker.Write(' > Adding element at ' + dstCont.FullPath +
+ ' at index ' + a_ndx.ToString + ' with key: ' + slSrc[i]);
+ de := dstCont.Assign(dstCont.ElementCount, se, false);
+ dstCont.ResetMemoryOrder;
+ // Just inserting at a_ndx didn't work right...
+ while de.MemoryOrder > a_ndx do
+ de.MoveUp;
+ slDst.Insert(a_ndx, slSrc[i]);
+ end;
end
// Special handling for sorted arrays
// Traverses elements that may have been modified without their sortkey changing
- else if bSorted and (d_ndx > -1) and Supports(se, IwbContainerElementRef, seCont)
- and (seCont.ElementCount > 0) then begin
- if settings.debugArrays then begin
- Tracker.Write(' > Traversing element '+se.Path+' with key: '+slSrc[i]);
- Tracker.Write(' > Source Element: '+GetAllValues(se));
- Tracker.Write(' > Destination Element: '+GetAllValues(dstCont.Elements[d_ndx]));
+ else if bSorted and (d_ndx > -1) and Supports(se, IwbContainerElementRef,
+ seCont) and (seCont.ElementCount > 0) then
+ begin
+ if settings.debugArrays then
+ begin
+ Tracker.Write(' > Traversing element ' + se.FullPath +
+ ' with key: ' + slSrc[i]);
+ Tracker.Write(' > Source Element: ' + GetAllValues(se));
+ Tracker.Write(' > Destination Element: ' +
+ GetAllValues(dstCont.Elements[d_ndx]));
end;
// traverse element
try
- Result := rcore(se, GetMasterElement(src, se, dstrec), dstCont.Elements[d_ndx],
- dstrec, GetElementObj(obj, se.Name), bSingle, bDeletions, bOverride);
+ Result := rcore(se, GetMasterElement(src, se, dstRec),
+ dstCont.Elements[d_ndx], dstRec, GetElementObj(obj, se.Name),
+ bSingle, bDeletions, bOverride);
if Result and bSingle then
exit;
- except on x : Exception do begin
- Tracker.Write(' rcore: Exception at '+se.Path+': '+x.Message);
+ except
+ on x: Exception do
+ begin
+ Tracker.Write(' rcore: Exception at ' + se.FullPath + ': ' +
+ x.Message);
end;
end;
end;
@@ -339,31 +388,162 @@ function MergeArray(src, mst, dst: IwbElement; dstrec: IwbMainRecord;
end;
end;
-{
+procedure BuildFlagList(container: IwbContainerElementRef; var sl: TStringList);
+var
+ i, n: Integer;
+ childElement: IwbElement;
+ key, adjustedKey: string;
+begin
+ // loop through children elements
+ for i := 0 to Pred(container.ElementCount) do
+ begin
+ childElement := container.Elements[i];
+
+ key := childElement.Name;
+
+ // find a non-colliding key
+ n := 0;
+ adjustedKey := key;
+ while (sl.IndexOf(adjustedKey) > -1) do
+ begin
+ Inc(n);
+ adjustedKey := key + IntToStr(n);
+ end;
+
+ // add adjusted key to stringlist
+ sl.Add(adjustedKey);
+ end;
+end;
+
+function MergeFlags(src, mst, dst: IwbElement; dstRec: IwbMainRecord;
+ obj: ISuperObject; bSingle, bDeletions, bOverride: boolean): boolean;
+var
+ i, s_ndx, m_ndx, d_ndx, fi: Integer;
+ val: String;
+ se: IwbElement;
+ slMst, slDst, slSrc: TStringList;
+ srcCont, dstCont, mstCont: IwbContainerElementRef;
+begin
+ Result := false;
+
+ // exit if input array elements can't be treated as a containers
+ if not Supports(src, IwbContainerElementRef, srcCont) then
+ exit;
+ if not Supports(mst, IwbContainerElementRef, mstCont) then
+ exit;
+ if not Supports(dst, IwbContainerElementRef, dstCont) then
+ exit;
+
+ // Build lists of element keys in each array for easy comparison
+ slSrc := TStringList.Create;
+ slMst := TStringList.Create;
+ slDst := TStringList.Create;
+ try
+ BuildFlagList(srcCont, slSrc);
+ BuildFlagList(mstCont, slMst);
+ BuildFlagList(dstCont, slDst);
+
+ // ELEMENT DELETION:
+ // Remove elements that are in master and destination, but
+ // missing from source
+ if bDeletions then
+ for i := 0 to Pred(slMst.Count) do
+ begin
+ s_ndx := slSrc.IndexOf(slMst[i]);
+
+ // element from master isn't in source
+ if (s_ndx = -1) then
+ begin
+ Result := true;
+ // if we're in a treat as single, exit without removing anything
+ if bSingle then
+ exit;
+ // if element is present in destination, remove it
+ d_ndx := slDst.IndexOf(slMst[i]);
+ if (d_ndx = -1) then
+ continue;
+ if settings.debugArrays then
+ Tracker.Write(' > Removing flag at ' + dst.FullPath +
+ ' with key: ' + slMst[i]);
+ fi := (mstCont.Elements[i].Def as IwbFlagDef).FlagIndex;
+ val := dstCont.EditValue;
+ val[fi + 1] := '0';
+ dstCont.EditValue := val;
+ slDst.Delete(d_ndx);
+ end;
+ end;
+
+ // ELEMENT ADDITION:
+ // Copy array elements in source that aren't in master
+ // or destination
+ for i := 0 to Pred(slSrc.Count) do
+ begin
+ d_ndx := slDst.IndexOf(slSrc[i]);
+ m_ndx := slMst.IndexOf(slSrc[i]);
+ se := srcCont.Elements[i];
+
+ if (d_ndx = -1) and ((m_ndx = -1) or bOverride) then
+ begin
+ Result := true;
+ // if we're in a treat as single, exit without adding anything
+ if bSingle then
+ exit;
+ // add element to destination
+ if settings.debugArrays then
+ Tracker.Write(' > Adding flag at ' + dst.FullPath + ' with key: ' +
+ slSrc[i]);
+ fi := (se.Def as IwbFlagDef).FlagIndex;
+ val := dstCont.EditValue.PadRight(fi + 1, '0');
+ val[fi + 1] := '1';
+ dstCont.EditValue := val;
+ slDst.Add(slSrc[i]);
+ end
+ end;
+ finally
+ // free lists
+ slMst.Free;
+ slSrc.Free;
+ slDst.Free;
+ end;
+end;
+
+{
CopyElementValue:
Copies the edit value of @se to @de.
}
procedure CopyElementValue(se, me, de: IwbElement);
begin
- if not de.IsEditable then begin
- if settings.debugChanges then begin
- Tracker.Write(' Unable to copy element value on '+se.path);
+ if not de.IsEditable then
+ begin
+ if settings.debugChanges then
+ begin
+ Tracker.Write(' Unable to copy element value on ' + se.FullPath);
Tracker.Write(' Element is not editable');
end;
exit;
end;
- if Assigned(me) and settings.debugChanges then begin
+ if Assigned(me) and settings.debugChanges then
+ begin
if (not settings.debugTraversal) then
- Tracker.Write(' '+se.Path);
- Tracker.Write(' > Found differing values: '+se.EditValue+', '+me.EditValue);
+ Tracker.Write(' ' + se.FullPath);
+ Tracker.Write(' > Found differing values: ' + se.EditValue + ', ' +
+ me.EditValue);
end;
// try to copy element value to destination element from source element
try
- de.EditValue := se.EditValue;
- except on x : Exception do
- Tracker.Write(' CopyElementValue: Exception '+x.Message);
+
+ try
+ // TODO: Why does sinply setting EditValue sometimes do nothing??
+ de.container.AddIfMissing(se, false, false, '', '', '', '', true);
+ except
+ // If AddIfMissing fails try just setting it...
+ de.EditValue := se.EditValue;
+ end;
+ except
+ on x: Exception do
+ Tracker.Write(' CopyElementValue: Exception ' + x.Message);
end;
end;
@@ -380,7 +560,8 @@ procedure CopyLinkedElement(srcCont, dstCont: IwbContainerElementRef;
cLink: string;
begin
// exit if we reached the first link in a chain
- if (eLink = firstLink) then begin
+ if (eLink = firstLink) then
+ begin
if bLinkProcessed then
exit;
bLinkProcessed := true;
@@ -391,13 +572,14 @@ procedure CopyLinkedElement(srcCont, dstCont: IwbContainerElementRef;
cObj := GetElementObj(obj, eLink);
le := srcCont.ElementByName[eLink];
de := dstCont.ElementByName[eLink];
- if Assigned(le) then begin
+ if Assigned(le) then
+ begin
if settings.debugLinks then
- Tracker.Write(' Copying linked element '+le.Path);
+ Tracker.Write(' Copying linked element ' + le.FullPath);
if Assigned(de) then
de.Assign(Low(Integer), le, false)
else
- dstCont.AddIfMissing(le, true, true, '', '', '');
+ dstCont.AddIfMissing(le, true, true, '', '', '', '', true);
// follow chain
cLink := cObj.S['lf'];
if cLink <> '' then
@@ -405,13 +587,14 @@ procedure CopyLinkedElement(srcCont, dstCont: IwbContainerElementRef;
end;
except
on x: Exception do
- Tracker.Write(' CopyLinkedElement: Failed to copy '+eLink+', '+x.Message);
+ Tracker.Write(' CopyLinkedElement: Failed to copy ' + eLink + ', '
+ + x.Message);
end;
end;
{
HandleElement:
- Wrapper function around the logic for recursing into child
+ Wrapper function around the logic for recursing into child
elements (rcore), handling an array, or copying element values.
}
function HandleElement(se, me, de: IwbElement; dstRec: IwbMainRecord;
@@ -429,30 +612,34 @@ function HandleElement(se, me, de: IwbElement; dstRec: IwbMainRecord;
dstType := GetSmashType(de);
// other type information
- bIsContainer := Supports(se, IwbContainerElementRef, container)
- and (container.ElementCount > 0);
- bCanAdd := se.CanAssign(High(Integer), nil, True)
- and not (esNotSuitableToAddTo in se.ElementStates);
+ bIsContainer := Supports(se, IwbContainerElementRef, container) and
+ (container.ElementCount > 0);
+ bCanAdd := se.CanAssign(High(Integer), nil, true) and
+ not(esNotSuitableToAddTo in se.ElementStates);
// exit if srcType <> dstType, returning true
- if srcType <> dstType then begin
- if settings.debugSkips then begin
+ if srcType <> dstType then
+ begin
+ if settings.debugSkips then
+ begin
Tracker.Write(' Source and destination types don''t match');
- Tracker.Write(' '+stToString(srcType)+' != '+stToString(dstType));
- Tracker.Write(' Skipping '+se.Path);
+ Tracker.Write(' ' + stToString(srcType) + ' != ' +
+ stToString(dstType));
+ Tracker.Write(' Skipping ' + se.FullPath);
end;
- Result := True;
+ Result := true;
exit;
end;
// exit if master element not assigned and not array
- if not Assigned(me) then begin
- if bCanAdd and (srcType in stArrays) then
- me := de
- else begin
- if settings.debugSkips then begin
+ if not Assigned(me) then
+ begin
+ if not (bCanAdd and (srcType in stArrays)) then
+ begin
+ if settings.debugSkips then
+ begin
Tracker.Write(' Master element not found!');
- Tracker.Write(' Skipping '+se.Path);
+ Tracker.Write(' Skipping ' + se.FullPath);
end;
exit;
end;
@@ -460,70 +647,105 @@ function HandleElement(se, me, de: IwbElement; dstRec: IwbMainRecord;
// debug messages
if settings.debugTraversal then
- Tracker.Write(' '+se.Path);
- if settings.debugTypes then begin
- Tracker.Write(' bCanAdd: '+BoolToStr(bCanAdd, true));
- Tracker.Write(' SmashType: '+stToString(srcType));
+ Tracker.Write(' ' + se.FullPath);
+ if settings.debugTypes then
+ begin
+ Tracker.Write(' bCanAdd: ' + BoolToStr(bCanAdd, true));
+ Tracker.Write(' SmashType: ' + stToString(srcType));
+ Tracker.Write(' bIsContainer: ' + BoolToStr(bIsContainer, true));
end;
// merge array
- if bCanAdd and (srcType in stArrays) then begin
+ if bCanAdd and (srcType in stArrays) then
+ begin
if settings.debugTraversal then
Tracker.Write(' Merging array');
try
- Result := MergeArray(se, me, de, dstrec, obj, bSingle, bDeletions, bOverride);
- except on x : Exception do
- Tracker.Write(' MergeArray: Exception at '+se.Path+': '+x.Message);
+ Result := MergeArray(se, me, de, dstRec, obj, bSingle, bDeletions,
+ bOverride);
+ except
+ on x: Exception do
+ Tracker.Write(' MergeArray: Exception at ' + se.FullPath + ': ' +
+ x.Message);
+ end;
+ end
+ // merge flags
+ else if bIsContainer and (srcType = stInteger) then
+ begin
+ if settings.debugTraversal then
+ Tracker.Write(' Merging flags');
+ try
+ Result := MergeFlags(se, me, de, dstRec, obj, bSingle, bDeletions,
+ bOverride);
+ except
+ on x: Exception do
+ Tracker.Write(' MergeFlags: Exception at ' + se.FullPath + ': ' +
+ x.Message);
end;
end
// else recurse deeper
- else if bIsContainer and (srcType <> stInteger) then begin
+ else if bIsContainer and (srcType <> stInteger) then
+ begin
if settings.debugTraversal then
Tracker.Write(' Recursing deeper');
try
- Result := rcore(se, me, de, dstrec, obj, bSingle, bDeletions, bOverride);
- except on x : Exception do
- Tracker.Write(' rcore: Exception at '+se.Path+': '+x.Message);
+ Result := rcore(se, me, de, dstRec, obj, bSingle, bDeletions, bOverride);
+ except
+ on x: Exception do
+ Tracker.Write(' rcore: Exception at ' + se.FullPath + ': ' +
+ x.Message);
end;
end
// else copy element value
- else if (srcType in stValues) then begin
+ else if (srcType in stValues) then
+ begin
seVal := se.EditValue;
meVal := me.EditValue;
- if (seVal <> meVal) then begin
+ if (seVal <> meVal) then
+ begin
if not bSingle then
CopyElementValue(se, me, de);
Result := true;
end
- else if settings.debugSkips then begin
+ else if settings.debugSkips then
+ begin
Tracker.Write(Format(' Skipping, "%s" = "%s"', [seVal, meVal]));
end;
end
- else if settings.debugSkips then begin
+ else if settings.debugSkips then
+ begin
Tracker.Write(Format(' Skipping, %s is not a value type',
[stToString(srcType)]));
end;
end;
+function MatchingElement(e: IwbElement; i: Integer;
+ cont: IwbContainerElementRef): IwbElement;
+begin
+ Result := cont.Elements[i];
+ if (not Assigned(Result)) or (not Result.Name.Equals(e.Name)) then
+ Result := cont.ElementByName[e.Name];
+end;
+
{
rcore:
Recursively copy overridden elements. Recursively traverses elements,
- comparing between a source element (from an override record) @src, a
- master element @mst, and a destination element @dst. Tracks the
- destination patch record for element copying through @dstRec. Uses a
- json tree @obj to determine user settings for traversal. Uses @bSingle
- to determine when we're in a "single entity" as specified by the user,
- and @bDeletions to determine when it's ok to delete removed elements
+ comparing between a source element (from an override record) @src, a
+ master element @mst, and a destination element @dst. Tracks the
+ destination patch record for element copying through @dstRec. Uses a
+ json tree @obj to determine user settings for traversal. Uses @bSingle
+ to determine when we're in a "single entity" as specified by the user,
+ and @bDeletions to determine when it's ok to delete removed elements
from the destination patch record.
-
+
- Uses HandleElementLife to resolve element creation/deletion.
- Uses HandleElement to handle arrays, recurse deeper, or copy element
- values
+ values
}
function rcore(src, mst, dst: IwbElement; dstRec: IwbMainRecord;
obj: ISuperObject; bSingle, bDeletions, bOverride: boolean): boolean;
var
- i: integer;
+ i: Integer;
srcCont, dstCont, mstCont: IwbContainerElementRef;
se, me, de: IwbElement;
process, eSingle, eDeletions, eOverride: boolean;
@@ -533,94 +755,111 @@ function rcore(src, mst, dst: IwbElement; dstRec: IwbMainRecord;
Result := false;
// prepare containers
- if not Supports(src, IwbContainerElementRef, srcCont) then begin
- if settings.debugSkips then begin
+ if not Supports(src, IwbContainerElementRef, srcCont) then
+ begin
+ if settings.debugSkips then
+ begin
Tracker.Write(' Source element not a container.');
- Tracker.Write(' Skipping '+src.Path);
+ Tracker.Write(' Skipping ' + src.FullPath);
end;
exit;
end;
- if not Supports(dst, IwbContainerElementRef, dstCont) then begin
- if settings.debugSkips then begin
+ if not Supports(dst, IwbContainerElementRef, dstCont) then
+ begin
+ if settings.debugSkips then
+ begin
Tracker.Write(' Destination element not a container.');
- Tracker.Write(' Skipping '+src.Path);
+ Tracker.Write(' Skipping ' + src.FullPath);
end;
exit;
end;
- if not Supports(mst, IwbContainerElementRef, mstCont) then begin
- if settings.debugSkips then begin
+ if not Supports(mst, IwbContainerElementRef, mstCont) then
+ begin
+ if settings.debugSkips then
+ begin
Tracker.Write(' Master element not a container.');
- Tracker.Write(' Skipping '+src.Path);
+ Tracker.Write(' Skipping ' + src.FullPath);
end;
exit;
end;
// copy elements from source to destination if missing AND
// delete elements missing from source if found in master and destination
- Result := HandleElementLife(srcCont, dstCont, mstCont, dstRec, obj, bSingle, bDeletions, bOverride);
- if bSingle and Result then begin
+ Result := HandleElementLife(srcCont, dstCont, mstCont, dstRec, obj, bSingle,
+ bDeletions, bOverride);
+ if bSingle and Result then
+ begin
if settings.debugSingle then
- Tracker.Write(' Single entity change found at '+src.Path);
+ Tracker.Write(' Single entity change found at ' + src.FullPath);
exit;
end;
// loop through subelements
- for i := 0 to Pred(srcCont.ElementCount) do begin
+ for i := 0 to Pred(srcCont.ElementCount) do
+ begin
// assign source, destination, master elements
se := srcCont.Elements[i];
- de := dstCont.ElementByName[se.Name];
- me := mstCont.ElementByName[se.Name];
+ de := MatchingElement(se, i, dstCont);
+ me := MatchingElement(se, i, mstCont);
// skip if destination element not assigned
- if not Assigned(de) then begin
- if settings.debugSkips then begin
+ if not Assigned(de) then
+ begin
+ if settings.debugSkips then
+ begin
Tracker.Write(' Destination element not found!');
- Tracker.Write(' Skipping '+se.Path);
+ Tracker.Write(' Skipping ' + se.FullPath);
end;
continue;
end;
// skip according to setting
eObj := GetElementObj(obj, se.Name);
- process := Assigned(eObj) and (eObj.I['p'] = 1);
- if not process then begin
+ process := Assigned(eObj) and (eObj.i['p'] = 1);
+ if not process then
+ begin
if settings.debugSkips then
- Tracker.Write(' Skipping '+se.Path);
+ Tracker.Write(' Skipping ' + se.FullPath);
continue;
end;
// set element treat as single entity / ignore deletions booleans
- eSingle := bSingle or (eObj.I['s'] = 1);
- eDeletions := bDeletions or (eObj.I['d'] = 1);
- eOverride := bOverride or (eObj.I['o'] = 1);
+ eSingle := bSingle or (eObj.i['s'] = 1);
+ eDeletions := bDeletions or (eObj.i['d'] = 1);
+ eOverride := bOverride or (eObj.i['o'] = 1);
// handle element
- Result := HandleElement(se, me, de, dstRec, eObj, eSingle, eDeletions, eOverride);
+ Result := HandleElement(se, me, de, dstRec, eObj, eSingle, eDeletions,
+ eOverride);
// if we're in a single entity and an element is changed, break
// we don't need to handle anything anymore
- if bSingle and Result then begin
+ if bSingle and Result then
+ begin
if settings.debugSingle then
- Tracker.Write(' Single entity change found at '+se.Path);
+ Tracker.Write(' Single entity change found at ' + se.FullPath);
break;
end;
// if the element we're processing has the single entity flag set
// and we're not currently in a single entity, copy entire element
- if eSingle and (not bSingle) and Result then try
- if settings.debugSingle then
- Tracker.Write(Format(' Copying single entity %s', [se.path]));
- de.Assign(Low(Integer), se, false);
- except
- on x: Exception do
- Tracker.Write(' rcore: Failed to copy '+se.Path+', '+x.Message);
- end;
+ if eSingle and (not bSingle) and Result then
+ try
+ if settings.debugSingle then
+ Tracker.Write(Format(' Copying single entity %s', [se.FullPath]));
+ de.Assign(Low(Integer), se, false);
+ except
+ on x: Exception do
+ Tracker.Write(' rcore: Failed to copy ' + se.FullPath + ', ' +
+ x.Message);
+ end;
// if another element is linked to the element being processed
// and the element being processed has been modified, copy the linked
// element
eLink := eObj.S['lf'];
- if Result and (eLink <> '') then begin
+ if Result and (eLink <> '') then
+ begin
firstLink := eLink;
bLinkProcessed := false;
CopyLinkedElement(srcCont, dstCont, eLink, obj, dstRec);
diff --git a/frontend/msChoicePanel.pas b/frontend/msChoicePanel.pas
old mode 100644
new mode 100755
index 0aa1f64..a1e4cde
--- a/frontend/msChoicePanel.pas
+++ b/frontend/msChoicePanel.pas
@@ -12,6 +12,7 @@ interface
type
TSenderCallback = procedure(Sender: TObject) of object;
+
TChoicePanel = class(TPanel)
public
Selected: boolean;
@@ -39,22 +40,21 @@ TChoicePanel = class(TPanel)
implementation
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ TChoicePanel
A GUI component for interacting with a profile.
}
-{******************************************************************************}
+{ ****************************************************************************** }
constructor TChoicePanel.Create(AOwner: TComponent);
begin
// set up panel
inherited Create(AOwner);
Parent := AOwner as TWinControl;
- Width := (AOwner as TWinControl).ClientWidth;
+ width := (AOwner as TWinControl).ClientWidth;
Height := 36;
Left := 0;
- Top := 0;
+ top := 0;
ParentBackground := false;
ParentColor := false;
ParentDoubleBuffered := false;
@@ -65,7 +65,7 @@ constructor TChoicePanel.Create(AOwner: TComponent);
// set local variables
Selected := false;
ColorUnselected := Color;
- ColorSelected := $f0ece4;
+ ColorSelected := $F0ECE4;
lstChoices := TList.Create;
// create components
@@ -74,7 +74,7 @@ constructor TChoicePanel.Create(AOwner: TComponent);
// set up lblSig
lblSig.Parent := self;
- lblSig.Top := 10;
+ lblSig.top := 10;
lblSig.Left := 16;
lblSig.Caption := 'SIGN';
lblSig.Cursor := crHandPoint;
@@ -83,9 +83,9 @@ constructor TChoicePanel.Create(AOwner: TComponent);
// set up cbGame
cbChoices.Parent := self;
- cbChoices.Top := 8;
+ cbChoices.top := 8;
cbChoices.Left := 75;
- cbChoices.Width := Width - cbChoices.Left - 6;
+ cbChoices.width := width - cbChoices.Left - 6;
cbChoices.Style := csDropDownList;
cbChoices.Items.Text := '';
cbChoices.Items.Add('Patch');
@@ -110,14 +110,20 @@ destructor TChoicePanel.Destroy;
{ EVENT HANDLING }
procedure TChoicePanel.SettingChanged(Sender: TObject);
begin
- if Assigned(SelectCallback) then SelectCallback(self);
+ if Assigned(SelectCallback) then
+ SelectCallback(self);
end;
procedure TChoicePanel.ToggleSelect(Sender: TObject);
begin
- if Cursor = crHandPoint then begin
- if Selected then Deselect else Select;
- if Assigned(SelectCallback) then SelectCallback(self);
+ if Cursor = crHandPoint then
+ begin
+ if Selected then
+ Deselect
+ else
+ Select;
+ if Assigned(SelectCallback) then
+ SelectCallback(self);
end;
end;
diff --git a/frontend/msConfiguration.pas b/frontend/msConfiguration.pas
old mode 100644
new mode 100755
index c859e48..b720ab8
--- a/frontend/msConfiguration.pas
+++ b/frontend/msConfiguration.pas
@@ -18,6 +18,7 @@ interface
appIDs: string;
bsaOptMode: string;
end;
+
TSettings = class(TObject)
public
[IniSection('General')]
@@ -39,6 +40,9 @@ TSettings = class(TObject)
logMessageTemplate: string;
preserveTempPath: boolean;
allowTagging: boolean;
+ flagESL: boolean;
+ smashGhosts: boolean;
+ multiThreadedSmash: boolean;
smashSound: boolean;
[IniSection('Patching')]
patchDirectory: string;
@@ -55,6 +59,7 @@ TSettings = class(TObject)
preserveITPOs: boolean;
constructor Create; virtual;
end;
+
TStatistics = class(TObject)
public
[IniSection('Statistics')]
@@ -65,35 +70,37 @@ TStatistics = class(TObject)
recsSubmitted: integer;
constructor Create; virtual;
end;
+
TProfile = class(TObject)
public
name: string;
- gameMode: Integer;
+ gameMode: integer;
gamePath: string;
constructor Create(name: string); virtual;
procedure Clone(p: TProfile);
procedure Delete;
procedure Rename(name: string);
end;
+
TProgramStatus = class(TObject)
public
bInitException, bLoadException, bChangeProfile, bForceTerminate,
- bLoaderDone, bInstallUpdate, bUpdatePatchStatus, bClose: boolean;
- GameMode: TGameMode;
+ bLoaderDone, bInstallUpdate, bUpdatePatchStatus, bClose: boolean;
+ gameMode: TGameMode;
Version: String;
constructor Create; virtual;
end;
- procedure DeleteTempPath;
- procedure LoadLanguage;
- function GetLanguageString(name: string): string;
- procedure SaveProfile(var p: TProfile);
- procedure LoadSettings; overload;
- function LoadSettings(path: string): TSettings; overload;
- procedure SaveSettings; overload;
- procedure SaveSettings(var s: TSettings; path: string); overload;
- procedure LoadStatistics;
- procedure SaveStatistics;
+procedure DeleteTempPath;
+procedure LoadLanguage;
+function GetLanguageString(name: string): string;
+procedure SaveProfile(var p: TProfile);
+procedure LoadSettings; overload;
+function LoadSettings(path: string): TSettings; overload;
+procedure SaveSettings; overload;
+procedure SaveSettings(var s: TSettings; path: string); overload;
+procedure LoadStatistics;
+procedure SaveStatistics;
var
settings: TSettings;
@@ -107,26 +114,30 @@ TProgramStatus = class(TObject)
bTranslationDump = false;
// GAME MODES
- GameArray: array[1..6] of TGameMode = (
- ( longName: 'Skyrim'; gameName: 'Skyrim'; gameMode: gmTES5;
- regName: 'Skyrim'; appName: 'TES5'; exeName: 'TESV.exe'; appIDs: '72850';
- bsaOptMode: 'sk'; ),
- ( longName: 'Oblivion'; gameName: 'Oblivion'; gameMode: gmTES4;
- regName: 'Oblivion'; appName: 'TES4'; exeName: 'Oblivion.exe';
- appIDs: '22330,900883'; bsaOptMode: 'ob'; ),
- ( longName: 'Fallout New Vegas'; gameName: 'FalloutNV'; gameMode: gmFNV;
- regName: 'FalloutNV'; appName: 'FNV'; exeName: 'FalloutNV.exe';
- appIDs: '22380,2028016'; bsaOptMode: 'fo'; ),
- ( longName: 'Fallout 3'; gameName: 'Fallout3'; gameMode: gmFO3;
- regName: 'Fallout3'; appName: 'FO3'; exeName: 'Fallout3.exe';
- appIDs: '22300,22370'; bsaOptMode: 'fo'; ),
- ( longName: 'Fallout 4'; gameName: 'Fallout4'; gameMode: gmFO4;
- regName: 'Fallout4'; appName: 'FO4'; exeName: 'Fallout4.exe';
- appIDs: '377160'; bsaOptMode: ''; ),
- ( longName: 'Skyrim Special Edition'; gameName: 'Skyrim'; gameMode: gmSSE;
- regName: 'Skyrim Special Edition'; appName: 'SSE';
- exeName: 'SkyrimSE.exe'; appIDs: '489830'; bsaOptMode: ''; )
- );
+ GameArray: array [1 .. 9] of TGameMode = ((longName: 'Skyrim';
+ gameName: 'Skyrim'; gameMode: gmTES5; regName: 'Skyrim'; appName: 'TES5';
+ exeName: 'TESV.exe'; appIDs: '72850'; bsaOptMode: 'sk';
+ ), (longName: 'Oblivion'; gameName: 'Oblivion'; gameMode: gmTES4;
+ regName: 'Oblivion'; appName: 'TES4'; exeName: 'Oblivion.exe';
+ appIDs: '22330,900883'; bsaOptMode: 'ob';), (longName: 'Fallout New Vegas';
+ gameName: 'FalloutNV'; gameMode: gmFNV; regName: 'FalloutNV';
+ appName: 'FNV'; exeName: 'FalloutNV.exe'; appIDs: '22380,2028016';
+ bsaOptMode: 'fo';), (longName: 'Fallout 3'; gameName: 'Fallout3';
+ gameMode: gmFO3; regName: 'Fallout3'; appName: 'FO3';
+ exeName: 'Fallout3.exe'; appIDs: '22300,22370'; bsaOptMode: 'fo';
+ ), (longName: 'Fallout 4'; gameName: 'Fallout4'; gameMode: gmFO4;
+ regName: 'Fallout4'; appName: 'FO4'; exeName: 'Fallout4.exe';
+ appIDs: '377160'; bsaOptMode: '';), (longName: 'Skyrim Special Edition';
+ gameName: 'Skyrim'; gameMode: gmSSE; regName: 'Skyrim Special Edition';
+ appName: 'SSE'; exeName: 'SkyrimSE.exe'; appIDs: '489830'; bsaOptMode: '';
+ ), (longName: 'Skyrim VR'; gameName: 'Skyrim'; gameMode: gmTES5VR;
+ regName: 'Skyrim VR'; appName: 'TES5VR'; exeName: 'SkyrimVR.exe';
+ appIDs: '611670'; bsaOptMode: '';), (longName: 'Enderal';
+ gameName: 'Skyrim'; gameMode: gmEnderal; regName: 'Enderal';
+ appName: 'Enderal'; exeName: 'TESV.exe'; appIDs: '933480'; bsaOptMode: 'sk';
+ ), (longName: 'Enderal Special Edition'; gameName: 'Skyrim';
+ gameMode: gmSSE; regName: 'Enderal Special Edition'; appName: 'EnderalSE';
+ exeName: 'SkyrimSE.exe'; appIDs: '976620'; bsaOptMode: '';));
implementation
@@ -200,7 +211,7 @@ procedure TProfile.Rename(name: string);
{ TProgramStatus }
constructor TProgramStatus.Create;
begin
- bInitException := false;
+ bInitException := false;
bLoadException := false;
bChangeProfile := false;
bForceTerminate := false;
@@ -218,26 +229,31 @@ procedure DeleteTempPath;
procedure LoadLanguage;
const
- langFile = 'http://raw.githubusercontent.com/matortheeternal/smash/master/frontend/lang/english.lang';
- directions = 'Your english.lang file is missing. Please download it from GitHub. ' +
- 'After you click OK, a webpage with the file will be opened. Right-click the ' +
- 'page and choose "Save page as", then save it as english.lang in the "lang\" ' +
- 'folder where you have MatorSmash.exe installed.';
- accessMessage = 'It looks like Smash doesn''t have permission to read files ' +
- 'from disk. Try running the program as administrator or disabling your antivirus.';
+ langFile =
+ 'http://raw.githubusercontent.com/matortheeternal/smash/master/frontend/lang/english.lang';
+ directions =
+ 'Your english.lang file is missing. Please download it from GitHub. ' +
+ 'After you click OK, a webpage with the file will be opened. Right-click the '
+ + 'page and choose "Save page as", then save it as english.lang in the "lang\" '
+ + 'folder where you have MatorSmash.exe installed.';
+ accessMessage = 'It looks like Smash doesn''t have permission to read files '
+ + 'from disk. Try running the program as administrator or disabling your antivirus.';
var
filename: string;
begin
filename := Format('lang\%s.lang', [settings.language]);
language := TStringList.Create;
- if (not FileExists(filename)) then begin
- if settings.language <> 'english' then begin
+ if (not FileExists(filename)) then
+ begin
+ if settings.language <> 'english' then
+ begin
settings.language := 'english';
LoadLanguage;
end
else if not FileExists('MatorSmash.exe') then
MessageDlg(accessMessage, mtConfirmation, [mbOk], 0)
- else begin
+ else
+ begin
MessageDlg(directions, mtConfirmation, [mbOk], 0);
ForceDirectories(PathList.Values['ProgramPath'] + 'lang\');
ShellExecute(0, 'open', PChar(langFile), '', '', SW_SHOWNORMAL);
@@ -250,7 +266,8 @@ procedure LoadLanguage;
function GetLanguageString(name: string): string;
begin
if language.Values[name] <> '' then
- Result := StringReplace(language.Values[name], '#13#10', #13#10, [rfReplaceAll])
+ Result := StringReplace(language.Values[name], '#13#10', #13#10,
+ [rfReplaceAll])
else
Result := name;
end;
@@ -261,13 +278,15 @@ procedure SaveProfile(var p: TProfile);
pSettings: TSettings;
begin
// get profile path
- path := PathList.Values['ProgramPath'] + 'profiles\' + p.name + '\settings.ini';
+ path := PathList.Values['ProgramPath'] + 'profiles\' + p.name +
+ '\settings.ini';
ForceDirectories(ExtractFilePath(path));
// load settings if they exist, else create them
if FileExists(path) then
pSettings := LoadSettings(path)
- else begin
+ else
+ begin
pSettings := TSettings.Create;
pSettings.patchDirectory := p.gamePath + 'Data\';
end;
@@ -328,12 +347,14 @@ procedure LoadStatistics;
end;
initialization
+
begin
ProgramStatus := TProgramStatus.Create;
PathList := TStringList.Create;
end;
finalization
+
begin
ProgramStatus.Free;
PathList.Free;
diff --git a/frontend/msConflict.pas b/frontend/msConflict.pas
old mode 100644
new mode 100755
index 31b2aa0..49a8c6a
--- a/frontend/msConflict.pas
+++ b/frontend/msConflict.pas
@@ -13,46 +13,35 @@ interface
type
// States used in InitNode to indicate states a node shall initially have.
- TVirtualNodeInitState = (
- ivsDisabled,
- ivsExpanded,
- ivsHasChildren,
- ivsMultiline,
- ivsSelected,
- ivsFiltered,
- ivsReInit{>>>},
- ivsHidden{<<<}
- );
+ TVirtualNodeInitState = (ivsDisabled, ivsExpanded, ivsHasChildren,
+ ivsMultiline, ivsSelected, ivsFiltered, ivsReInit { >>> } ,
+ ivsHidden { <<< }
+ );
TVirtualNodeInitStates = set of TVirtualNodeInitState;
// navnode flags
- TNavNodeFlag = (
- nnfInjected,
- nnfNotReachable,
- nnfReferencesInjected
- );
+ TNavNodeFlag = (nnfInjected, nnfNotReachable, nnfReferencesInjected);
TNavNodeFlags = set of TNavNodeFlag;
// navnode data
PNavNodeData = ^TNavNodeData;
+
TNavNodeData = record
- Element : IwbElement;
- Container : IwbContainer;
- ConflictAll : TConflictAll;
- ConflictThis : TConflictThis;
- Flags : TNavNodeFlags;
+ Element: IwbElement;
+ Container: IwbContainer;
+ ConflictAll: TConflictAll;
+ ConflictThis: TConflictThis;
+ Flags: TNavNodeFlags;
end;
// node flags
- TViewNodeFlag = (
- vnfDontShow,
- vnfIgnore
- );
+ TViewNodeFlag = (vnfDontShow, vnfIgnore);
TViewNodeFlags = set of TViewNodeFlag;
// node data
PViewNodeData = ^TViewNodeData;
+
TViewNodeData = record
Element: IwbElement;
Container: IwbContainerElementRef;
@@ -62,24 +51,24 @@ TViewNodeData = record
end;
// collections of node datas
- TViewNodeDatas = array[Word] of TViewNodeData;
+ TViewNodeDatas = array [Word] of TViewNodeData;
PViewNodeDatas = ^TViewNodeDatas;
TDynViewNodeDatas = array of TViewNodeData;
// exposed methods
- procedure ConflictLevelForMainRecord(const aMainRecord: IwbMainRecord;
- out aConflictAll: TConflictAll; out aConflictThis: TConflictThis);
- function ConflictLevelForChildNodeDatas(const aNodeDatas: TDynViewNodeDatas;
- aSiblingCompare, aInjected: Boolean): TConflictAll;
- function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
- aNodeCount: Integer; aSiblingCompare, aInjected: Boolean): TConflictAll;
- function ConflictAllForElements(e1, e2: IwbElement; aSiblingCompare,
- aInjected: Boolean): TConflictAll;
- function ConflictThisForMainRecord(aMainRecord: IwbMainRecord): TConflictThis;
- function ConflictAllForMainRecord(aMainRecord: IwbMainRecord): TConflictAll;
- function IsITPO(rec: IwbMainRecord): Boolean;
- function IsITM(rec: IwbMainRecord): Boolean;
+procedure ConflictLevelForMainRecord(const aMainRecord: IwbMainRecord;
+ out aConflictAll: TConflictAll; out aConflictThis: TConflictThis);
+function ConflictLevelForChildNodeDatas(const aNodeDatas: TDynViewNodeDatas;
+ aSiblingCompare, aInjected: Boolean): TConflictAll;
+function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
+ aNodeCount: Integer; aSiblingCompare, aInjected: Boolean): TConflictAll;
+function ConflictAllForElements(e1, e2: IwbElement;
+ aSiblingCompare, aInjected: Boolean): TConflictAll;
+function ConflictThisForMainRecord(aMainRecord: IwbMainRecord): TConflictThis;
+function ConflictAllForMainRecord(aMainRecord: IwbMainRecord): TConflictAll;
+function IsITPO(rec: IwbMainRecord): Boolean;
+function IsITM(rec: IwbMainRecord): Boolean;
implementation
@@ -89,12 +78,13 @@ procedure AppendToNodeDatas(var NodeDatas: TDynViewNodeDatas; e: IwbElement);
begin
SetLength(NodeDatas, Succ(Length(NodeDatas)));
NodeDatas[Pred(Length(NodeDatas))].Element := e;
- if Supports(e, IwbContainerElementRef, Container) and (Container.ElementCount > 0) then
+ if Supports(e, IwbContainerElementRef, Container) and
+ (Container.ElementCount > 0) then
NodeDatas[Pred(Length(NodeDatas))].Container := Container;
end;
-function ConflictAllForElements(e1, e2: IwbElement; aSiblingCompare,
- aInjected: Boolean): TConflictAll;
+function ConflictAllForElements(e1, e2: IwbElement;
+ aSiblingCompare, aInjected: Boolean): TConflictAll;
var
NodeDatas: TDynViewNodeDatas;
begin
@@ -106,174 +96,204 @@ function ConflictAllForElements(e1, e2: IwbElement; aSiblingCompare,
Result := caUnknown;
if Length(NodeDatas) > 0 then
if Assigned(NodeDatas[0].Container) then
- Result := ConflictLevelForChildNodeDatas(NodeDatas, aSiblingCompare, aInjected)
+ Result := ConflictLevelForChildNodeDatas(NodeDatas, aSiblingCompare,
+ aInjected)
else
- Result := ConflictLevelForNodeDatas(@NodeDatas[0], Length(NodeDatas), aSiblingCompare, aInjected);
+ Result := ConflictLevelForNodeDatas(@NodeDatas[0], Length(NodeDatas),
+ aSiblingCompare, aInjected);
end;
-function NodeDatasForMainRecord(const aMainRecord: IwbMainRecord): TDynViewNodeDatas;
+function NodeDatasForMainRecord(const aMainRecord: IwbMainRecord)
+ : TDynViewNodeDatas;
var
- Master : IwbMainRecord;
- Rec : IwbMainRecord;
- i, j : Integer;
- Records : TStringList;
- AnyHidden : Boolean;
- IsNonOverride : Boolean;
- EditorID : string;
- FormID : Cardinal;
- LoadOrder : Integer;
- Group : IwbGroupRecord;
- Signature : TwbSignature;
- plugin : TPlugin;
- aFile : IwbFile;
+ Master: IwbMainRecord;
+ rec: IwbMainRecord;
+ i, j: Integer;
+ Records: TStringList;
+ AnyHidden: Boolean;
+ IsNonOverride: Boolean;
+ EditorID: string;
+ FormID: Cardinal;
+ LoadOrder: Integer;
+ Group: IwbGroupRecord;
+ Signature: TwbSignature;
+ plugin: TPlugin;
+ aFile: IwbFile;
begin
Assert(wbLoaderDone);
IsNonOverride := False;
AnyHidden := False;
- if aMainRecord.Signature = 'GMST' then begin
+ if aMainRecord.Signature = 'GMST' then
+ begin
IsNonOverride := True;
EditorID := aMainRecord.EditorID;
SetLength(Result, PluginsList.Count);
Master := nil;
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
aFile := plugin._File;
Group := aFile.GroupBySignature['GMST'];
- if Assigned(Group) then begin
- Rec := Group.MainRecordByEditorID[EditorID];
- if Assigned(Rec) then begin
+ if Assigned(Group) then
+ begin
+ rec := Group.MainRecordByEditorID[EditorID];
+ if Assigned(rec) then
+ begin
if not Assigned(Master) then
- Master := Rec;
- Result[i].Element := Rec;
+ Master := rec;
+ Result[i].Element := rec;
end;
end;
end;
- end else if (aMainRecord.Signature = 'NAVI') (* or (aMainRecord.Signature = 'TES4') *) then begin
+ end
+ else if (aMainRecord.Signature = 'NAVI')
+ (* or (aMainRecord.Signature = 'TES4') *) then
+ begin
IsNonOverride := True;
Signature := aMainRecord.Signature;
- FormID := aMainRecord.FormID;
+ FormID := aMainRecord.FormID.ToCardinal;
LoadOrder := aMainRecord.GetFile.LoadOrder;
SetLength(Result, 0);
Master := nil;
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
aFile := plugin._File;
- if aFile.LoadOrder = LoadOrder then begin
+ if aFile.LoadOrder = LoadOrder then
+ begin
Group := aFile.GroupBySignature[Signature];
- if Assigned(Group) then begin
- Rec := Group.MainRecordByFormID[FormID];
- if Assigned(Rec) then begin
+ if Assigned(Group) then
+ begin
+ rec := Group.MainRecordByFormID[TwbFormID.fromCardinal(FormID)];
+ if Assigned(rec) then
+ begin
j := Length(Result);
- SetLength(Result, j+1);
+ SetLength(Result, j + 1);
if not Assigned(Master) then
- Master := Rec;
- Result[j].Element := Rec;
+ Master := rec;
+ Result[j].Element := rec;
end;
end;
end;
end;
- end else if (aMainRecord.Signature = 'TES4') then begin
+ end
+ else if (aMainRecord.Signature = 'TES4') then
+ begin
IsNonOverride := True;
Signature := aMainRecord.Signature;
LoadOrder := aMainRecord.GetFile.LoadOrder;
SetLength(Result, 0);
Master := nil;
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
aFile := plugin._File;
- if aFile.LoadOrder = LoadOrder then begin
+ if aFile.LoadOrder = LoadOrder then
+ begin
// header of .dat file, show only itself
- if SameText(ExtractFileExt(aMainRecord.GetFile.FileName), '.dat') and not SameText(ExtractFileExt(aFile.FileName), '.dat') then
+ if SameText(ExtractFileExt(aMainRecord.GetFile.FileName), '.dat') and
+ not SameText(ExtractFileExt(aFile.FileName), '.dat') then
Continue;
// skip .dat file header by default
- if not SameText(ExtractFileExt(aMainRecord.GetFile.FileName), '.dat') and SameText(ExtractFileExt(aFile.FileName), '.dat') then
+ if not SameText(ExtractFileExt(aMainRecord.GetFile.FileName), '.dat')
+ and SameText(ExtractFileExt(aFile.FileName), '.dat') then
Continue;
- Rec := aFile.Elements[0] as IwbMainRecord;
- if Assigned(Rec) then begin
+ rec := aFile.Elements[0] as IwbMainRecord;
+ if Assigned(rec) then
+ begin
j := Length(Result);
- SetLength(Result, j+1);
+ SetLength(Result, j + 1);
if not Assigned(Master) then
- Master := Rec;
- Result[j].Element := Rec;
+ Master := rec;
+ Result[j].Element := rec;
end;
end;
end;
- end else begin
+ end
+ else
+ begin
Master := aMainRecord.MasterOrSelf;
SetLength(Result, Succ(Master.OverrideCount));
AnyHidden := Master.IsHidden;
if not AnyHidden then
- for i := 0 to Pred(Master.OverrideCount) do begin
+ for i := 0 to Pred(Master.OverrideCount) do
+ begin
AnyHidden := Master.Overrides[i].IsHidden;
if AnyHidden then
Break;
end;
end;
- if (Length(Result) > 1) and ({ModGroupsEnabled or }AnyHidden) or IsNonOverride then begin
+ if (Length(Result) > 1) and ( { ModGroupsEnabled or } AnyHidden) or IsNonOverride
+ then
+ begin
Records := TStringList.Create;
try
- if IsNonOverride then begin
+ if IsNonOverride then
+ begin
for i := Low(Result) to High(Result) do
- if Supports(Result[i].Element, IwbMainRecord, Rec) then
- Records.AddObject(Rec._File.FileName, Pointer(Rec));
+ if Supports(Result[i].Element, IwbMainRecord, rec) then
+ Records.AddObject(rec._File.FileName, Pointer(rec));
Result := nil;
- end else begin
+ end
+ else
+ begin
Records.AddObject(Master._File.FileName, Pointer(Master));
- for i := 0 to Pred(Master.OverrideCount) do begin
- Rec := Master.Overrides[i];
- Records.AddObject(Rec._File.FileName, Pointer(Rec));
+ for i := 0 to Pred(Master.OverrideCount) do
+ begin
+ rec := Master.Overrides[i];
+ Records.AddObject(rec._File.FileName, Pointer(rec));
end;
end;
- {f ModGroupsEnabled then repeat
+ { f ModGroupsEnabled then repeat
MadeChanges := False;
sl := TStringList.Create;
try
- for i := 0 to Pred(ModGroups.Count) do begin
- sl.Assign(TStrings(ModGroups.Objects[i]));
- for j := Pred(sl.Count) downto 0 do begin
- k := Records.IndexOf(sl[j]);
- if K > 0 then // >, not >=, never hide the original master
- sl.Objects[j] := TObject(k)
- else
- sl.Delete(j);
- end;
- if sl.Count > 1 then begin
- k := Integer(sl.Objects[0]);
- j := 1;
- if k = 0 then begin
- while (j < sl.Count) and (Integer(sl.Objects[j]) = k + 1) do begin
- Records.Objects[Integer(sl.Objects[Pred(j)])] := nil;
- Inc(k);
- Inc(j);
- end;
- Inc(j);
- end;
- while (j < sl.Count) do begin
- Records.Objects[Integer(sl.Objects[Pred(j)])] := nil;
- Inc(j);
- end;
- for j := Pred(Records.Count) downto 0 do
- if Records.Objects[j] = nil then begin
- Records.Delete(j);
- MadeChanges := True;
- end;
- end;
- if Records.Count < 2 then
- Break;
- end;
+ for i := 0 to Pred(ModGroups.Count) do begin
+ sl.Assign(TStrings(ModGroups.Objects[i]));
+ for j := Pred(sl.Count) downto 0 do begin
+ k := Records.IndexOf(sl[j]);
+ if K > 0 then // >, not >=, never hide the original master
+ sl.Objects[j] := TObject(k)
+ else
+ sl.Delete(j);
+ end;
+ if sl.Count > 1 then begin
+ k := Integer(sl.Objects[0]);
+ j := 1;
+ if k = 0 then begin
+ while (j < sl.Count) and (Integer(sl.Objects[j]) = k + 1) do begin
+ Records.Objects[Integer(sl.Objects[Pred(j)])] := nil;
+ Inc(k);
+ Inc(j);
+ end;
+ Inc(j);
+ end;
+ while (j < sl.Count) do begin
+ Records.Objects[Integer(sl.Objects[Pred(j)])] := nil;
+ Inc(j);
+ end;
+ for j := Pred(Records.Count) downto 0 do
+ if Records.Objects[j] = nil then begin
+ Records.Delete(j);
+ MadeChanges := True;
+ end;
+ end;
+ if Records.Count < 2 then
+ Break;
+ end;
finally
- sl.Free;
+ sl.Free;
end;
- until not MadeChanges;}
+ until not MadeChanges; }
i := 0;
while (i < Records.Count) and (Records.Count > 1) do
@@ -284,14 +304,16 @@ function NodeDatasForMainRecord(const aMainRecord: IwbMainRecord): TDynViewNodeD
SetLength(Result, Records.Count);
for i := 0 to Pred(Records.Count) do
- with Result[i] do begin
- Rec := IwbMainRecord(Pointer(Records.Objects[i]));
+ with Result[i] do
+ begin
+ rec := IwbMainRecord(Pointer(Records.Objects[i]));
if i = 0 then
- Master := Rec;
+ Master := rec;
- Container := Rec as IwbContainerElementRef;
+ Container := rec as IwbContainerElementRef;
Element := Container;
- if (Container.ElementCount = 0) or (Rec.Signature <> Master.Signature) then
+ if (Container.ElementCount = 0) or (rec.Signature <> Master.Signature)
+ then
Container := nil;
end;
@@ -308,10 +330,12 @@ function NodeDatasForMainRecord(const aMainRecord: IwbMainRecord): TDynViewNodeD
Result[0].Container := nil;
for i := 0 to Pred(Master.OverrideCount) do
- with Result[Succ(i)] do begin
+ with Result[Succ(i)] do
+ begin
Container := Master.Overrides[i] as IwbContainerElementRef;
Element := Container;
- if (Container.ElementCount = 0) or (Master.Overrides[i].Signature <> Master.Signature) then
+ if (Container.ElementCount = 0) or
+ (Master.Overrides[i].Signature <> Master.Signature) then
Container := nil;
end;
end;
@@ -321,19 +345,21 @@ procedure ConflictLevelForMainRecord(const aMainRecord: IwbMainRecord;
procedure Fix(const aMainRecord: IwbMainRecord);
begin
- with aMainRecord do begin
+ with aMainRecord do
+ begin
ConflictAll := aConflictAll;
- if ConflictThis = ctUnknown then begin
+ if ConflictThis = ctUnknown then
+ begin
ConflictThis := ctHiddenByModGroup;
end;
end;
end;
var
- NodeDatas : TDynViewNodeDatas;
- i : Integer;
- Master : IwbMainRecord;
- KeepAliveRoot : IwbKeepAliveRoot;
+ NodeDatas: TDynViewNodeDatas;
+ i: Integer;
+ Master: IwbMainRecord;
+ KeepAliveRoot: IwbKeepAliveRoot;
begin
KeepAliveRoot := wbCreateKeepAliveRoot;
@@ -344,30 +370,39 @@ procedure ConflictLevelForMainRecord(const aMainRecord: IwbMainRecord;
Exit;
Master := aMainRecord.MasterOrSelf;
- if (Master.OverrideCount = 0) and not wbTranslationMode and not (Master.Signature = 'GMST') then begin
+ if (Master.OverrideCount = 0) and not wbTranslationMode and
+ not(Master.Signature = 'GMST') then
+ begin
aConflictAll := caOnlyOne;
aConflictThis := ctOnlyOne;
aMainRecord.ConflictAll := aConflictAll;
aMainRecord.ConflictThis := aConflictThis;
- end else begin
+ end
+ else
+ begin
NodeDatas := NodeDatasForMainRecord(aMainRecord);
- if Length(NodeDatas) = 1 then begin
+ if Length(NodeDatas) = 1 then
+ begin
aConflictAll := caOnlyOne;
NodeDatas[0].ConflictAll := caOnlyOne;
NodeDatas[0].ConflictThis := ctOnlyOne;
- {end else if wbQuickShowConflicts and (Length(NodeDatas) = 2) then begin
- aConflictAll := caOverride;
- NodeDatas[0].ConflictAll := caOverride;
- NodeDatas[1].ConflictAll := caOverride;
- NodeDatas[0].ConflictThis := ctMaster;
- NodeDatas[1].ConflictThis := ctOverride;}
- end else
- aConflictAll := ConflictLevelForChildNodeDatas(NodeDatas, False, (aMainRecord.MasterOrSelf.IsInjected and not (aMainRecord.Signature = 'GMST')) );
+ { end else if wbQuickShowConflicts and (Length(NodeDatas) = 2) then begin
+ aConflictAll := caOverride;
+ NodeDatas[0].ConflictAll := caOverride;
+ NodeDatas[1].ConflictAll := caOverride;
+ NodeDatas[0].ConflictThis := ctMaster;
+ NodeDatas[1].ConflictThis := ctOverride; }
+ end
+ else
+ aConflictAll := ConflictLevelForChildNodeDatas(NodeDatas, False,
+ (aMainRecord.MasterOrSelf.IsInjected and
+ not(aMainRecord.Signature = 'GMST')));
for i := Low(NodeDatas) to High(NodeDatas) do
with NodeDatas[i] do
if Assigned(Element) then
- with (Element as IwbMainRecord) do begin
+ with (Element as IwbMainRecord) do
+ begin
ConflictAll := aConflictAll;
ConflictThis := NodeDatas[i].ConflictThis;
end;
@@ -383,47 +418,52 @@ procedure ConflictLevelForMainRecord(const aMainRecord: IwbMainRecord;
procedure InitChilds(const aNodeDatas: PViewNodeDatas; aNodeCount: Integer;
var aChildCount: Cardinal);
var
- NodeData : PNavNodeData;
- Container : IwbContainer;
- FirstContainer : IwbContainer;
- SortableContainer : IwbSortableContainer;
- Element : IwbElement;
- i, j, k : Integer;
- SortedCount : Integer;
- NonSortedCount : Integer;
- SortedKeys : array of TnxFastStringListCS;
- Sortables : array of IwbSortableContainer;
- SortKey : string;
- LastSortKey : string;
- DupCounter : Integer;
+ NodeData: PNavNodeData;
+ Container: IwbContainer;
+ FirstContainer: IwbContainer;
+ SortableContainer: IwbSortableContainer;
+ Element: IwbElement;
+ i, j, k: Integer;
+ SortedCount: Integer;
+ NonSortedCount: Integer;
+ SortedKeys: array of TStringList;
+ Sortables: array of IwbSortableContainer;
+ SortKey: string;
+ LastSortKey: string;
+ DupCounter: Integer;
begin
SortedCount := 0;
NonSortedCount := 0;
FirstContainer := nil;
- for i := 0 to Pred(aNodeCount) do begin
+ for i := 0 to Pred(aNodeCount) do
+ begin
NodeData := @aNodeDatas[i];
Container := NodeData.Container;
if not Assigned(FirstContainer) then
FirstContainer := Container;
if Assigned(Container) then
- if Supports(Container, IwbSortableContainer, SortableContainer) and SortableContainer.Sorted then
+ if Supports(Container, IwbSortableContainer, SortableContainer) and
+ SortableContainer.Sorted then
Inc(SortedCount)
else
Inc(NonSortedCount);
end;
- if (NonSortedCount > 0) and (SortedCount > 0) then begin
- if Assigned(FirstContainer) then
- ;//PostAddMessage('Warning: Comparing sorted and unsorted entry for "' + FirstContainer.Path + '" in "'+FirstContainer.ContainingMainRecord.Name+'"');
+ if (NonSortedCount > 0) and (SortedCount > 0) then
+ begin
+ if Assigned(FirstContainer) then;
+ // PostAddMessage('Warning: Comparing sorted and unsorted entry for "' + FirstContainer.Path + '" in "'+FirstContainer.ContainingMainRecord.Name+'"');
SortedCount := 0;
end;
- if SortedCount > 0 then begin
-// Assert(NonSortedCount = 0);
+ if SortedCount > 0 then
+ begin
+ // Assert(NonSortedCount = 0);
SetLength(SortedKeys, Succ(aNodeCount));
- for i := Low(SortedKeys) to High(SortedKeys) do begin
- SortedKeys[i] := TnxFastStringListCS.Create;
+ for i := Low(SortedKeys) to High(SortedKeys) do
+ begin
+ SortedKeys[i] := TStringList.Create;
SortedKeys[i].Sorted := True;
SortedKeys[i].Duplicates := dupError;
end;
@@ -434,16 +474,20 @@ procedure InitChilds(const aNodeDatas: PViewNodeDatas; aNodeCount: Integer;
SetLength(Sortables, aNodeCount);
for i := 0 to Pred(aNodeCount) do
- if Supports(aNodeDatas[i].Container, IwbSortableContainer, Sortables[i]) then begin
+ if Supports(aNodeDatas[i].Container, IwbSortableContainer, Sortables[i])
+ then
+ begin
SortableContainer := Sortables[i];
DupCounter := 0;
LastSortKey := '';
- for j := 0 to Pred(SortableContainer.ElementCount) do begin
+ for j := 0 to Pred(SortableContainer.ElementCount) do
+ begin
Element := SortableContainer.Elements[j];
SortKey := Element.SortKey[False];
if SameStr(LastSortKey, SortKey) then
Inc(DupCounter)
- else begin
+ else
+ begin
DupCounter := 0;
LastSortKey := SortKey;
end;
@@ -457,7 +501,8 @@ procedure InitChilds(const aNodeDatas: PViewNodeDatas; aNodeCount: Integer;
aChildCount := SortedKeys[aNodeCount].Count;
- for j := 0 to Pred(aChildCount) do begin
+ for j := 0 to Pred(aChildCount) do
+ begin
SortKey := SortedKeys[aNodeCount].Strings[j];
for i := 0 to Pred(aNodeCount) do
if SortedKeys[i].Find(SortKey, k) then
@@ -473,23 +518,28 @@ procedure InitChilds(const aNodeDatas: PViewNodeDatas; aNodeCount: Integer;
end
else
- for i := 0 to Pred(aNodeCount) do begin
+ for i := 0 to Pred(aNodeCount) do
+ begin
NodeData := @aNodeDatas[i];
Container := NodeData.Container;
- if Assigned(Container) then begin
+ if Assigned(Container) then
+ begin
case Container.ElementType of
- etMainRecord, etSubRecordStruct: begin
+ etMainRecord, etSubRecordStruct:
+ begin
aChildCount := (Container.Def as IwbRecordDef).MemberCount;
Inc(aChildCount, Container.AdditionalElementCount);
- if Cardinal(Container.ElementCount) > aChildCount then begin
- //PostAddMessage('Error: Container.ElementCount {'+IntToStr(Container.ElementCount)+'} > aChildCount {'+IntToStr(aChildCount)+'} for ' + Container.Path + ' in ' + Container.ContainingMainRecord.Name);
- //for j := 0 to Pred(Container.ElementCount) do
- //PostAddMessage(' #'+IntToStr(j)+': ' + Container.Elements[j].Name);
- //Assert(Cardinal(Container.ElementCount) <= aChildCount);
+ if Cardinal(Container.ElementCount) > aChildCount then
+ begin
+ // PostAddMessage('Error: Container.ElementCount {'+IntToStr(Container.ElementCount)+'} > aChildCount {'+IntToStr(aChildCount)+'} for ' + Container.Path + ' in ' + Container.ContainingMainRecord.Name);
+ // for j := 0 to Pred(Container.ElementCount) do
+ // PostAddMessage(' #'+IntToStr(j)+': ' + Container.Elements[j].Name);
+ // Assert(Cardinal(Container.ElementCount) <= aChildCount);
end;
end;
- etSubRecordArray, etArray, etStruct, etSubRecord, etValue, etUnion, etStructChapter:
+ etSubRecordArray, etArray, etStruct, etSubRecord, etValue, etUnion,
+ etStructChapter:
if aChildCount < Cardinal(Container.ElementCount) then
aChildCount := Container.ElementCount;
end;
@@ -498,35 +548,38 @@ procedure InitChilds(const aNodeDatas: PViewNodeDatas; aNodeCount: Integer;
end;
procedure InitNodes(const aNodeDatas: PViewNodeDatas;
- const aParentDatas: PViewNodeDatas;
- aNodeCount: Integer;
- aIndex: Cardinal;
+ const aParentDatas: PViewNodeDatas; aNodeCount: Integer; aIndex: Cardinal;
var aInitialStates: TVirtualNodeInitStates);
var
- NodeData : PViewNodeData;
- ParentData : PViewNodeData;
- Container : IwbContainerElementRef;
- SortableContainer : IwbSortableContainer;
- i : Integer;
+ NodeData: PViewNodeData;
+ ParentData: PViewNodeData;
+ Container: IwbContainerElementRef;
+ SortableContainer: IwbSortableContainer;
+ i: Integer;
begin
- for i := 0 to Pred(aNodeCount) do begin
+ for i := 0 to Pred(aNodeCount) do
+ begin
NodeData := @aNodeDatas[i];
ParentData := @aParentDatas[i];
Container := ParentData.Container;
- if Assigned(Container) then begin
- if Supports(Container, IwbSortableContainer, SortableContainer) and SortableContainer.Sorted then
+ if Assigned(Container) then
+ begin
+ if Supports(Container, IwbSortableContainer, SortableContainer) and
+ SortableContainer.Sorted then
NodeData.Element := Container.ElementBySortOrder[aIndex]
else
case Container.ElementType of
etMainRecord, etSubRecordStruct:
NodeData.Element := Container.ElementBySortOrder[aIndex];
- etSubRecordArray, etArray, etStruct, etSubRecord, etValue, etUnion, etStructChapter:
+ etSubRecordArray, etArray, etStruct, etSubRecord, etValue, etUnion,
+ etStructChapter:
if aIndex < Cardinal(Container.ElementCount) then
NodeData.Element := Container.Elements[aIndex];
end;
end;
- if Assigned(NodeData.Element) and NodeData.Element.DontShow then begin
+ if Assigned(NodeData.Element) and NodeData.Element.DontShow then
+ begin
NodeData.Element := nil;
Include(NodeData.ViewNodeFlags, vnfDontShow);
end;
@@ -534,17 +587,21 @@ procedure InitNodes(const aNodeDatas: PViewNodeDatas;
aInitialStates := [ivsDisabled];
for i := 0 to Pred(aNodeCount) do
- with aNodeDatas[i] do begin
+ with aNodeDatas[i] do
+ begin
if Assigned(Element) then
Exclude(aInitialStates, ivsDisabled)
- else
- if Assigned(aParentDatas) and ((vnfIgnore in aParentDatas[i].ViewNodeFlags) or (Assigned(aParentDatas[i].Element) and (aParentDatas[i].Element.ConflictPriority = cpIgnore))) then
- Include(ViewNodeFlags, vnfIgnore);
+ else if Assigned(aParentDatas) and
+ ((vnfIgnore in aParentDatas[i].ViewNodeFlags) or
+ (Assigned(aParentDatas[i].Element) and
+ (aParentDatas[i].Element.ConflictPriority = cpIgnore))) then
+ Include(ViewNodeFlags, vnfIgnore);
if not Assigned(Container) then
- if Supports(Element, IwbContainerElementRef, Container) then begin
- // if Container.ElementCount = 0 then
- // Container := nil;
+ if Supports(Element, IwbContainerElementRef, Container) then
+ begin
+ // if Container.ElementCount = 0 then
+ // Container := nil;
end;
if Assigned(Container) then
@@ -556,29 +613,33 @@ procedure InitNodes(const aNodeDatas: PViewNodeDatas;
function ConflictLevelForChildNodeDatas(const aNodeDatas: TDynViewNodeDatas;
aSiblingCompare, aInjected: Boolean): TConflictAll;
var
- ChildCount : Cardinal;
- i, j : Integer;
- NodeDatas : TDynViewNodeDatas;
- InitialStates : TVirtualNodeInitStates;
- ConflictAll : TConflictAll;
- ConflictThis : TConflictThis;
- Element : IwbElement;
+ ChildCount: Cardinal;
+ i, j: Integer;
+ NodeDatas: TDynViewNodeDatas;
+ InitialStates: TVirtualNodeInitStates;
+ ConflictAll: TConflictAll;
+ ConflictThis: TConflictThis;
+ Element: IwbElement;
begin
case Length(aNodeDatas) of
- 0: Result := caUnknown;
- 1: begin
- Result := caOnlyOne;
- aNodeDatas[0].ConflictThis := ctOnlyOne;
- end;
+ 0:
+ Result := caUnknown;
+ 1:
+ begin
+ Result := caOnlyOne;
+ aNodeDatas[0].ConflictThis := ctOnlyOne;
+ end;
else
Result := caNoConflict;
end;
- if wbTranslationMode then begin
+ if wbTranslationMode then
+ begin
if Result < caOnlyOne then
Exit;
end
- else begin
+ else
+ begin
if Result < caNoConflict then
Exit;
end;
@@ -586,17 +647,22 @@ function ConflictLevelForChildNodeDatas(const aNodeDatas: TDynViewNodeDatas;
ChildCount := 0;
InitChilds(@aNodeDatas[0], Length(aNodeDatas), ChildCount);
if ChildCount > 0 then
- for i := 0 to Pred(ChildCount) do begin
+ for i := 0 to Pred(ChildCount) do
+ begin
NodeDatas := nil;
SetLength(NodeDatas, Length(aNodeDatas));
InitialStates := [];
- InitNodes(@NodeDatas[0], @aNodeDatas[0], Length(aNodeDatas), i, InitialStates);
- if not (ivsDisabled in InitialStates) then begin
+ InitNodes(@NodeDatas[0], @aNodeDatas[0], Length(aNodeDatas), i,
+ InitialStates);
+ if not(ivsDisabled in InitialStates) then
+ begin
if ivsHasChildren in InitialStates then
- ConflictAll := ConflictLevelForChildNodeDatas(NodeDatas, aSiblingCompare, aInjected)
+ ConflictAll := ConflictLevelForChildNodeDatas(NodeDatas,
+ aSiblingCompare, aInjected)
else
- ConflictAll := ConflictLevelForNodeDatas(@NodeDatas[0], Length(NodeDatas), aSiblingCompare, aInjected);
+ ConflictAll := ConflictLevelForNodeDatas(@NodeDatas[0],
+ Length(NodeDatas), aSiblingCompare, aInjected);
if ConflictAll > Result then
Result := ConflictAll;
@@ -606,22 +672,27 @@ function ConflictLevelForChildNodeDatas(const aNodeDatas: TDynViewNodeDatas;
aNodeDatas[j].ConflictThis := NodeDatas[j].ConflictThis;
end
- else begin
+ else
+ begin
ConflictThis := ctNotDefined;
- for j := Low(aNodeDatas) to High(aNodeDatas) do begin
+ for j := Low(aNodeDatas) to High(aNodeDatas) do
+ begin
Element := aNodeDatas[j].Container;
if Assigned(Element) then
Break;
end;
- if Assigned(Element) and (Element.ElementType in [etMainRecord, etSubRecordStruct]) then begin
+ if Assigned(Element) and
+ (Element.ElementType in [etMainRecord, etSubRecordStruct]) then
+ begin
j := (Element as IwbContainer).AdditionalElementCount;
if i >= j then
with (Element.Def as IwbRecordDef).Members[i - j] do
- if (wbTranslationMode and (ConflictPriority[nil] <> cpTranslate)) or
- (wbTranslationMode and (ConflictPriority[nil] = cpIgnore)) then
+ if (wbTranslationMode and (ConflictPriority[nil] <> cpTranslate))
+ or (wbTranslationMode and (ConflictPriority[nil] = cpIgnore))
+ then
ConflictThis := ctIgnored;
end;
@@ -635,40 +706,44 @@ function ConflictLevelForChildNodeDatas(const aNodeDatas: TDynViewNodeDatas;
function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
aNodeCount: Integer; aSiblingCompare, aInjected: Boolean): TConflictAll;
var
- Element : IwbElement;
- CompareElement : IwbElement;
- i, j : Integer;
- UniqueValues : TnxFastStringListCS;
-
- MasterPosition : Integer;
- FirstElement : IwbElement;
- FirstElementNotIgnored : IwbElement;
- LastElement : IwbElement;
- SameAsLast : Boolean;
- SameAsFirst : Boolean;
- OverallConflictThis : TConflictThis;
- Priority : TwbConflictPriority;
- ThisPriority : TwbConflictPriority;
- FoundAny : Boolean;
+ Element: IwbElement;
+ CompareElement: IwbElement;
+ i, j: Integer;
+ UniqueValues: TStringList;
+
+ MasterPosition: Integer;
+ FirstElement: IwbElement;
+ FirstElementNotIgnored: IwbElement;
+ LastElement: IwbElement;
+ SameAsLast: Boolean;
+ SameAsFirst: Boolean;
+ OverallConflictThis: TConflictThis;
+ Priority: TwbConflictPriority;
+ ThisPriority: TwbConflictPriority;
+ FoundAny: Boolean;
begin
-// if aSiblingCompare then
-// Priority := cpBenign
-// else
-// Priority := cpNormal;
-// IgnoreConflicts := False;
+ // if aSiblingCompare then
+ // Priority := cpBenign
+ // else
+ // Priority := cpNormal;
+ // IgnoreConflicts := False;
FoundAny := False;
MasterPosition := 0;
OverallConflictThis := ctUnknown;
case aNodeCount of
- 0: Result := caUnknown;
- 1: begin
+ 0:
+ Result := caUnknown;
+ 1:
+ begin
Element := aNodeDatas[0].Element;
- if Assigned(Element) then begin
+ if Assigned(Element) then
+ begin
if Element.ConflictPriority = cpIgnore then
aNodeDatas[0].ConflictThis := ctIgnored
else
aNodeDatas[0].ConflictThis := ctOnlyOne;
- end else
+ end
+ else
aNodeDatas[0].ConflictThis := ctNotDefined;
Result := caOnlyOne;
end
@@ -676,29 +751,36 @@ function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
LastElement := aNodeDatas[Pred(aNodeCount)].Element;
FirstElement := aNodeDatas[0].Element;
- UniqueValues := TnxFastStringListCS.Create;
+ UniqueValues := TStringList.Create;
UniqueValues.Sorted := True;
UniqueValues.Duplicates := dupIgnore;
Priority := cpNormal;
try
- for i := 0 to Pred(aNodeCount) do begin
+ for i := 0 to Pred(aNodeCount) do
+ begin
Element := aNodeDatas[i].Element;
- if Assigned(Element) then begin
+ if Assigned(Element) then
+ begin
FoundAny := True;
Priority := Element.ConflictPriority;
- if Priority = cpNormalIgnoreEmpty then begin
+ if Priority = cpNormalIgnoreEmpty then
+ begin
FirstElement := Element;
MasterPosition := i;
- for j := Pred(aNodeCount) downto i do begin
+ for j := Pred(aNodeCount) downto i do
+ begin
LastElement := aNodeDatas[j].Element;
if Assigned(LastElement) then
Break;
end;
end;
- if Element.ConflictPriorityCanChange then begin
- for j := Succ(i) to Pred(aNodeCount) do begin
+ if Element.ConflictPriorityCanChange then
+ begin
+ for j := Succ(i) to Pred(aNodeCount) do
+ begin
Element := aNodeDatas[j].Element;
- if Assigned(Element) then begin
+ if Assigned(Element) then
+ begin
ThisPriority := Element.ConflictPriority;
if ThisPriority > Priority then
Priority := ThisPriority;
@@ -715,20 +797,26 @@ function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
if aInjected and (Priority >= cpNormal) then
Priority := cpCritical;
- if (Priority > cpIgnore) and (not Assigned(FirstElement) or (FirstElement.ConflictPriority = cpIgnore)) then
+ if (Priority > cpIgnore) and
+ (not Assigned(FirstElement) or
+ (FirstElement.ConflictPriority = cpIgnore)) then
FirstElementNotIgnored := nil
else
FirstElementNotIgnored := FirstElement;
- for i := 0 to Pred(aNodeCount) do begin
+ for i := 0 to Pred(aNodeCount) do
+ begin
Element := aNodeDatas[i].Element;
- if Assigned(Element) then begin
+ if Assigned(Element) then
+ begin
ThisPriority := Element.ConflictPriority;
if ThisPriority <> cpIgnore then
UniqueValues.Add(Element.SortKey[True]);
- end else begin
+ end
+ else
+ begin
ThisPriority := Priority;
- if not (vnfIgnore in aNodeDatas[i].ViewNodeFlags) then
+ if not(vnfIgnore in aNodeDatas[i].ViewNodeFlags) then
if Priority <> cpNormalIgnoreEmpty then
UniqueValues.Add('');
end;
@@ -739,28 +827,31 @@ function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
aNodeDatas[i].ConflictThis := ctIgnored
else if aSiblingCompare then
aNodeDatas[i].ConflictThis := ctOnlyOne
- else if i = MasterPosition then begin
+ else if i = MasterPosition then
+ begin
if Assigned(Element) then
aNodeDatas[i].ConflictThis := ctMaster
else
aNodeDatas[i].ConflictThis := ctUnknown;
- end else begin
- SameAsLast := (i = Pred(aNodeCount)) or not (
- (Assigned(Element) <> Assigned(LastElement)) or
- (Assigned(Element) and not SameStr(Element.SortKey[True], LastElement.SortKey[True]))
- );
-
- SameAsFirst := not (
- (Assigned(Element) <> Assigned(FirstElementNotIgnored)) or
- (Assigned(Element) and not SameStr(Element.SortKey[True], FirstElementNotIgnored.SortKey[True]))
- );
-
- if not SameAsFirst and
- (ThisPriority = cpBenignIfAdded) and
- SameAsLast and // We are not overriden later
- not Assigned(FirstElementNotIgnored) then begin // The master did not have that element
+ end
+ else
+ begin
+ SameAsLast := (i = Pred(aNodeCount)) or
+ not((Assigned(Element) <> Assigned(LastElement)) or
+ (Assigned(Element) and not SameStr(Element.SortKey[True],
+ LastElement.SortKey[True])));
+
+ SameAsFirst :=
+ not((Assigned(Element) <> Assigned(FirstElementNotIgnored)) or
+ (Assigned(Element) and not SameStr(Element.SortKey[True],
+ FirstElementNotIgnored.SortKey[True])));
+
+ if not SameAsFirst and (ThisPriority = cpBenignIfAdded) and
+ SameAsLast and // We are not overriden later
+ not Assigned(FirstElementNotIgnored) then
+ begin // The master did not have that element
ThisPriority := cpBenign;
Priority := cpBenign;
SameAsFirst := True;
@@ -774,7 +865,8 @@ function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
aNodeDatas[i].ConflictThis := ctConflictLoses;
end;
- if (ThisPriority = cpBenign) and (aNodeDatas[i].ConflictThis > ctConflictBenign) then
+ if (ThisPriority = cpBenign) and
+ (aNodeDatas[i].ConflictThis > ctConflictBenign) then
aNodeDatas[i].ConflictThis := ctConflictBenign;
if aNodeDatas[i].ConflictThis > OverallConflictThis then
@@ -782,15 +874,20 @@ function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
end;
case UniqueValues.Count of
- 0: Result := caNoConflict;
- 1: Result := caNoConflict;
- 2: begin
+ 0:
+ Result := caNoConflict;
+ 1:
+ Result := caNoConflict;
+ 2:
+ begin
Element := aNodeDatas[0].Element;
CompareElement := aNodeDatas[Pred(aNodeCount)].Element;
if (Assigned(Element) <> Assigned(CompareElement)) or
- (Assigned(Element) and not SameStr(Element.SortKey[True], CompareElement.SortKey[True])) then
+ (Assigned(Element) and not SameStr(Element.SortKey[True],
+ CompareElement.SortKey[True])) then
Result := caOverride
- else if (UniqueValues.IndexOf('') >= 0) and Assigned(CompareElement) and (CompareElement.SortKey[True] <> '') then
+ else if (UniqueValues.IndexOf('') >= 0) and Assigned(CompareElement)
+ and (CompareElement.SortKey[True] <> '') then
Result := caOverride
else
Result := caConflict;
@@ -808,8 +905,10 @@ function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
if Result > caNoConflict then
case Priority of
- cpBenign: Result := caConflictBenign;
- cpCritical: begin
+ cpBenign:
+ Result := caConflictBenign;
+ cpCritical:
+ begin
if UniqueValues.Find('', i) then
UniqueValues.Delete(i);
if UniqueValues.Count > 1 then
@@ -827,24 +926,34 @@ function ConflictLevelForNodeDatas(const aNodeDatas: PViewNodeDatas;
ConflictThis := ctConflictWins;
if Result in [caNoConflict, caOverride, caConflict] then
- for i := 0 to Pred(aNodeCount) do begin
+ for i := 0 to Pred(aNodeCount) do
+ begin
case aNodeDatas[i].ConflictThis of
- ctIdenticalToMaster: case Result of
- caNoConflict: ;
- caOverride, caConflict: if i = Pred(aNodeCount) then
- aNodeDatas[i].ConflictThis := ctIdenticalToMasterWinsConflict
+ ctIdenticalToMaster:
+ case Result of
+ caNoConflict:
+ ;
+ caOverride, caConflict:
+ if i = Pred(aNodeCount) then
+ aNodeDatas[i].ConflictThis :=
+ ctIdenticalToMasterWinsConflict
+ end;
+ ctConflictWins:
+ case Result of
+ caNoConflict:
+ aNodeDatas[i].ConflictThis := ctIdenticalToMaster;
+ caOverride:
+ aNodeDatas[i].ConflictThis := ctOverride;
+ caConflict:
+ ;
end;
- ctConflictWins: case Result of
- caNoConflict: aNodeDatas[i].ConflictThis := ctIdenticalToMaster;
- caOverride: aNodeDatas[i].ConflictThis := ctOverride;
- caConflict: ;
- end;
end;
end;
if Result < caConflict then
for i := 0 to Pred(aNodeCount) do
- if aNodeDatas[i].ConflictThis >= ctIdenticalToMasterWinsConflict then begin
+ if aNodeDatas[i].ConflictThis >= ctIdenticalToMasterWinsConflict then
+ begin
Result := caConflict;
Break;
end;
@@ -880,23 +989,25 @@ function IsITPO(rec: IwbMainRecord): Boolean;
begin
// get previous override
mRec := rec.MasterOrSelf;
- prevovr := mRec;
- for i := 0 to Pred(mRec.OverrideCount) do begin
+ prevOvr := mRec;
+ for i := 0 to Pred(mRec.OverrideCount) do
+ begin
ovr := mRec.Overrides[i];
+ if ovr._File.FileName.EndsWith(csDotGhost) then
+ // Skip ghosted overrides
+ continue;
if ovr.Equals(rec) then
Break;
- prevovr := ovr;
+ prevOvr := ovr;
end;
- Result := ConflictAllForElements(prevovr, rec, False, False) <= caNoConflict;
+ Result := ConflictAllForElements(prevOvr, rec, False, False) <= caNoConflict;
end;
function IsITM(rec: IwbMainRecord): Boolean;
const
- ITMConflictArray: set of TConflictThis = [
- ctIdenticalToMaster,
- ctIdenticalToMasterWinsConflict
- ];
+ ITMConflictArray: set of TConflictThis = [ctIdenticalToMaster,
+ ctIdenticalToMasterWinsConflict];
begin
Result := ConflictThisForMainRecord(rec) in ITMConflictArray;
end;
diff --git a/frontend/msConflictForm.dfm b/frontend/msConflictForm.dfm
old mode 100644
new mode 100755
index 08c2378..382a210
--- a/frontend/msConflictForm.dfm
+++ b/frontend/msConflictForm.dfm
@@ -68,7 +68,7 @@ object ConflictForm: TConflictForm
Left = 408
Top = 24
Bitmap = {
- 494C010103000800540010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010103000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000001000000001002000000000000010
0000000000000000000000000000000000000000000000000000000000000000
0000D7D7F8FF7373E6FF3434DBFF2121BEFF2121BEFF2D2DDAFF6B6BE4FFD2D2
@@ -213,7 +213,7 @@ object ConflictForm: TConflictForm
Left = 336
Top = 24
Bitmap = {
- 494C010104000800500011001100FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010104000800040011001100FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000440000002200000001002000000000002024
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
diff --git a/frontend/msConflictForm.pas b/frontend/msConflictForm.pas
old mode 100644
new mode 100755
index 7904c73..e40bc96
--- a/frontend/msConflictForm.pas
+++ b/frontend/msConflictForm.pas
@@ -10,7 +10,7 @@ interface
// mte units
mteHelpers, mteBase,
// ms units
- msCore, msChoicePanel;
+ msCore, msChoicePanel, System.ImageList;
type
TConflictForm = class(TForm)
@@ -21,8 +21,8 @@ TConflictForm = class(TForm)
FlagIcons: TImageList;
StateImages: TImageList;
procedure DrawFlag(Canvas: TCanvas; var x, y: Integer; id: Integer);
- procedure tvRecordsCustomDrawItem(Sender: TCustomTreeView;
- Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
+ procedure tvRecordsCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
+ State: TCustomDrawState; var DefaultDraw: Boolean);
procedure PopulateTree(sig: string; aSetting: TSmashSetting);
procedure ChoiceSelected(Sender: TObject);
procedure CreateChoicePanel(sig: string; var lst: TList);
@@ -30,8 +30,8 @@ TConflictForm = class(TForm)
procedure FormCreate(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure tvRecordsMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
+ procedure tvRecordsMouseMove(Sender: TObject; Shift: TShiftState;
+ x, y: Integer);
private
{ Private declarations }
lastHint: string;
@@ -52,7 +52,8 @@ implementation
{$R *.dfm}
-procedure TConflictForm.DrawFlag(Canvas: TCanvas; var x, y: Integer; id: Integer);
+procedure TConflictForm.DrawFlag(Canvas: TCanvas; var x, y: Integer;
+ id: Integer);
var
icon: TIcon;
begin
@@ -72,8 +73,9 @@ procedure TConflictForm.tvRecordsCustomDrawItem(Sender: TCustomTreeView;
R: TRect;
x, y: Integer;
begin
- if Assigned(node.Data) then begin
- e := TElementData(node.Data);
+ if Assigned(Node.Data) then
+ begin
+ e := TElementData(Node.Data);
R := Node.DisplayRect(true);
x := R.Right + 6;
y := R.Top;
@@ -88,35 +90,37 @@ procedure TConflictForm.tvRecordsCustomDrawItem(Sender: TCustomTreeView;
end;
procedure TConflictForm.tvRecordsMouseMove(Sender: TObject; Shift: TShiftState;
- X, Y: Integer);
+ x, y: Integer);
var
- node: TTreeNode;
+ Node: TTreeNode;
e: TElementData;
sHint: string;
begin
// hide hint and exit if shift is down
- if (ssShift in Shift) then begin
+ if (ssShift in Shift) then
+ begin
Application.HideHint;
exit;
end;
// draw hint if on a node with the link parameter
- node := tvRecords.GetNodeAt(X, Y);
- if not Assigned(node) then
+ Node := tvRecords.GetNodeAt(x, y);
+ if not Assigned(Node) then
exit;
- e := TElementData(node.Data);
+ e := TElementData(Node.Data);
if not Assigned(e) then
exit;
// get hint
- sHint := node.Text + #13#10'Type: '+stToString(e.smashType);
+ sHint := Node.Text + #13#10'Type: ' + stToString(e.smashType);
if e.linkTo <> '' then
- sHint := sHint + #13#10'Linked to: '+e.linkTo;
+ sHint := sHint + #13#10'Linked to: ' + e.linkTo;
if e.linkFrom <> '' then
- sHint := sHint + #13#10'Linked from: '+e.linkFrom;
+ sHint := sHint + #13#10'Linked from: ' + e.linkFrom;
// display hint if it isn't the last hint we displayed
- if sHint <> lastHint then begin
+ if sHint <> lastHint then
+ begin
tvRecords.Hint := sHint;
Application.ActivateHint(Mouse.CursorPos);
lastHint := sHint;
@@ -130,7 +134,8 @@ procedure TConflictForm.PopulateTree(sig: string; aSetting: TSmashSetting);
begin
rootNode := tvRecords.Items[0];
for item in aSetting.tree['records'] do
- if Copy(item.S['n'], 1, 4) = sig then begin
+ if Copy(item.S['n'], 1, 4) = sig then
+ begin
LoadElement(tvRecords, rootNode, item, false);
break;
end;
@@ -144,10 +149,12 @@ procedure TConflictForm.btnOKClick(Sender: TObject);
begin
// get user selection from choice panels, add it to slConflicts
// to be handled later
- for i := 0 to Pred(ChoicePanels.Count) do begin
+ for i := 0 to Pred(ChoicePanels.Count) do
+ begin
aChoicePanel := TChoicePanel(ChoicePanels[i]);
aSetting := aChoicePanel.GetSetting;
- if Assigned(aSetting) then begin
+ if Assigned(aSetting) then
+ begin
DeleteMatchingItems(aChoicePanel.GetLabel, slConflicts);
slConflicts.AddObject(aChoicePanel.GetLabel, TObject(aSetting));
end;
@@ -168,7 +175,8 @@ procedure TConflictForm.ChoiceSelected(Sender: TObject);
tvRecords.Items.Add(nil, 'Records');
// populate tree view with selected record nodes
- for i := 0 to Pred(ChoicePanels.Count) do begin
+ for i := 0 to Pred(ChoicePanels.Count) do
+ begin
aChoicePanel := TChoicePanel(ChoicePanels[i]);
if not aChoicePanel.Selected then
continue;
@@ -215,7 +223,8 @@ procedure TConflictForm.FormShow(Sender: TObject);
// (retrieved from slConflicts)
sl := TStringList.Create;
try
- for i := 0 to Pred(slConflicts.Count) do begin
+ for i := 0 to Pred(slConflicts.Count) do
+ begin
aSetting := TSmashSetting(slConflicts.Objects[i]);
index := sl.IndexOf(slConflicts[i]);
if index = -1 then
@@ -225,7 +234,8 @@ procedure TConflictForm.FormShow(Sender: TObject);
end;
// create choice panels
- for i := 0 to Pred(sl.Count) do begin
+ for i := 0 to Pred(sl.Count) do
+ begin
lst := TList(sl.Objects[i]);
if lst.Count > 1 then
CreateChoicePanel(sl[i], lst);
diff --git a/frontend/msCore.pas b/frontend/msCore.pas
old mode 100644
new mode 100755
index 56300a5..7e7d7c9
--- a/frontend/msCore.pas
+++ b/frontend/msCore.pas
@@ -7,7 +7,9 @@ interface
// third party libraries
superobject,
// mte units
- mteBase;
+ mteBase,
+ // xEdit
+ wbInterface;
type
// SMASH CLASSES
@@ -27,6 +29,7 @@ TElementData = class(TObject)
overrideDeletions, singleEntity, forceValue: boolean;
smashType: TSmashType; linkTo, linkFrom: string); overload;
end;
+
TSmashSetting = class(TObject)
public
name: string;
@@ -41,7 +44,7 @@ TSmashSetting = class(TObject)
constructor Clone(s: TSmashSetting);
function GetRecordDef(sig: string): ISuperObject;
procedure LoadDump(dump: ISuperObject);
- function Dump: ISuperObject;
+ function dump: ISuperObject;
procedure UpdateHash;
procedure UpdateRecords;
procedure Save;
@@ -51,8 +54,9 @@ TSmashSetting = class(TObject)
function GetTags: String;
function GetCombinedTags: String;
end;
- {TRecommendation = class(TObject)
- public
+
+ { TRecommendation = class(TObject)
+ public
game: string;
username: string;
filename: string;
@@ -67,16 +71,18 @@ {TRecommendation = class(TObject)
procedure SetNotes(notes: string);
function GetNotes: string;
procedure Save(const filename: string);
- end; }
+ end; }
// SMASH CORE CLASSES
- TPatchStatusID = ( psUnknown, psNoPlugins, psDirInvalid, psUnloaded,
- psErrors, psFailed, psUpToDate, psUpToDateForced, psBuildReady,
- psRebuildReady, psRebuildReadyForced );
- TPatchStatus = Record
+ TPatchStatusID = (psUnknown, psNoPlugins, psDirInvalid, psUnloaded, psErrors,
+ psFailed, psUpToDate, psUpToDateForced, psBuildReady, psRebuildReady,
+ psRebuildReadyForced);
+
+ TPatchStatus = Record
id: TPatchStatusID;
color: integer;
desc: string[64];
end;
+
TPlugin = class(TBasePlugin)
public
setting: string;
@@ -85,11 +91,11 @@ TPlugin = class(TBasePlugin)
constructor Create; override;
procedure GetMsData;
procedure GetDataPath;
- function GetFormIndex: Integer;
+ function GetFormIndex: integer;
function IsInPatch: boolean;
procedure LoadInfoDump(obj: ISuperObject);
function InfoDump: ISuperObject;
- function HasTags: Boolean;
+ function HasTags: boolean;
procedure ApplySettingTags;
procedure SetSmashSetting(aSetting: TSmashSetting);
procedure LoadTags(sSettingName: String; var sl: TStringList;
@@ -98,6 +104,7 @@ TPlugin = class(TBasePlugin)
procedure WriteDescription;
procedure Save;
end;
+
TPatch = class(TObject)
public
name: string;
@@ -113,7 +120,7 @@ TPatch = class(TObject)
fails: TStringList;
constructor Create; virtual;
destructor Destroy; override;
- function Dump: ISuperObject;
+ function dump: ISuperObject;
procedure LoadDump(obj: ISuperObject);
function GetTimeCost: integer;
procedure UpdateHashes;
@@ -128,67 +135,69 @@ TPatch = class(TObject)
function FilesExist: boolean;
function GetStatusColor: integer;
end;
+
TSettingHelpers = class
class function SettingByName(name: String): TSmashSetting;
class function SettingByHash(hash: String): TSmashSetting;
class function GetSmashSetting(setting: string): TSmashSetting;
end;
+
TPatchHelpers = class
class function CreateNewPatch(var patches: TList): TPatch;
class function GetPatchForPlugin(filename: string): string;
class procedure AssignPatchesToPlugins;
class function PatchByName(var patches: TList; name: string): TPatch;
- class function PatchByFilename(var patches: TList; filename: string): TPatch;
+ class function PatchByFilename(var patches: TList;
+ filename: string): TPatch;
end;
// Loading/Saving Functions
- procedure RenameSavedPlugins;
- procedure SavePatches;
- procedure LoadPatches;
- procedure SaveSmashSettings;
- procedure LoadSmashSettings;
- procedure SavePluginInfo;
- procedure LoadPluginInfo;
- procedure LoadSettingTags;
- // Helper Functions
- procedure HandleCanceled(msg: string);
-
- procedure UpdatePluginData;
- function CreateNewPlugin(sFilename: string): TPlugin;
- function PluginLoadOrder(sFilename: string): Integer;
- function PluginByFilename(sFilename: string): TPlugin;
- procedure PopulateAddList(var AddItem: TMenuItem; Event: TNotifyEvent);
- procedure AddAllRecords(currentSetting: TSmashSetting; var tv: TTreeView);
- procedure RemoveSettingFromPlugins(aSetting: TSmashSetting);
- function GetTagString(var slTags: TStringList): String;
- // Tree Helper Functions
- procedure BuildTreeFromPlugins(var tv: TTreeView; var sl: TStringList;
- tree: ISuperObject);
- procedure SetChildren(node: TTreeNode; state: Integer);
- procedure UpdateParent(node: TTreeNode);
- procedure CheckBoxManager(node: TTreeNode);
- procedure LoadElement(var tv: TTreeView; node: TTreeNode; obj: ISuperObject;
- bWithinSingle: boolean);
- procedure LoadTree(var tv: TTreeView; aSetting: TSmashSetting);
- function GetRecordObject(tree: ISuperObject; sig: string): ISuperObject;
- function GetChild(obj: ISuperObject; name: string): ISuperObject;
- procedure MergeChildren(srcObj, dstObj: ISuperObject);
- function CreateCombinedSetting(var sl: TStringList; name: string;
- bVirtual: boolean = false): TSmashSetting;
- function CombineSettingTrees(var lst: TList; var slSettings: TStringList): boolean;
- // Tag Helper Functions
- function ClearTags(sDescription: String): String;
- procedure GetMissingTags(var slPresent, slMissing: TStringList);
- procedure ExtractTags(var match: TMatch; var sl: TStringList;
- var sTagGroup: String);
- procedure ParseTags(description: string; var sl: TStringList);
+procedure RenameSavedPlugins;
+procedure SavePatches;
+procedure LoadPatches;
+procedure SaveSmashSettings;
+procedure LoadSmashSettings;
+procedure SavePluginInfo;
+procedure LoadPluginInfo;
+procedure LoadSettingTags;
+// Helper Functions
+procedure HandleCanceled(msg: string);
+procedure UpdatePluginData;
+function CreateNewPlugin(sFilename: string): TPlugin;
+function PluginLoadOrder(sFilename: string): integer;
+function PluginByFilename(sFilename: string): TPlugin;
+procedure PopulateAddList(var AddItem: TMenuItem; Event: TNotifyEvent);
+procedure AddAllRecords(currentSetting: TSmashSetting; var tv: TTreeView);
+procedure RemoveSettingFromPlugins(aSetting: TSmashSetting);
+function GetTagString(var slTags: TStringList): String;
+// Tree Helper Functions
+procedure BuildTreeFromPlugins(var tv: TTreeView; var sl: TStringList;
+ tree: ISuperObject);
+procedure SetChildren(node: TTreeNode; state: integer);
+procedure UpdateParent(node: TTreeNode);
+procedure CheckBoxManager(node: TTreeNode);
+procedure LoadElement(var tv: TTreeView; node: TTreeNode; obj: ISuperObject;
+ bWithinSingle: boolean);
+procedure LoadTree(var tv: TTreeView; aSetting: TSmashSetting);
+function GetRecordObject(tree: ISuperObject; sig: string): ISuperObject;
+function GetChild(obj: ISuperObject; name: string): ISuperObject;
+procedure MergeChildren(srcObj, dstObj: ISuperObject);
+function CreateCombinedSetting(var sl: TStringList; name: string;
+ bVirtual: boolean = false): TSmashSetting;
+function CombineSettingTrees(var lst: TList;
+ var slSettings: TStringList): boolean;
+// Tag Helper Functions
+function ClearTags(sDescription: String): String;
+procedure GetMissingTags(var slPresent, slMissing: TStringList);
+procedure ExtractTags(var match: TMatch; var sl: TStringList;
+ var sTagGroup: String);
+procedure ParseTags(description: string; var sl: TStringList);
const
// IMPORTANT CONSTANTS
ProgramTesters = ' ';
- ProgramTranslators = ' ';
- xEditVersion = '3.1.1';
+ ProgramTranslators = 'Koriss_';
// CHECKBOX STATES
csUnknown = 0;
@@ -197,35 +206,37 @@ TPatchHelpers = class
csPartiallyChecked = 3;
// SMASH TYPE ARRAYS
- stArrays = [ stUnsortedArray, stUnsortedStructArray,
- stSortedArray, stSortedStructArray ];
- stValues = [ stString, stFloat, stInteger, stByteArray ];
+ stArrays = [stUnsortedArray, stUnsortedStructArray, stSortedArray,
+ stSortedStructArray];
+ stValues = [stString, stFloat, stInteger, stByteArray];
// PATCH STATUSES
- StatusArray: array[0..10] of TPatchStatus = (
- ( id: psUnknown; color: $808080; desc: 'Unknown'; ),
- ( id: psNoPlugins; color: $0000FF; desc: 'Need two or more plugins to patch'; ),
- ( id: psDirInvalid; color: $0000FF; desc: 'Directories invalid'; ),
- ( id: psUnloaded; color: $0000FF; desc: 'Plugins not loaded'; ),
- ( id: psErrors; color: $0000FF; desc: 'Errors in plugins'; ),
- ( id: psFailed; color: $0000FF; desc: 'Patch failed'; ),
- ( id: psUpToDate; color: $900000; desc: 'Up to date'; ),
- ( id: psUpToDateForced; color: $900000; desc: 'Up to date [Forced]'; ),
- ( id: psBuildReady; color: $009000; desc: 'Ready to be built'; ),
- ( id: psRebuildReady; color: $009000; desc: 'Ready to be rebuilt'; ),
- ( id: psRebuildReadyForced; color: $009000; desc: 'Ready to be rebuilt [Forced]'; )
- );
+ StatusArray: array [0 .. 10] of TPatchStatus = ((id: psUnknown;
+ color: $808080; desc: 'Unknown';), (id: psNoPlugins; color: $0000FF;
+ desc: 'Need two or more plugins to patch';
+ ), (id: psDirInvalid; color: $0000FF; desc: 'Directories invalid';
+ ), (id: psUnloaded; color: $0000FF; desc: 'Plugins not loaded';
+ ), (id: psErrors; color: $0000FF; desc: 'Errors in plugins';
+ ), (id: psFailed; color: $0000FF; desc: 'Patch failed';
+ ), (id: psUpToDate; color: $900000; desc: 'Up to date';
+ ), (id: psUpToDateForced; color: $900000; desc: 'Up to date [Forced]';
+ ), (id: psBuildReady; color: $009000; desc: 'Ready to be built';
+ ), (id: psRebuildReady; color: $009000; desc: 'Ready to be rebuilt';
+ ), (id: psRebuildReadyForced; color: $009000;
+ desc: 'Ready to be rebuilt [Forced]';));
// STATUS TYPES
ErrorStatuses = [psUnknown, psNoPlugins, psDirInvalid, psUnloaded, psErrors];
UpToDateStatuses = [psUpToDate, psUpToDateForced];
- BuildStatuses = [psBuildReady, psRebuildReady, psRebuildReadyForced, psFailed];
+ BuildStatuses = [psBuildReady, psRebuildReady, psRebuildReadyForced,
+ psFailed];
RebuildStatuses = [psRebuildReady, psRebuildReadyForced, psFailed];
ForcedStatuses = [psUpToDateForced, psRebuildReadyForced];
ResolveStatuses = [psNoPlugins, psDirInvalid, psUnloaded, psErrors];
FailedStatuses = [psFailed];
var
- PatchesList, SmashSettings, pluginsToHandle, patchesToBuild: TList;
+ xEditVersion: string;
+ PatchesList, smashSettings, pluginsToHandle, patchesToBuild: TList;
ActiveMods, SavedPluginPaths: TStringList;
ActiveModProfile, xEditLogGroup, xEditLogLabel, DictionaryFilename: string;
@@ -238,12 +249,13 @@ implementation
// mp units
msConfiguration,
// xEdit units
- wbInterface, wbImplementation;
+ wbImplementation;
{ TPlugin Constructor }
constructor TPlugin.Create;
begin
patch := ' ';
+ xEditVersion := VersionString;
inherited;
end;
@@ -256,7 +268,7 @@ procedure TPlugin.GetMsData;
GetDataPath;
GetHash;
- // get numOverrides if not blacklisted
+ // get numOverrides if not blacklisted
if (numRecords < 10000) then
numOverrides := CountOverrides(_File);
@@ -269,14 +281,15 @@ procedure TPlugin.GetDataPath;
dataPath := wbDataPath;
end;
-function TPlugin.GetFormIndex: Integer;
+function TPlugin.GetFormIndex: integer;
var
Container, MasterFiles: IwbContainer;
begin
Result := 0;
Container := self._File as IwbContainer;
Container := Container.Elements[0] as IwbContainer;
- if Container.ElementExists['Master Files'] then begin
+ if Container.ElementExists['Master Files'] then
+ begin
MasterFiles := Container.ElementByPath['Master Files'] as IwbContainer;
Result := MasterFiles.ElementCount;
end;
@@ -294,9 +307,9 @@ function TPlugin.InfoDump: ISuperObject;
obj := SO;
// filename, hash, errors
- obj.S['filename'] := filename;
- obj.S['hash'] := hash;
- obj.S['setting'] := setting;
+ obj.s['filename'] := filename;
+ obj.s['hash'] := hash;
+ obj.s['setting'] := setting;
Result := obj;
end;
@@ -305,30 +318,32 @@ procedure TPlugin.LoadInfoDump(obj: ISuperObject);
var
aSetting: TSmashSetting;
begin
- aSetting := TSettingHelpers.SettingByName(obj.AsObject.S['setting']);
+ aSetting := TSettingHelpers.SettingByName(obj.AsObject.s['setting']);
SetSmashSetting(aSetting);
end;
procedure TPlugin.SetSmashSetting(aSetting: TSmashSetting);
begin
- if not Assigned(aSetting) then begin
+ if not Assigned(aSetting) then
+ begin
setting := 'Skip';
smashSetting := TSettingHelpers.SettingByName(setting);
end
- else begin
+ else
+ begin
setting := aSetting.name;
smashSetting := aSetting;
- Logger.Write('PLUGIN', 'Settings', 'Using '+setting+' for '+filename);
+ Logger.Write('PLUGIN', 'Settings', 'Using ' + setting + ' for ' + filename);
end;
end;
-function TPlugin.HasTags: Boolean;
+function TPlugin.HasTags: boolean;
var
regex: TRegex;
match: TMatch;
begin
- regex := TRegEx.Create('{{([a-zA-Z]{1,10}:){0,1}([^}]*)}}');
- match := regex.Match(description.Text);
+ regex := TRegex.Create('{{([a-zA-Z]{1,10}:){0,1}([^}]*)}}');
+ match := regex.match(description.Text);
Result := match.Success;
end;
@@ -352,21 +367,25 @@ procedure TPlugin.LoadTags(sSettingName: String; var sl: TStringList;
slRecords: TStringList;
aSetting: TSmashSetting;
settingsToCombine: TList;
- i: Integer;
+ i: integer;
begin
// if only one setting present, use it
- if sl.Count = 1 then begin
+ if sl.Count = 1 then
+ begin
aSetting := TSettingHelpers.GetSmashSetting(sl[0]);
SetSmashSetting(aSetting);
end
// else make a combined setting
- else begin
+ else
+ begin
settingsToCombine := TList.Create;
// loop through found settings
- for i := Pred(sl.Count) downto 0 do begin
+ for i := Pred(sl.Count) downto 0 do
+ begin
aSetting := TSettingHelpers.GetSmashSetting(sl[i]);
- if not Assigned(aSetting) then begin
+ if not Assigned(aSetting) then
+ begin
sl.Delete(i);
continue;
end;
@@ -376,11 +395,12 @@ procedure TPlugin.LoadTags(sSettingName: String; var sl: TStringList;
// if settingsToCombine has 0 settings, set to skip setting
if settingsToCombine.Count = 0 then
SetSmashSetting(nil)
- // if settingToCombine has only 1 setting, use that setting
+ // if settingToCombine has only 1 setting, use that setting
else if settingsToCombine.Count = 1 then
SetSmashSetting(settingsToCombine[0])
- // else build a combined setting
- else begin
+ // else build a combined setting
+ else
+ begin
Logger.Write('PLUGIN', 'Settings', 'Building combined setting');
slRecords := TStringList.Create;
CombineSettingTrees(settingsToCombine, slRecords);
@@ -394,25 +414,28 @@ procedure TPlugin.LoadTags(sSettingName: String; var sl: TStringList;
procedure TPlugin.GetSettingTag;
var
- regex: TRegEx;
+ regex: TRegex;
match: TMatch;
sTagGroup: String;
sl: TStringList;
begin
// get setting tags from description
- regex := TRegEx.Create('{{([a-zA-Z]{1,10}:){0,1}([^}]*)}}');
- match := regex.Match(description.Text);
+ regex := TRegex.Create('{{([a-zA-Z]{1,10}:){0,1}([^}]*)}}');
+ match := regex.match(description.Text);
sl := TStringList.Create;
// set to skip setting if no tag is found
- if not match.Success then begin
- Logger.Write('PLUGIN', 'Tags', 'No tags found for '+filename);
+ if not match.Success then
+ begin
+ Logger.Write('PLUGIN', 'Tags', 'No tags found for ' + filename);
setting := 'Skip';
smashSetting := TSettingHelpers.SettingByName(setting);
end
// else parse settings from tag
- else begin
- Logger.Write('PLUGIN', 'Tags', 'Found tag '+match.Value+' for '+filename);
+ else
+ begin
+ Logger.Write('PLUGIN', 'Tags', 'Found tag ' + match.Value + ' for ' +
+ filename);
ExtractTags(match, sl, sTagGroup);
LoadTags(match.Groups.Item[2].Value, sl, sTagGroup);
end;
@@ -443,12 +466,19 @@ procedure TPlugin.Save;
FileStream := nil;
try
FileStream := TFileStream.Create(path, fmCreate);
- _File.WriteToStream(FileStream, False);
+ // Force xedit to save everything in file?
+ {
+ _File.MarkModifiedRecursive([etFile, etMainRecord, etGroupRecord,
+ etSubRecord, etSubRecordStruct, etSubRecordArray, etSubRecordUnion,
+ etArray, etStruct, etValue, etFlag, etStringListTerminator, etUnion,
+ etStructChapter]);
+ }
+ _File.WriteToStream(FileStream, TwbResetModified.rmNo);
if SavedPluginPaths.IndexOf(path) = -1 then
SavedPluginPaths.Add(dataPath + filename);
except
on x: Exception do
- Tracker.Write('Failed to save: '+x.Message);
+ Tracker.Write('Failed to save: ' + x.Message);
end;
TryToFree(FileStream);
end;
@@ -477,9 +507,8 @@ destructor TPatch.Destroy;
inherited;
end;
-
{ Produces a dump of the patch. }
-function TPatch.Dump: ISuperObject;
+function TPatch.dump: ISuperObject;
var
obj: ISuperObject;
i: integer;
@@ -487,28 +516,28 @@ function TPatch.Dump: ISuperObject;
obj := SO;
// normal attributes
- obj.S['name'] := name;
- obj.S['filename'] := filename;
- obj.S['dateBuilt'] := DateTimeToStr(dateBuilt);
+ obj.s['name'] := name;
+ obj.s['filename'] := filename;
+ obj.s['dateBuilt'] := DateTimeToStr(dateBuilt);
// plugins, pluginHashes, pluginSettings, masters
obj.O['plugins'] := SA([]);
for i := 0 to Pred(plugins.Count) do
- obj.A['plugins'].S[i] := plugins[i];
+ obj.A['plugins'].s[i] := plugins[i];
obj.O['pluginHashes'] := SA([]);
for i := 0 to Pred(hashes.Count) do
- obj.A['pluginHashes'].S[i] := hashes[i];
+ obj.A['pluginHashes'].s[i] := hashes[i];
obj.O['pluginSettings'] := SA([]);
for i := 0 to Pred(smashSettings.Count) do
- obj.A['pluginSettings'].S[i] := smashSettings[i];
+ obj.A['pluginSettings'].s[i] := smashSettings[i];
obj.O['masters'] := SA([]);
for i := 0 to Pred(masters.Count) do
- obj.A['masters'].S[i] := masters[i];
+ obj.A['masters'].s[i] := masters[i];
// files, log, ignored dependencies
obj.O['fails'] := SA([]);
for i := 0 to Pred(fails.Count) do
- obj.A['fails'].S[i] := fails[i];
+ obj.A['fails'].s[i] := fails[i];
Result := obj;
end;
@@ -516,44 +545,46 @@ function TPatch.Dump: ISuperObject;
{ Loads a dump of a patch. }
procedure TPatch.LoadDump(obj: ISuperObject);
var
- item: ISuperObject;
+ Item: ISuperObject;
begin
// load object attributes
- name := obj.AsObject.S['name'];
- filename := obj.AsObject.S['filename'];
+ name := obj.AsObject.s['name'];
+ filename := obj.AsObject.s['filename'];
// try loading dateBuilt and parsing to DateTime
try
- dateBuilt := StrToDateTime(obj.AsObject.S['dateBuilt']);
- except on Exception do
- dateBuilt := 0; // on exception set to never built
+ dateBuilt := StrToDateTime(obj.AsObject.s['dateBuilt']);
+ except
+ on Exception do
+ dateBuilt := 0; // on exception set to never built
end;
// load array attributes
- for item in obj['plugins'] do
- plugins.Add(item.AsString);
- for item in obj['pluginHashes'] do
- hashes.Add(item.AsString);
+ for Item in obj['plugins'] do
+ plugins.Add(Item.AsString);
+ for Item in obj['pluginHashes'] do
+ hashes.Add(Item.AsString);
try
- for item in obj['pluginSettings'] do
- smashSettings.Add(item.AsString);
+ for Item in obj['pluginSettings'] do
+ smashSettings.Add(Item.AsString);
except
on x: Exception do
// nothing
end;
- for item in obj['masters'] do
- masters.Add(item.AsString);
- for item in obj['fails'] do
- fails.Add(item.AsString);
+ for Item in obj['masters'] do
+ masters.Add(Item.AsString);
+ for Item in obj['fails'] do
+ fails.Add(Item.AsString);
end;
function TPatch.GetTimeCost: integer;
var
- i: Integer;
+ i: integer;
plugin: TPlugin;
begin
Result := 10000;
- for i := 0 to Pred(plugins.Count) do begin
+ for i := 0 to Pred(plugins.Count) do
+ begin
plugin := PluginByFilename(plugins[i]);
if Assigned(plugin) then
Inc(Result, plugin._File.RecordCount);
@@ -569,28 +600,37 @@ function TPatch.PluginsModified: boolean;
begin
Result := false;
// true if number of hashes not equal to number of plugins
- if (plugins.Count <> hashes.Count)
- or (plugins.Count <> smashSettings.Count) then begin
+ if (plugins.Count <> hashes.Count) or (plugins.Count <> smashSettings.Count)
+ then
+ begin
Logger.Write('PATCH', 'Status', name + ' -> Plugin count changed');
Result := true;
exit;
end;
// true if any plugin hash doesn't match
- for i := 0 to Pred(plugins.count) do begin
+ for i := 0 to Pred(plugins.Count) do
+ begin
plugin := PluginByFilename(plugins[i]);
- if Assigned(plugin) then begin
- if plugin.hash <> hashes[i] then begin
- Logger.Write('PATCH', 'Status', name + ' -> '+plugin.filename + ' hash changed.');
+ if Assigned(plugin) then
+ begin
+ if plugin.hash <> hashes[i] then
+ begin
+ Logger.Write('PATCH', 'Status', name + ' -> ' + plugin.filename +
+ ' hash changed.');
Result := true;
end;
end;
end;
// true if any plugin setting doesn't match
- for i := 0 to Pred(plugins.count) do begin
+ for i := 0 to Pred(plugins.Count) do
+ begin
plugin := PluginByFilename(plugins[i]);
- if Assigned(plugin) then begin
- if plugin.setting <> smashSettings[i] then begin
- Logger.Write('PATCH', 'Status', name + ' -> '+plugin.filename + ' smash setting changed.');
+ if Assigned(plugin) then
+ begin
+ if plugin.setting <> smashSettings[i] then
+ begin
+ Logger.Write('PATCH', 'Status', name + ' -> ' + plugin.filename +
+ ' smash setting changed.');
Result := true;
end;
end;
@@ -612,21 +652,24 @@ procedure TPatch.UpdateDataPath;
procedure TPatch.GetStatus;
var
- i: Integer;
+ i: integer;
plugin: TPlugin;
begin
Logger.Write('PATCH', 'Status', name + ' -> Getting status');
status := psUnknown;
// don't patch if there aren't two or more plugins to patch
- if (plugins.Count < 2) then begin
- Logger.Write('PATCH', 'Status', name + ' -> Need two or more plugins to patch');
+ if (plugins.Count < 2) then
+ begin
+ Logger.Write('PATCH', 'Status',
+ name + ' -> Need two or more plugins to patch');
status := psNoPlugins;
exit;
end;
// don't patch if mod destination directory is blank
- if (settings.patchDirectory = '') then begin
+ if (settings.patchDirectory = '') then
+ begin
Logger.Write('PATCH', 'Status', name + ' -> Patch directory blank');
status := psDirInvalid;
exit;
@@ -636,26 +679,32 @@ procedure TPatch.GetStatus;
UpdateDataPath;
// loop through plugins
- for i := 0 to Pred(plugins.Count) do begin
+ for i := 0 to Pred(plugins.Count) do
+ begin
plugin := PluginByFilename(plugins[i]);
// see if plugin is loaded
- if not Assigned(plugin) then begin
- Logger.Write('PATCH', 'Status', name + ' -> Plugin '+plugins[i]+' is missing');
- if status = psUnknown then status := psUnloaded;
+ if not Assigned(plugin) then
+ begin
+ Logger.Write('PATCH', 'Status', name + ' -> Plugin ' + plugins[i] +
+ ' is missing');
+ if status = psUnknown then
+ status := psUnloaded;
continue;
end;
end;
// check plugins were modified or files were deleted before
// giving patch the up to date status
- if (not PluginsModified) and FilesExist and (status = psUnknown) then begin
+ if (not PluginsModified) and FilesExist and (status = psUnknown) then
+ begin
Logger.Write('PATCH', 'Status', name + ' -> Up to date');
status := psUpToDate;
end;
// status green, ready to go
- if status = psUnknown then begin
+ if status = psUnknown then
+ begin
Logger.Write('PATCH', 'Status', name + ' -> Ready to be patchd');
if dateBuilt = 0 then
status := psBuildReady
@@ -672,11 +721,12 @@ function TPatch.GetStatusColor: integer;
// Update the hashes list for the plugins in the patch
procedure TPatch.UpdateHashes;
var
- i: Integer;
+ i: integer;
aPlugin: TPlugin;
begin
hashes.Clear;
- for i := 0 to Pred(plugins.Count) do begin
+ for i := 0 to Pred(plugins.Count) do
+ begin
aPlugin := PluginByFilename(plugins[i]);
if Assigned(aPlugin) then
hashes.Add(aPlugin.hash);
@@ -686,11 +736,12 @@ procedure TPatch.UpdateHashes;
// Update the settings list for the plugins in the patch
procedure TPatch.UpdateSettings;
var
- i: Integer;
+ i: integer;
aPlugin: TPlugin;
begin
smashSettings.Clear;
- for i := 0 to Pred(plugins.Count) do begin
+ for i := 0 to Pred(plugins.Count) do
+ begin
aPlugin := PluginByFilename(plugins[i]);
if Assigned(aPlugin) then
smashSettings.Add(aPlugin.setting);
@@ -716,7 +767,7 @@ procedure TPatch.SortPlugins;
procedure TPatch.Remove(plugin: TPlugin);
var
- index: Integer;
+ index: integer;
begin
// clear plugin's patch property, if it's the name of this patch
if plugin.patch = name then
@@ -729,7 +780,7 @@ procedure TPatch.Remove(plugin: TPlugin);
procedure TPatch.Remove(pluginFilename: string);
var
- index: Integer;
+ index: integer;
begin
index := plugins.IndexOf(pluginFilename);
// remove plugin from patch, if present
@@ -746,9 +797,11 @@ class function TSettingHelpers.SettingByName(name: string): TSmashSetting;
aSetting: TSmashSetting;
begin
Result := nil;
- for i := 0 to Pred(SmashSettings.Count) do begin
- aSetting := TSmashSetting(SmashSettings[i]);
- if aSetting.name = name then begin
+ for i := 0 to Pred(smashSettings.Count) do
+ begin
+ aSetting := TSmashSetting(smashSettings[i]);
+ if aSetting.name = name then
+ begin
Result := aSetting;
exit;
end;
@@ -762,9 +815,11 @@ class function TSettingHelpers.SettingByHash(hash: string): TSmashSetting;
aSetting: TSmashSetting;
begin
Result := nil;
- for i := 0 to Pred(SmashSettings.Count) do begin
- aSetting := TSmashSetting(SmashSettings[i]);
- if aSetting.MatchesHash(hash) then begin
+ for i := 0 to Pred(smashSettings.Count) do
+ begin
+ aSetting := TSmashSetting(smashSettings[i]);
+ if aSetting.MatchesHash(hash) then
+ begin
Result := aSetting;
exit;
end;
@@ -781,7 +836,8 @@ class function TSettingHelpers.GetSmashSetting(setting: string): TSmashSetting;
Result := nil;
// parse setting name and hash
- if Pos('|', setting) > 0 then begin
+ if Pos('|', setting) > 0 then
+ begin
sl := TStringList.Create;
try
sl.Delimiter := '|';
@@ -789,7 +845,8 @@ class function TSettingHelpers.GetSmashSetting(setting: string): TSmashSetting;
sl.DelimitedText := setting;
// if we have a setting name, use it to get a smash setting
- if Length(sl[0]) > 0 then begin
+ if Length(sl[0]) > 0 then
+ begin
smashSetting := SettingByName(sl[0]);
// and return it if the hash matches
if Assigned(smashSetting) and smashSetting.MatchesHash(sl[1]) then
@@ -811,13 +868,15 @@ class function TSettingHelpers.GetSmashSetting(setting: string): TSmashSetting;
class function TPatchHelpers.GetPatchForPlugin(filename: string): string;
var
- i: Integer;
+ i: integer;
patch: TPatch;
begin
Result := ' ';
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
patch := TPatch(PatchesList[i]);
- if patch.plugins.IndexOf(filename) > -1 then begin
+ if patch.plugins.IndexOf(filename) > -1 then
+ begin
Result := patch.name;
break;
end;
@@ -826,13 +885,15 @@ class function TPatchHelpers.GetPatchForPlugin(filename: string): string;
class procedure TPatchHelpers.AssignPatchesToPlugins;
var
- i, j: Integer;
+ i, j: integer;
patch: TPatch;
plugin: TPlugin;
begin
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
patch := TPatch(PatchesList[i]);
- for j := 0 to Pred(patch.plugins.Count) do begin
+ for j := 0 to Pred(patch.plugins.Count) do
+ begin
plugin := PluginByFilename(patch.plugins[j]);
if Assigned(plugin) then
plugin.patch := patch.name;
@@ -841,32 +902,37 @@ class procedure TPatchHelpers.AssignPatchesToPlugins;
end;
{ Gets a patch matching the given name. }
-class function TPatchHelpers.PatchByName(var patches: TList; name: string): TPatch;
+class function TPatchHelpers.PatchByName(var patches: TList;
+ name: string): TPatch;
var
i: integer;
patch: TPatch;
begin
Result := nil;
- for i := 0 to Pred(patches.Count) do begin
+ for i := 0 to Pred(patches.Count) do
+ begin
patch := TPatch(patches[i]);
- if patch.name = name then begin
+ if patch.name = name then
+ begin
Result := patch;
exit;
end;
end;
end;
-
{ Gets a patch matching the given filename. }
-class function TPatchHelpers.PatchByFilename(var patches: TList; filename: string): TPatch;
+class function TPatchHelpers.PatchByFilename(var patches: TList;
+ filename: string): TPatch;
var
i: integer;
patch: TPatch;
begin
Result := nil;
- for i := 0 to Pred(patches.Count) do begin
+ for i := 0 to Pred(patches.Count) do
+ begin
patch := TPatch(patches[i]);
- if patch.filename = filename then begin
+ if patch.filename = filename then
+ begin
Result := patch;
exit;
end;
@@ -876,7 +942,7 @@ class function TPatchHelpers.PatchByFilename(var patches: TList; filename: strin
{ Create a new patch with non-conflicting name and filename }
class function TPatchHelpers.CreateNewPatch(var patches: TList): TPatch;
var
- i: Integer;
+ i: integer;
patch: TPatch;
name: string;
begin
@@ -885,7 +951,8 @@ class function TPatchHelpers.CreateNewPatch(var patches: TList): TPatch;
// deal with conflicting patch names
i := 0;
name := patch.name;
- while Assigned(PatchByName(patches, name)) do begin
+ while Assigned(PatchByName(patches, name)) do
+ begin
Inc(i);
name := 'NewPatch' + IntToStr(i);
end;
@@ -894,7 +961,8 @@ class function TPatchHelpers.CreateNewPatch(var patches: TList): TPatch;
// deal with conflicting patch filenames
i := 0;
name := patch.filename;
- while Assigned(PatchByFilename(patches, name)) do begin
+ while Assigned(PatchByFilename(patches, name)) do
+ begin
Inc(i);
name := 'NewPatch' + IntToStr(i) + '.esp';
end;
@@ -913,9 +981,9 @@ constructor TElementData.Create;
self.linkFrom := '';
end;
-constructor TElementData.Create(priority: Byte; process, preserveDeletions,
- overrideDeletions, singleEntity, forceValue: Boolean; smashType: TSmashType;
- linkTo, linkFrom: string);
+constructor TElementData.Create(priority: byte;
+ process, preserveDeletions, overrideDeletions, singleEntity,
+ forceValue: boolean; smashType: TSmashType; linkTo, linkFrom: string);
begin
self.priority := priority;
self.process := process;
@@ -931,11 +999,12 @@ constructor TElementData.Create(priority: Byte; process, preserveDeletions,
{ TSmashSetting }
function GetUniqueSettingName(base: string): string;
var
- i: Integer;
+ i: integer;
begin
Result := base;
i := 1;
- while Assigned(TSettingHelpers.SettingByName(Result)) do begin
+ while Assigned(TSettingHelpers.SettingByName(Result)) do
+ begin
Inc(i);
Result := base + IntToStr(i);
end;
@@ -959,7 +1028,8 @@ destructor TSmashSetting.Destroy;
color := 0;
description := '';
records := '';
- if Assigned(tree) then tree._Release;
+ if Assigned(tree) then
+ tree._Release;
tree := nil;
end;
@@ -983,15 +1053,15 @@ function TSmashSetting.GetRecordDef(sig: string): ISuperObject;
procedure TSmashSetting.LoadDump(dump: ISuperObject);
begin
- name := dump.S['name'];
- color := dump.I['color'];
- hash := dump.S['hash'];
- description := dump.S['description'];
- records := dump.S['records'];
+ name := dump.s['name'];
+ color := dump.i['color'];
+ hash := dump.s['hash'];
+ description := dump.s['description'];
+ records := dump.s['records'];
tree := dump.O['tree'];
end;
-function TSmashSetting.Dump: ISuperObject;
+function TSmashSetting.dump: ISuperObject;
var
obj: ISuperObject;
begin
@@ -1000,11 +1070,11 @@ function TSmashSetting.Dump: ISuperObject;
// tree
obj.O['tree'] := tree;
// normal attributes
- obj.S['records'] := records;
- obj.S['description'] := description;
- obj.I['color'] := color;
- obj.S['hash'] := hash;
- obj.S['name'] := name;
+ obj.s['records'] := records;
+ obj.s['description'] := description;
+ obj.i['color'] := color;
+ obj.s['hash'] := hash;
+ obj.s['name'] := name;
Result := obj;
end;
@@ -1016,7 +1086,7 @@ procedure TSmashSetting.UpdateHash;
procedure TSmashSetting.UpdateRecords;
var
- item: ISuperObject;
+ Item: ISuperObject;
sl: TStringList;
begin
// prepare comma delimited stringlist
@@ -1027,9 +1097,10 @@ procedure TSmashSetting.UpdateRecords;
try
// loop through records and add their signatures
// to the stringlist if they are set to be processed
- for item in tree['records'] do begin
- if item.I['p'] = 1 then
- sl.Add(Copy(item.S['n'], 1, 4));
+ for Item in tree['records'] do
+ begin
+ if Item.i['p'] = 1 then
+ sl.Add(Copy(Item.s['n'], 1, 4));
end;
// assign records the delimited signatures
@@ -1045,18 +1116,18 @@ procedure TSmashSetting.Save;
path: string;
begin
UpdateHash;
- path := Format('%s\settings\%s\%s.json',
- [PathList.Values['ProgramPath'], ProgramStatus.GameMode.gameName, name]);
+ path := Format('%s\settings\%s\%s.json', [PathList.Values['ProgramPath'],
+ ProgramStatus.GameMode.gameName, name]);
ForceDirectories(ExtractFilePath(path));
- Dump.SaveTo(path);
+ dump.SaveTo(path);
end;
procedure TSmashSetting.Delete;
var
path: string;
begin
- path := Format('%s\settings\%s\%s.json',
- [PathList.Values['ProgramPath'], ProgramStatus.GameMode.gameName, name]);
+ path := Format('%s\settings\%s\%s.json', [PathList.Values['ProgramPath'],
+ ProgramStatus.GameMode.gameName, name]);
if FileExists(path) then
DeleteToRecycleBin(path, false);
end;
@@ -1065,19 +1136,20 @@ procedure TSmashSetting.Rename(newName: string);
var
oldPath, newPath: string;
begin
- oldPath := Format('%s\settings\%s\%s.json',
- [PathList.Values['ProgramPath'], ProgramStatus.GameMode.gameName, name]);
- newPath := Format('%s\settings\%s\%s.json',
- [PathList.Values['ProgramPath'], ProgramStatus.GameMode.gameName, newName]);
- if FileExists(oldpath) then
- RenameFile(oldpath, newpath);
+ oldPath := Format('%s\settings\%s\%s.json', [PathList.Values['ProgramPath'],
+ ProgramStatus.GameMode.gameName, name]);
+ newPath := Format('%s\settings\%s\%s.json', [PathList.Values['ProgramPath'],
+ ProgramStatus.GameMode.gameName, newName]);
+ if FileExists(oldPath) then
+ RenameFile(oldPath, newPath);
name := newName;
end;
function TSmashSetting.MatchesHash(hash: string): boolean;
begin
// result is true if hash is blank
- if hash = '' then begin
+ if hash = '' then
+ begin
Result := true;
exit;
end;
@@ -1089,12 +1161,13 @@ function TSmashSetting.MatchesHash(hash: string): boolean;
function TSmashSetting.GetTags: String;
var
- index: Integer;
+ index: integer;
begin
if Pos('Combined setting:', description) = 1 then
- Result := GetCombinedTags
- // else handle a normal setting
- else begin
+ Result := GetCombinedTags
+ // else handle a normal setting
+ else
+ begin
index := Pos('.', name);
if (index > 0) and (index < 11) then
Result := Format('{{%s}}', [StringReplace(name, '.', ':', [])])
@@ -1125,7 +1198,7 @@ function TSmashSetting.GetCombinedTags: String;
procedure SavePatches;
var
- i: Integer;
+ i: integer;
patch: TPatch;
json: ISuperObject;
filename: string;
@@ -1137,11 +1210,12 @@ procedure SavePatches;
// loop through patches
Tracker.Write(' ');
Tracker.Write('Dumping patches to JSON');
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
Tracker.UpdateProgress(1);
patch := TPatch(PatchesList[i]);
- Tracker.Write(' Dumping '+patch.name);
- json.A['patches'].Add(patch.Dump);
+ Tracker.Write(' Dumping ' + patch.name);
+ json.A['patches'].Add(patch.dump);
end;
// save and finalize
@@ -1172,14 +1246,16 @@ procedure LoadPatches;
obj := SO(PChar(sl.Text));
// loop through patches
- for patchItem in obj['patches'] do begin
+ for patchItem in obj['patches'] do
+ begin
patch := TPatch.Create;
try
patch.LoadDump(patchItem);
PatchesList.Add(patch);
except
- on x: Exception do begin
- Logger.Write('LOAD', 'Patch', 'Failed to load patch '+patch.name);
+ on x: Exception do
+ begin
+ Logger.Write('LOAD', 'Patch', 'Failed to load patch ' + patch.name);
Logger.Write('LOAD', 'Patch', x.Message);
end;
end;
@@ -1190,16 +1266,18 @@ procedure LoadPatches;
sl.Free;
end;
-function IndexOfDump(a: TSuperArray; plugin: TPlugin): Integer;
+function IndexOfDump(A: TSuperArray; plugin: TPlugin): integer;
var
- i: Integer;
+ i: integer;
obj: ISuperObject;
begin
Result := -1;
- for i := 0 to Pred(a.Length) do begin
- obj := a.O[i];
- if (obj.S['filename'] = plugin.filename)
- and (obj.S['hash'] = plugin.hash) then begin
+ for i := 0 to Pred(A.Length) do
+ begin
+ obj := A.O[i];
+ if (obj.s['filename'] = plugin.filename) and (obj.s['hash'] = plugin.hash)
+ then
+ begin
Result := i;
exit;
end;
@@ -1209,14 +1287,15 @@ function IndexOfDump(a: TSuperArray; plugin: TPlugin): Integer;
procedure SaveSmashSettings;
var
aSetting: TSmashSetting;
- i: Integer;
+ i: integer;
begin
Tracker.Write('Saving smash settings');
- for i := 0 to Pred(SmashSettings.Count) do begin
- aSetting := TSmashSetting(SmashSettings[i]);
+ for i := 0 to Pred(smashSettings.Count) do
+ begin
+ aSetting := TSmashSetting(smashSettings[i]);
if aSetting.bVirtual then
continue;
- Tracker.Write(' Saving '+aSetting.name);
+ Tracker.Write(' Saving ' + aSetting.name);
aSetting.Save;
end;
Tracker.Write(' ');
@@ -1225,13 +1304,13 @@ procedure SaveSmashSettings;
procedure CreateSkipSetting;
var
skipSetting: TSmashSetting;
- index: Integer;
+ index: integer;
begin
- index := SmashSettings.Add(TSmashSetting.Create);
- skipSetting := SmashSettings[index];
+ index := smashSettings.Add(TSmashSetting.Create);
+ skipSetting := smashSettings[index];
skipSetting.name := 'Skip';
skipSetting.color := clGray;
- skipSetting.description := 'Special setting. Any plugin with this setting '+
+ skipSetting.description := 'Special setting. Any plugin with this setting ' +
'will be excluded from patch creation.';
skipSetting.tree := SO();
skipSetting.tree.O['records'] := SA([]);
@@ -1245,7 +1324,8 @@ procedure LoadSmashSettings;
aSetting: TSmashSetting;
path: String;
begin
- path := Format('%ssettings\%s\', [PathList.Values['ProgramPath'], ProgramStatus.GameMode.gameName]);
+ path := Format('%ssettings\%s\', [PathList.Values['ProgramPath'],
+ ProgramStatus.GameMode.gameName]);
ForceDirectories(path);
// load setting files from settings path
@@ -1254,21 +1334,25 @@ procedure LoadSmashSettings;
repeat
sl := TStringList.Create;
try
- sl.LoadFromFile(path + info.Name);
+ sl.LoadFromFile(path + info.name);
aSetting := TSmashSetting.Create;
obj := SO(PChar(sl.Text));
- if Assigned(obj) then begin
+ if Assigned(obj) then
+ begin
aSetting.LoadDump(obj);
if aSetting.name <> '' then
- SmashSettings.Add(aSetting);
+ smashSettings.Add(aSetting);
end;
sl.Free;
obj := nil;
except
- on x: Exception do begin
- if Assigned(sl) then sl.Free;
+ on x: Exception do
+ begin
+ if Assigned(sl) then
+ sl.Free;
obj := nil;
- Logger.Write('ERROR', 'Load', 'Failed to load smash setting '+info.Name);
+ Logger.Write('ERROR', 'Load', 'Failed to load smash setting ' +
+ info.name);
end;
end;
until FindNext(info) <> 0;
@@ -1280,7 +1364,7 @@ procedure LoadSmashSettings;
procedure SavePluginInfo;
var
- i, index: Integer;
+ i, index: integer;
plugin: TPlugin;
obj: ISuperObject;
filename: string;
@@ -1288,14 +1372,16 @@ procedure SavePluginInfo;
begin
// don't load file if it doesn't exist
filename := PathList.Values['ProfilePath'] + 'PluginInfo.json';
- if FileExists(filename) then begin
+ if FileExists(filename) then
+ begin
// load file text into SuperObject to parse it
sl := TStringList.Create;
sl.LoadFromFile(filename);
obj := SO(PChar(sl.Text));
sl.Free;
end
- else begin
+ else
+ begin
// initialize new json object
obj := SO;
obj.O['plugins'] := SA([]);
@@ -1303,31 +1389,33 @@ procedure SavePluginInfo;
// loop through plugins
Tracker.Write('Dumping plugin errors to JSON');
- for i := 0 to Pred(PluginsList.Count) do try
- plugin := PluginsList[i];
- Tracker.UpdateProgress(1);
- if not Assigned(plugin.smashSetting) then
- continue;
- index := IndexOfDump(obj.A['plugins'], plugin);
- if plugin.smashSetting.bVirtual or (plugin.setting = 'Skip') then begin
- if index <> -1 then
- obj.A['plugins'].Delete(index);
- continue;
+ for i := 0 to Pred(PluginsList.Count) do
+ try
+ plugin := PluginsList[i];
+ Tracker.UpdateProgress(1);
+ if not Assigned(plugin.smashSetting) then
+ continue;
+ index := IndexOfDump(obj.A['plugins'], plugin);
+ if plugin.smashSetting.bVirtual or (plugin.setting = 'Skip') then
+ begin
+ if index <> -1 then
+ obj.A['plugins'].Delete(index);
+ continue;
+ end;
+ Tracker.Write(' Dumping ' + plugin.filename);
+ if index = -1 then
+ obj.A['plugins'].Add(plugin.InfoDump)
+ else
+ obj.A['plugins'].O[index] := plugin.InfoDump;
+ except
+ on x: Exception do
+ Tracker.Write(' Exception ' + x.Message);
end;
- Tracker.Write(' Dumping '+plugin.filename);
- if index = -1 then
- obj.A['plugins'].Add(plugin.InfoDump)
- else
- obj.A['plugins'].O[index] := plugin.InfoDump;
- except
- on x: Exception do
- Tracker.Write(' Exception '+x.Message);
- end;
// save and finalize
Tracker.Write(' ');
filename := PathList.Values['ProfilePath'] + 'PluginInfo.json';
- Tracker.Write('Saving to '+filename);
+ Tracker.Write('Saving to ' + filename);
Tracker.UpdateProgress(1);
obj.SaveTo(filename);
obj := nil;
@@ -1351,10 +1439,11 @@ procedure LoadPluginInfo;
// loop through patches
filename := '';
- for pluginItem in obj['plugins'] do begin
- filename := pluginItem.AsObject.S['filename'];
- hash := pluginItem.AsObject.S['hash'];
- plugin := PluginByFileName(filename);
+ for pluginItem in obj['plugins'] do
+ begin
+ filename := pluginItem.AsObject.s['filename'];
+ hash := pluginItem.AsObject.s['hash'];
+ plugin := PluginByFilename(filename);
if not Assigned(plugin) then
continue;
if (plugin.hash = hash) and (plugin.filename = filename) then
@@ -1368,11 +1457,12 @@ procedure LoadPluginInfo;
procedure LoadSettingTags;
var
- i: Integer;
+ i: integer;
plugin: TPlugin;
begin
// loop through loaded plugins
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
if plugin.setting <> '' then
continue;
@@ -1388,34 +1478,58 @@ procedure HandleCanceled(msg: string);
procedure RenameSavedPlugins;
var
- i: Integer;
+ i: integer;
oldFileName, newFileName, bakFileName: string;
+ next: Boolean;
begin
// tracker message
Tracker.Write(' ');
Tracker.Write('Renaming saved plugins');
- for i := Pred(SavedPluginPaths.Count) downto 0 do try
- oldFileName := SavedPluginPaths[i];
- newFileName := oldFileName + '.save';
- bakFileName := oldFileName + '.bak';
- Tracker.Write(Format(' Renaming %s to %s', [ExtractFileName(newFileName), ExtractFileName(oldFileName)]));
- if FileExists(bakFileName) then
- DeleteFile(bakFileName);
- RenameFile(oldFileName, bakFileName);
- RenameFile(newFileName, oldFileName);
- except
- on x: Exception do
- Tracker.Write(' Failed to rename ' + newFileName);
+ for i := Pred(SavedPluginPaths.Count) downto 0 do
+ begin
+ next := false;
+ repeat
+ begin
+ try
+ oldFileName := SavedPluginPaths[i];
+ newFileName := oldFileName + '.save';
+ bakFileName := oldFileName + '.bak';
+ Tracker.Write(Format(' Renaming %s to %s',
+ [ExtractFileName(newFileName), ExtractFileName(oldFileName)]));
+ if FileExists(oldFileName) and FileExists(bakFileName) then
+ DeleteFile(bakFileName);
+ RenameFile(oldFileName, bakFileName);
+ if not RenameFile(newFileName, oldFileName) then
+ raise Exception.Create('Failed to rename file');
+ next := true;
+ except
+ on x: Exception do
+ begin
+ Tracker.Write(' Failed to rename ' + newFileName);
+ case MessageBox(0, PWideChar('Error saving ' + oldFileName + ': ' +
+ x.ToString), 'Save Error', MB_ICONWARNING or MB_ABORTRETRYIGNORE or
+ MB_DEFBUTTON2) of
+ IDABORT:
+ raise x;
+ IDRETRY:
+ next := false;
+ IDIGNORE:
+ next := true;
+ end;
+ end;
+ end;
+ end
+ until (next) end;
end;
-end;
procedure UpdatePluginData;
var
- i: Integer;
+ i: integer;
plugin: TPlugin;
begin
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
plugin.UpdateData;
end;
@@ -1426,14 +1540,15 @@ function CreateNewPlugin(sFilename: string): TPlugin;
Result := TPlugin(TPluginHelpers.CreateNewBasePlugin(PluginsList, sFilename));
end;
-function PluginLoadOrder(sFilename: string): Integer;
+function PluginLoadOrder(sFilename: string): integer;
begin
Result := TPluginHelpers.BasePluginLoadOrder(PluginsList, sFilename);
end;
function PluginByFilename(sFilename: string): TPlugin;
begin
- Result := TPlugin(TPluginHelpers.BasePluginByFilename(PluginsList, sFilename));
+ Result := TPlugin(TPluginHelpers.BasePluginByFilename(PluginsList,
+ sFilename));
end;
function DefDisplayName(var def: TwbRecordDefEntry): String;
@@ -1441,39 +1556,43 @@ function DefDisplayName(var def: TwbRecordDefEntry): String;
sig: String;
begin
sig := String(def.rdeSignature);
- Result := def.rdeDef.Name;
+ Result := def.rdeDef.name;
if (Result <> sig) then
Result := sig + ' - ' + Result;
end;
procedure PopulateAddList(var AddItem: TMenuItem; Event: TNotifyEvent);
var
- i: Integer;
+ i: integer;
recordDef: TwbRecordDefEntry;
- item: TMenuItem;
+ Item: TMenuItem;
begin
- for i := Low(wbRecordDefs) to High(wbRecordDefs) do begin
+ for i := Low(wbRecordDefs) to High(wbRecordDefs) do
+ begin
recordDef := wbRecordDefs[i];
- item := TMenuItem.Create(AddItem);
- item.Caption := DefDisplayName(recordDef);
- item.OnClick := Event;
- AddItem.Add(item);
+ Item := TMenuItem.Create(AddItem);
+ Item.Caption := DefDisplayName(recordDef);
+ Item.OnClick := Event;
+ AddItem.Add(Item);
end;
end;
procedure AddAllRecords(currentSetting: TSmashSetting; var tv: TTreeView);
var
- i: Integer;
+ i: integer;
recordDef: TwbRecordDefEntry;
groupName: String;
recObj: ISuperObject;
begin
- for i := Low(wbRecordDefs) to High(wbRecordDefs) do begin
+ for i := Low(wbRecordDefs) to High(wbRecordDefs) do
+ begin
recordDef := wbRecordDefs[i];
groupName := DefDisplayName(recordDef);
recObj := GetRecordObj(currentSetting.tree, groupName);
- if Assigned(recObj) then continue;
- if not BuildRecordDef(groupName, recObj) then continue;
+ if Assigned(recObj) then
+ continue;
+ if not BuildRecordDef(groupName, recObj) then
+ continue;
currentSetting.tree.A['records'].Add(recObj);
LoadElement(tv, tv.Items[0], recObj, false);
end;
@@ -1481,12 +1600,14 @@ procedure AddAllRecords(currentSetting: TSmashSetting; var tv: TTreeView);
procedure RemoveSettingFromPlugins(aSetting: TSmashSetting);
var
- i: Integer;
+ i: integer;
plugin: TPlugin;
begin
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
- if plugin.setting = aSetting.name then begin
+ if plugin.setting = aSetting.name then
+ begin
plugin.setting := 'Skip';
plugin.smashSetting := TSettingHelpers.SettingByName('Skip');
end;
@@ -1495,30 +1616,33 @@ procedure RemoveSettingFromPlugins(aSetting: TSmashSetting);
function GetTagString(var slTags: TStringList): String;
var
- i, index: Integer;
+ i, index: integer;
tag, sTagGroup, sGroup: String;
begin
- for i := 0 to Pred(slTags.Count) do begin
+ for i := 0 to Pred(slTags.Count) do
+ begin
tag := slTags[i];
index := Pos('.', tag);
sTagGroup := Copy(tag, 1, index - 1);
- if (index > 0) and (index < 11) and (SameText(sGroup, sTagGroup) or (i = 0)) then
+ if (index > 0) and (index < 11) and (SameText(sGroup, sTagGroup) or (i = 0))
+ then
sGroup := sTagGroup
else
sGroup := '';
end;
// generate the string of tags
- if sGroup <> '' then begin
- Result := StringReplace(slTags.CommaText, sGroup + '.', '', [rfReplaceAll, rfIgnoreCase]);
+ if sGroup <> '' then
+ begin
+ Result := StringReplace(slTags.CommaText, sGroup + '.', '',
+ [rfReplaceAll, rfIgnoreCase]);
Result := Format('{{%s:%s}}', [UpperCase(sGroup), Result])
end
else
Result := Format('{{%s}}', [slTags.CommaText]);
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Tree Helper Functions
- BuildTreeFromPlugins
- SetChildren
@@ -1526,15 +1650,15 @@ function GetTagString(var slTags: TStringList): String;
- CheckBoxManager
- LoadElement
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure BuildTreeFromPlugins(var tv: TTreeView; var sl: TStringList;
tree: ISuperObject);
var
- i, j: Integer;
+ i, j: integer;
plugin: TPlugin;
rec: IwbMainRecord;
- RecordDef: PwbRecordDef;
+ recordDef: PwbMainRecordDef;
def: TwbRecordDefEntry;
sName, sSignature: string;
slRecordSignatures: TStringList;
@@ -1545,15 +1669,17 @@ procedure BuildTreeFromPlugins(var tv: TTreeView; var sl: TStringList;
slRecordSignatures.Duplicates := dupIgnore;
try
// loop through plugins
- for i := 0 to Pred(sl.Count) do begin
- plugin := PluginByFileName(sl[i]);
+ for i := 0 to Pred(sl.Count) do
+ begin
+ plugin := PluginByFilename(sl[i]);
if not Assigned(plugin) then
continue;
if not plugin._File.IsEditable then
continue;
// loop through records
- for j := 0 to Pred(plugin._File.RecordCount) do begin
- rec := plugin._File.Records[j];
+ for j := 0 to Pred(plugin._File.RecordCount) do
+ begin
+ rec := plugin._File.records[j];
// skip non-override records
if rec.IsMaster then
continue;
@@ -1564,15 +1690,16 @@ procedure BuildTreeFromPlugins(var tv: TTreeView; var sl: TStringList;
continue;
slRecordSignatures.Add(sSignature);
// skip records that aren't defined
- if not wbFindRecordDef(AnsiString(sSignature), RecordDef) then
+ if not wbFindRecordDef(AnsiString(sSignature), recordDef) then
continue;
// get record def object if it exists
- sName := sSignature + ' - ' + RecordDef.Name;
+ sName := sSignature + ' - ' + recordDef.name;
recObj := GetRecordObj(tree, sName);
// build record def if it doesn't exist
- if not Assigned(recObj) then begin
+ if not Assigned(recObj) then
+ begin
def := GetRecordDef(rec.Signature);
if not BuildRecordDef(sName, def.rdeDef, recObj) then
continue;
@@ -1592,18 +1719,20 @@ procedure BuildTreeFromPlugins(var tv: TTreeView; var sl: TStringList;
Sets the StateIndex attribute of all the children of @node
to @state. Uses recursion.
}
-procedure SetChildren(node: TTreeNode; state: Integer);
+procedure SetChildren(node: TTreeNode; state: integer);
var
tmp: TTreeNode;
e: TElementData;
begin
// exit if we don't have a node to work with
- if not Assigned(node) then exit;
+ if not Assigned(node) then
+ exit;
// loop through children setting StateIndex to state
// if child has children, recurse into that child
tmp := node.getFirstChild;
- while Assigned(tmp) do begin
+ while Assigned(tmp) do
+ begin
tmp.StateIndex := state;
e := TElementData(tmp.Data);
e.process := state <> csUnChecked;
@@ -1623,21 +1752,26 @@ procedure SetChildren(node: TTreeNode; state: Integer);
procedure UpdateParent(node: TTreeNode);
var
tmp: TTreeNode;
- state: Integer;
+ state: integer;
e: TElementData;
begin
// exit if we don't have a node to work with
// or if not is set to be treated as a single entity
- if not Assigned(node) then exit;
+ if not Assigned(node) then
+ exit;
e := TElementData(node.Data);
- if not Assigned(e) then exit;
- if e.singleEntity then exit;
+ if not Assigned(e) then
+ exit;
+ if e.singleEntity then
+ exit;
// parent state is checked if all siblings are checked
state := csChecked;
tmp := node.getFirstChild;
- while Assigned(tmp) do begin
- if tmp.StateIndex <> csChecked then begin
+ while Assigned(tmp) do
+ begin
+ if tmp.StateIndex <> csChecked then
+ begin
state := csPartiallyChecked;
break;
end;
@@ -1645,11 +1779,14 @@ procedure UpdateParent(node: TTreeNode);
end;
// parent state is unchecked if all siblings are unchecked
- if state = csPartiallyChecked then begin
+ if state = csPartiallyChecked then
+ begin
state := csUnChecked;
tmp := node.getFirstChild;
- while Assigned(tmp) do begin
- if tmp.StateIndex <> csUnChecked then begin
+ while Assigned(tmp) do
+ begin
+ if tmp.StateIndex <> csUnChecked then
+ begin
state := csPartiallyChecked;
break;
end;
@@ -1675,12 +1812,14 @@ procedure CheckBoxManager(node: TTreeNode);
e: TElementData;
begin
// exit if we don't have a node to work with
- if not Assigned(node) then exit;
+ if not Assigned(node) then
+ exit;
// if unchecked or partially checked, set to checked and
// set all children to checked, update parents
- if (node.StateIndex = csUnChecked)
- or (node.StateIndex = csPartiallyChecked) then begin
+ if (node.StateIndex = csUnChecked) or (node.StateIndex = csPartiallyChecked)
+ then
+ begin
node.StateIndex := csChecked;
e := TElementData(node.Data);
e.process := true;
@@ -1690,7 +1829,8 @@ procedure CheckBoxManager(node: TTreeNode);
end
// if checked, set to unchecked and set all children to
// unchecked, update parents
- else if node.StateIndex = csChecked then begin
+ else if node.StateIndex = csChecked then
+ begin
node.StateIndex := csUnChecked;
e := TElementData(node.Data);
e.process := false;
@@ -1703,11 +1843,11 @@ procedure CheckBoxManager(node: TTreeNode);
procedure LoadElement(var tv: TTreeView; node: TTreeNode; obj: ISuperObject;
bWithinSingle: boolean);
var
- item: ISuperObject;
+ Item: ISuperObject;
child, nextChild: TTreeNode;
bProcess, bPreserveDeletions, bOverrideDeletions, bIsSingle,
- bForceValue: boolean;
- priority: Integer;
+ bForceValue: boolean;
+ priority: integer;
oSmashType: TSmashType;
sName, sLinkTo, sLinkFrom: string;
e: TElementData;
@@ -1716,25 +1856,27 @@ procedure LoadElement(var tv: TTreeView; node: TTreeNode; obj: ISuperObject;
exit;
// load data from json
- sName := obj.S['n'];
- priority := obj.I['r'];
- bProcess := obj.I['p'] = 1;
- bPreserveDeletions := obj.I['d'] = 1;
- bOverrideDeletions := obj.I['o'] = 1;
- bIsSingle := obj.I['s'] = 1;
- bForceValue := obj.I['f'] = 1;
+ sName := obj.s['n'];
+ priority := obj.i['r'];
+ bProcess := obj.i['p'] = 1;
+ bPreserveDeletions := obj.i['d'] = 1;
+ bOverrideDeletions := obj.i['o'] = 1;
+ bIsSingle := obj.i['s'] = 1;
+ bForceValue := obj.i['f'] = 1;
bWithinSingle := bWithinSingle or bIsSingle;
- oSmashType := TSmashType(obj.I['t']);
- sLinkTo := obj.S['lt'];
- sLinkFrom := obj.S['lf'];
+ oSmashType := TSmashType(obj.i['t']);
+ sLinkTo := obj.s['lt'];
+ sLinkFrom := obj.s['lf'];
// create child
e := TElementData.Create(priority, bProcess, bPreserveDeletions,
bOverrideDeletions, bIsSingle, bForceValue, oSmashType, sLinkTo, sLinkFrom);
// nodes insert in sorted order for record nodes
- if (node.Level = 0) and node.hasChildren then begin
+ if (node.Level = 0) and node.HasChildren then
+ begin
child := node.getFirstChild;
- while (AnsiCompareText(child.Text, sName) < 0) do begin
+ while (AnsiCompareText(child.Text, sName) < 0) do
+ begin
nextChild := child.getNextSibling;
if not Assigned(nextChild) then
break;
@@ -1755,20 +1897,21 @@ procedure LoadElement(var tv: TTreeView; node: TTreeNode; obj: ISuperObject;
child.StateIndex := csUnChecked;
// recurse into children
- if Assigned(obj.O['c']) then try
- for item in obj['c'] do
- LoadElement(tv, child, item, bWithinSingle);
- if not bWithinSingle then
- UpdateParent(child);
- except
- on x : Exception do
- // nothing
- end;
+ if Assigned(obj.O['c']) then
+ try
+ for Item in obj['c'] do
+ LoadElement(tv, child, Item, bWithinSingle);
+ if not bWithinSingle then
+ UpdateParent(child);
+ except
+ on x: Exception do
+ // nothing
+ end;
end;
procedure LoadTree(var tv: TTreeView; aSetting: TSmashSetting);
var
- obj, item: ISuperObject;
+ obj, Item: ISuperObject;
rootNode: TTreeNode;
e: TElementData;
begin
@@ -1780,18 +1923,20 @@ procedure LoadTree(var tv: TTreeView; aSetting: TSmashSetting);
if not Assigned(obj['records']) then
exit;
- for item in obj['records'] do
- LoadElement(tv, rootNode, item, false);
+ for Item in obj['records'] do
+ LoadElement(tv, rootNode, Item, false);
end;
function GetRecordObject(tree: ISuperObject; sig: string): ISuperObject;
var
- item: ISuperObject;
+ Item: ISuperObject;
begin
Result := nil;
- for item in tree['records'] do begin
- if Copy(item.S['n'], 1, 4) = sig then begin
- Result := item;
+ for Item in tree['records'] do
+ begin
+ if Copy(Item.s['n'], 1, 4) = sig then
+ begin
+ Result := Item;
break;
end;
end;
@@ -1802,8 +1947,10 @@ function GetChild(obj: ISuperObject; name: string): ISuperObject;
child: ISuperObject;
begin
Result := nil;
- for child in obj['c'] do begin
- if child.S['n'] = name then begin
+ for child in obj['c'] do
+ begin
+ if child.s['n'] = name then
+ begin
Result := child;
exit;
end;
@@ -1814,33 +1961,36 @@ procedure MergeChildren(srcObj, dstObj: ISuperObject);
var
srcChild, dstChild: ISuperObject;
begin
- for srcChild in srcObj['c'] do begin
- dstChild := GetChild(dstObj, srcChild.S['n']);
+ for srcChild in srcObj['c'] do
+ begin
+ dstChild := GetChild(dstObj, srcChild.s['n']);
if not Assigned(dstChild) then
dstObj.A['c'].Add(srcChild.Clone)
- else begin
+ else
+ begin
// merge force value
- if srcChild.I['f'] = 1 then
- dstChild.I['f'] := 1;
+ if srcChild.i['f'] = 1 then
+ dstChild.i['f'] := 1;
// merge treat as single
- if srcChild.I['s'] = 1 then
- dstChild.I['s'] := 1;
+ if srcChild.i['s'] = 1 then
+ dstChild.i['s'] := 1;
// merge preserve deletions
- if srcChild.I['d'] = 1 then
- dstChild.I['d'] := 1;
+ if srcChild.i['d'] = 1 then
+ dstChild.i['d'] := 1;
// merge override deletions
- if srcChild.I['o'] = 1 then
- dstChild.I['o'] := 1;
+ if srcChild.i['o'] = 1 then
+ dstChild.i['o'] := 1;
// merge process
- if srcChild.I['p'] = 1 then
- dstChild.I['p'] := 1;
+ if srcChild.i['p'] = 1 then
+ dstChild.i['p'] := 1;
// merge links
- if srcChild.S['lt'] <> '' then
- dstChild.S['lt'] := srcChild.S['lt'];
- if srcChild.S['lf'] <> '' then
- dstChild.S['lf'] := srcChild.S['lf'];
+ if srcChild.s['lt'] <> '' then
+ dstChild.s['lt'] := srcChild.s['lt'];
+ if srcChild.s['lf'] <> '' then
+ dstChild.s['lf'] := srcChild.s['lf'];
// recurse into children if present
- if Assigned(srcChild.A['c']) then begin
+ if Assigned(srcChild.A['c']) then
+ begin
if Assigned(dstChild.A['c']) then
MergeChildren(srcChild, dstChild)
else
@@ -1853,7 +2003,7 @@ procedure MergeChildren(srcObj, dstObj: ISuperObject);
function CreateCombinedSetting(var sl: TStringList; name: string;
bVirtual: boolean = false): TSmashSetting;
var
- i, index: Integer;
+ i, index: integer;
newSetting, aSetting: TSmashSetting;
recordObj, existingRecordObj: ISuperObject;
begin
@@ -1861,7 +2011,8 @@ function CreateCombinedSetting(var sl: TStringList; name: string;
newSetting.tree := SO;
newSetting.tree.O['records'] := SA([]);
- for i := 0 to Pred(sl.Count) do begin
+ for i := 0 to Pred(sl.Count) do
+ begin
aSetting := TSmashSetting(sl.Objects[i]);
recordObj := GetRecordObject(aSetting.tree, sl[i]);
existingRecordObj := GetRecordObject(newSetting.tree, sl[i]);
@@ -1869,7 +2020,7 @@ function CreateCombinedSetting(var sl: TStringList; name: string;
// merge the record objects
if Assigned(existingRecordObj) then
MergeChildren(recordObj, existingRecordObj)
- // else just add it to the tree
+ // else just add it to the tree
else
newSetting.tree.A['records'].Add(recordObj.Clone);
end;
@@ -1881,34 +2032,40 @@ function CreateCombinedSetting(var sl: TStringList; name: string;
newSetting.description := 'Combined setting:'#13#10 + name;
index := Pos('.', name);
if (index > 0) and (index < 11) then
- newSetting.name := Format('%sCombined-%s', [Copy(name, 1, index), newSetting.hash])
+ newSetting.name := Format('%sCombined-%s',
+ [Copy(name, 1, index), newSetting.hash])
else
- newSetting.name := 'Combined-'+newSetting.hash;
+ newSetting.name := 'Combined-' + newSetting.hash;
// add new setting to SmashSettings list
aSetting := TSettingHelpers.SettingByName(newSetting.name);
- if not Assigned(aSetting) then begin
- SmashSettings.Add(newSetting);
+ if not Assigned(aSetting) then
+ begin
+ smashSettings.Add(newSetting);
Result := newSetting;
end
- else begin
+ else
+ begin
newSetting.Free;
Result := aSetting;
end;
end;
-function CombineSettingTrees(var lst: TList; var slSettings: TStringList): boolean;
+function CombineSettingTrees(var lst: TList;
+ var slSettings: TStringList): boolean;
var
setting: TSmashSetting;
sl: TStringList;
- i, j: Integer;
+ i, j: integer;
begin
sl := TStringList.Create;
Result := false;
- for i := 0 to Pred(lst.Count) do begin
+ for i := 0 to Pred(lst.Count) do
+ begin
setting := TSmashSetting(lst[i]);
sl.CommaText := setting.records;
- for j := 0 to Pred(sl.Count) do begin
+ for j := 0 to Pred(sl.Count) do
+ begin
if slSettings.IndexOf(sl[j]) > -1 then
Result := true;
slSettings.AddObject(sl[j], TObject(setting));
@@ -1919,15 +2076,14 @@ function CombineSettingTrees(var lst: TList; var slSettings: TStringList): boole
sl.Free;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Tag Helper Functions
- ClearTags
- GetMissingTags
- ExtractTags
- GetTags
}
-{******************************************************************************}
+{ ****************************************************************************** }
function ClearTags(sDescription: String): String;
var
@@ -1936,10 +2092,11 @@ function ClearTags(sDescription: String): String;
begin
// find tags
regex := TRegex.Create('{{([^}]*)}}');
- match := regex.Match(sDescription);
+ match := regex.match(sDescription);
// delete tags
- while match.Success do begin
+ while match.Success do
+ begin
sDescription := StringReplace(sDescription, match.Value, '', []);
match := match.NextMatch;
end;
@@ -1950,11 +2107,12 @@ function ClearTags(sDescription: String): String;
procedure GetMissingTags(var slPresent, slMissing: TStringList);
var
- i: Integer;
+ i: integer;
aSetting: TSmashSetting;
begin
- for i := 0 to Pred(SmashSettings.Count) do begin
- aSetting := TSmashSetting(SmashSettings[i]);
+ for i := 0 to Pred(smashSettings.Count) do
+ begin
+ aSetting := TSmashSetting(smashSettings[i]);
if slPresent.IndexOf(aSetting.name) = -1 then
slMissing.Add(aSetting.name);
end;
@@ -1963,7 +2121,7 @@ procedure GetMissingTags(var slPresent, slMissing: TStringList);
procedure ExtractTags(var match: TMatch; var sl: TStringList;
var sTagGroup: String);
var
- i: Integer;
+ i: integer;
begin
sTagGroup := '';
@@ -1978,7 +2136,8 @@ procedure ExtractTags(var match: TMatch; var sl: TStringList;
// if tags are presented under a group, append the group name
// and a . to the beginning of each setting name in the tag
- if match.Groups.Item[1].Value <> '' then begin
+ if match.Groups.Item[1].Value <> '' then
+ begin
sTagGroup := TitleCase(match.Groups.Item[1].Value);
SetLength(sTagGroup, Length(sTagGroup) - 1);
Logger.Write('PLUGIN', 'Tags', 'Parsing as ' + sTagGroup + ' tags');
@@ -1989,30 +2148,32 @@ procedure ExtractTags(var match: TMatch; var sl: TStringList;
procedure ParseTags(description: string; var sl: TStringList);
var
- regex: TRegEx;
+ regex: TRegex;
match: TMatch;
sTagGroup: String;
begin
// get setting tags from description
- regex := TRegEx.Create('{{([a-zA-Z]{1,10}:){0,1}([^}]*)}}');
- match := regex.Match(description);
+ regex := TRegex.Create('{{([a-zA-Z]{1,10}:){0,1}([^}]*)}}');
+ match := regex.match(description);
// if match found, put the tags into the stringlist
- if match.success then
+ if match.Success then
ExtractTags(match, sl, sTagGroup);
end;
initialization
+
begin
PatchesList := TList.Create;
- SmashSettings := TList.Create;
+ smashSettings := TList.Create;
SavedPluginPaths := TStringList.Create;
end;
finalization
+
begin
FreeList(PatchesList);
- FreeList(SmashSettings);
+ FreeList(smashSettings);
SavedPluginPaths.Free;
end;
diff --git a/frontend/msEditForm.dfm b/frontend/msEditForm.dfm
old mode 100644
new mode 100755
index df71cc9..0854842
--- a/frontend/msEditForm.dfm
+++ b/frontend/msEditForm.dfm
@@ -28,6 +28,10 @@ object EditForm: TEditForm
TabWidth = 60
object EditTabSheet: TTabSheet
Caption = 'Edit'
+ ExplicitLeft = 0
+ ExplicitTop = 0
+ ExplicitWidth = 0
+ ExplicitHeight = 0
object lblName: TLabel
Left = 12
Top = 13
diff --git a/frontend/msEditForm.pas b/frontend/msEditForm.pas
old mode 100644
new mode 100755
index ba77d20..9ba3afb
--- a/frontend/msEditForm.pas
+++ b/frontend/msEditForm.pas
@@ -64,7 +64,8 @@ function TEditForm.NameValid: boolean;
exit;
// return false if patch with specified name already exists
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
aPatch := TPatch(PatchesList[i]);
if (aPatch.name = edName.Text) and (aPatch <> patch) then
exit;
@@ -100,8 +101,9 @@ function TEditForm.ESPFilenameValid: boolean;
plugin := PluginByFilename(edFilename.Text);
loadOrder := PluginLoadOrder(edFilename.Text);
highLoadOrder := MaxInt;
- if patch.plugins.Count > 0 then begin
- sFilename := patch.plugins[patch.plugins.Count -1];
+ if patch.plugins.Count > 0 then
+ begin
+ sFilename := patch.plugins[patch.plugins.Count - 1];
highLoadOrder := PluginLoadOrder(sFilename);
end;
@@ -110,9 +112,10 @@ function TEditForm.ESPFilenameValid: boolean;
exit;
// return false if patch exists
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
aPatch := TPatch(PatchesList[i]);
- if (aPatch.filename = edFileName.Text) and (aPatch <> patch) then
+ if (aPatch.filename = edFilename.Text) and (aPatch <> patch) then
exit;
end;
@@ -126,19 +129,19 @@ procedure TEditForm.edFilenameChange(Sender: TObject);
begin
// if invalid disable btnOk, show hint, and make font color red
valid := ESPFilenameValid;
- btnOk.Enabled := valid and NameValid;
+ btnOK.Enabled := valid and NameValid;
edFilename.ShowHint := valid;
if valid then
edFilename.Font.Color := clWindowText
else
- edFilename.Font.Color := $0000ff;
+ edFilename.Font.Color := $0000FF;
end;
procedure TEditForm.edFilenameEnter(Sender: TObject);
begin
// change selection to not include the .esp
- if (edFilename.SelLength = Length(edFilename.Text))
- and StrEndsWith(edFilename.Text, '.esp') then
+ if (edFilename.SelLength = Length(edFilename.Text)) and
+ StrEndsWith(edFilename.Text, '.esp') then
edFilename.SelLength := edFilename.SelLength - 4;
end;
@@ -147,14 +150,14 @@ procedure TEditForm.edNameChange(Sender: TObject);
valid, exists: boolean;
begin
valid := NameValid;
- exists := DirectoryExists(settings.patchDirectory + edName.Text)
- and (edName.Text <> patch.name);
+ exists := DirectoryExists(settings.patchDirectory + edName.Text) and
+ (edName.Text <> patch.name);
// if invalid show hint and make font color red
- btnOk.Enabled := valid and ESPFilenameValid;
+ btnOK.Enabled := valid and ESPFilenameValid;
edName.ShowHint := (not valid) or exists;
if (not valid) or exists then
- edName.Font.Color := $0000ff
+ edName.Font.Color := $0000FF
else
edName.Font.Color := clWindowText;
end;
@@ -163,9 +166,10 @@ procedure TEditForm.edNameChange(Sender: TObject);
procedure TEditForm.edKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
- if (HiWord(GetKeyState(vk_Return)) <> 0) and btnOk.Enabled then begin
- btnOkClick(nil);
- ModalResult := mrOk;
+ if (HiWord(GetKeyState(vk_Return)) <> 0) and btnOK.Enabled then
+ begin
+ btnOKClick(nil);
+ ModalResult := mrOK;
end;
end;
diff --git a/frontend/msLoader.pas b/frontend/msLoader.pas
old mode 100644
new mode 100755
index e9de76c..7831c92
--- a/frontend/msLoader.pas
+++ b/frontend/msLoader.pas
@@ -9,26 +9,28 @@ interface
// mp units
msConfiguration;
- { Initialization Methods }
- function InitBase: boolean;
- function GamePathValid(path: string; id: integer): boolean;
- procedure SetGame(id: integer);
- function GetGameID(name: string): integer;
- function GetLanguageFileSuffix: String;
- function GetGamePath(mode: TGameMode): string;
- procedure LoadDefinitions;
- procedure LoadBSAs;
- { Load order functions }
- procedure RemoveCommentsAndEmpty(var sl: TStringList);
- procedure RemoveMissingFiles(var sl: TStringList);
- procedure RemoveSmashedPatches(var sl: TStringList);
- procedure FixLoadOrder(var sl: TStringList; const filename: String; var index: Integer);
- procedure AddBaseMasters(var sl: TStringList);
- procedure AddMissingFiles(var sl: TStringList);
- function PluginListCompare(List: TStringList; Index1, Index2: Integer): Integer;
- procedure LoadPluginsList(const sLoadPath: String; var sl: TStringList; noDelete: Boolean = False);
- procedure LoadLoadOrder(const sLoadPath: String; var slLoadOrder: TStringList);
- procedure PrepareLoadOrder(var slLoadOrder, slPlugins: TStringList);
+{ Initialization Methods }
+function InitBase: boolean;
+function GamePathValid(path: string; id: integer): boolean;
+procedure SetGame(id: integer);
+function GetGameID(name: string): integer;
+function GetLanguageFileSuffix: String;
+function GetGamePath(mode: TGameMode): string;
+procedure LoadDefinitions;
+procedure LoadBSAs;
+{ Load order functions }
+procedure RemoveCommentsAndEmpty(var sl: TStringList);
+procedure RemoveMissingFiles(var sl: TStringList);
+procedure RemoveSmashedPatches(var sl: TStringList);
+procedure FixLoadOrder(var sl: TStringList; const filename: String;
+ var index: integer);
+procedure AddBaseMasters(var sl: TStringList);
+procedure AddMissingFiles(var sl: TStringList);
+function PluginListCompare(List: TStringList; Index1, Index2: integer): integer;
+procedure LoadPluginsList(const sLoadPath: String; var sl: TStringList;
+ noDelete: boolean = False);
+procedure LoadLoadOrder(const sLoadPath: String; var slLoadOrder: TStringList);
+procedure PrepareLoadOrder(var slLoadOrder, slPlugins: TStringList);
var
slPlugins, slLanguageMap: TStringList;
@@ -48,8 +50,7 @@ implementation
wbDefinitionsFNV, wbDefinitionsFO3, wbDefinitionsTES3, wbDefinitionsTES4,
wbDefinitionsTES5, wbDefinitionsFO4;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Initialization Methods
Methods that are used for initialization.
@@ -62,39 +63,42 @@ implementation
- LoadDefinitions
- InitPapyrus
}
-{******************************************************************************}
+{ ****************************************************************************** }
function InitBase: boolean;
var
slLoadOrder: TStringList;
psForm: TPluginSelectionForm;
begin
- Result := false;
+ Result := False;
// INITIALIZE VARIABLES
LogPath := PathList.Values['ProgramPath'] + 'logs\';
PathList.Values['TempPath'] := PathList.Values['ProgramPath'] + 'temp\';
- PathList.Values['ProfilePath'] := PathList.Values['ProgramPath'] +
- 'profiles\'+ CurrentProfile.name + '\';
+ PathList.Values['ProfilePath'] := PathList.Values['ProgramPath'] + 'profiles\'
+ + CurrentProfile.name + '\';
ForceDirectories(PathList.Values['TempPath']);
ForceDirectories(LogPath);
ForceDirectories(PathList.Values['ProfilePath']);
// SET GAME VARS
SetGame(CurrentProfile.gameMode);
- wbVWDInTemporary := wbGameMode in [gmSSE, gmTES5, gmFO3, gmFNV];
+ wbVWDInTemporary := wbGameMode in [gmSSE, gmTES5VR, gmTES5, gmEnderal,
+ gmFO3, gmFNV];
wbVWDAsQuestChildren := wbGameMode = gmFO4;
wbArchiveExtension := IfThen(wbGameMode = gmFO4, '.ba2', '.bsa');
- wbLoadBSAs := wbGameMode in [gmFO4, gmSSE, gmTES5, gmTES4];
- Logger.Write('GENERAL', 'Game', 'Using '+wbGameName);
- Logger.Write('GENERAL', 'Path', 'Using '+wbDataPath);
- Logger.Write('GENERAL', 'GameIni', 'Using '+wbTheGameIniFileName);
+ wbLoadBSAs := wbGameMode in [gmFO4, gmSSE, gmTES5VR, gmTES5,
+ gmEnderal, gmTES4];
+ Logger.Write('GENERAL', 'Game', 'Using ' + wbGameName);
+ Logger.Write('GENERAL', 'Path', 'Using ' + wbDataPath);
+ Logger.Write('GENERAL', 'GameIni', 'Using ' + wbTheGameIniFileName);
// INITIALIZE SETTINGS FOR GAME
LoadSettings;
LoadLanguage;
// INITIALIZE XEDIT
+ wbBuildRefs := settings.buildRefs;
wbDisplayLoadOrderFormID := True;
wbSortSubRecords := True;
wbDisplayShorterNames := True;
@@ -106,9 +110,15 @@ function InitBase: boolean;
wbEditAllowed := True;
wbContainerHandler := wbCreateContainerHandler;
wbContainerHandler._AddRef;
+ wbToolSource := tsPlugins;
+ wbSourceName := 'Plugins';
+ wbToolMode := tmEdit;
+ wbToolName := 'Edit';
+ wbAlignArrayElements := True;
// INITIALIZE DEFINITIONS
- Logger.Write('GENERAL', 'Definitions', 'Using '+wbAppName+'Edit Definitions');
+ Logger.Write('GENERAL', 'Definitions', 'Using ' + wbAppName +
+ 'Edit Definitions');
LoadDefinitions;
// LOAD SMASH SETTINGS
@@ -142,27 +152,27 @@ function InitBase: boolean;
FreeList(HeaderList);
// ALL DONE
- Result := true;
+ Result := True;
end;
-
+
{ Check if game paths are valid }
function GamePathValid(path: string; id: integer): boolean;
begin
- Result := FileExists(path + GameArray[id].exeName)
- and DirectoryExists(path + 'Data');
+ Result := FileExists(path + GameArray[id].exeName) and
+ DirectoryExists(path + 'Data');
end;
{ Sets the game mode in the TES5Edit API }
procedure SetGame(id: integer);
-var
+var
sMyDocumentsPath: string;
sIniPath: string;
begin
- ProgramStatus.GameMode := GameArray[id];
- wbGameName := ProgramStatus.GameMode.gameName;
- wbGameName2 := ProgramStatus.GameMode.regName;
- wbGameMode := ProgramStatus.GameMode.gameMode;
- wbAppName := ProgramStatus.GameMode.appName;
+ ProgramStatus.gameMode := GameArray[id];
+ wbGameName := ProgramStatus.gameMode.gameName;
+ wbGameName2 := ProgramStatus.gameMode.regName;
+ wbGameMode := ProgramStatus.gameMode.gameMode;
+ wbAppName := ProgramStatus.gameMode.appName;
wbDataPath := CurrentProfile.gamePath + 'Data\';
// set general paths
@@ -171,7 +181,8 @@ procedure SetGame(id: integer);
// find game ini inside the user's documents folder.
sMyDocumentsPath := GetCSIDLShellFolder(CSIDL_PERSONAL);
- if sMyDocumentsPath <> '' then begin
+ if sMyDocumentsPath <> '' then
+ begin
sIniPath := sMyDocumentsPath + 'My Games\' + wbGameName2 + '\';
if wbGameMode in [gmFO3, gmFNV] then
wbTheGameIniFileName := sIniPath + 'Fallout.ini'
@@ -187,7 +198,8 @@ function GetGameID(name: string): integer;
begin
Result := 0;
for i := Low(GameArray) to High(GameArray) do
- if GameArray[i].longName = name then begin
+ if GameArray[i].longName = name then
+ begin
Result := i;
exit;
end;
@@ -196,22 +208,22 @@ function GetGameID(name: string): integer;
{ Gets language file suffix }
function GetLanguageFileSuffix: String;
begin
- Result := settings.language;
- if (wbGameMode = gmFO4) and (slLanguageMap.IndexOfName(Result) > -1) then
- Result := slLanguageMap.Values[Result];
+ Result := settings.language;
+ if (wbGameMode = gmFO4) and (slLanguageMap.IndexOfName(Result) > -1) then
+ Result := slLanguageMap.Values[Result];
end;
{ Gets the path of a game from registry key or app path }
function GetGamePath(mode: TGameMode): string;
const
- sBethRegKey = '\SOFTWARE\Bethesda Softworks\';
- sBethRegKey64 = '\SOFTWARE\Wow6432Node\Bethesda Softworks\';
- sSteamRegKey = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+
+ sBethRegKey = '\SOFTWARE\Bethesda Softworks\';
+ sBethRegKey64 = '\SOFTWARE\Wow6432Node\Bethesda Softworks\';
+ sSteamRegKey = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' +
'Steam App ';
- sSteamRegKey64 = '\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\'+
+ sSteamRegKey64 = '\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\' +
'Uninstall\Steam App ';
var
- i: Integer;
+ i: integer;
regName: string;
keys, appIDs: TStringList;
begin
@@ -226,7 +238,8 @@ function GetGamePath(mode: TGameMode): string;
// add keys to check
keys.Add(sBethRegKey + regName + '\Installed Path');
keys.Add(sBethRegKey64 + regName + '\Installed Path');
- for i := 0 to Pred(appIDs.Count) do begin
+ for i := 0 to Pred(appIDs.Count) do
+ begin
keys.Add(sSteamRegKey + appIDs[i] + '\InstallLocation');
keys.Add(sSteamRegKey64 + appIDs[i] + '\InstallLocation');
end;
@@ -247,12 +260,16 @@ function GetGamePath(mode: TGameMode): string;
procedure LoadDefinitions;
begin
case wbGameMode of
- gmTES5: DefineTES5;
- gmFNV: DefineFNV;
- gmTES4: DefineTES4;
- gmFO3: DefineFO3;
- gmFO4: DefineFO4;
- gmSSE: DefineTES5;
+ gmTES5, gmTES5VR, gmSSE, gmEnderal:
+ DefineTES5;
+ gmFNV:
+ DefineFNV;
+ gmTES4:
+ DefineTES4;
+ gmFO3:
+ DefineFO3;
+ gmFO4:
+ DefineFO4;
end;
end;
@@ -260,57 +277,58 @@ procedure LoadBSAFile(sFileName: String);
var
sFileExt: String;
begin
- sFileExt := ExtractFileExt(sFileName);
- Logger.Write('LOAD', 'Resources', 'Loading resources from ' + sFileName);
- if sFileExt = '.bsa' then
- wbContainerHandler.AddBSA(wbDataPath + sFileName)
- else if sFileExt = '.ba2' then
- wbContainerHandler.AddBA2(wbDataPath + sFileName);
+ sFileExt := ExtractFileExt(sFileName);
+ Logger.Write('LOAD', 'Resources', 'Loading resources from ' + sFileName);
+ if sFileExt = '.bsa' then
+ wbContainerHandler.AddBSA(wbDataPath + sFileName)
+ else if sFileExt = '.ba2' then
+ wbContainerHandler.AddBA2(wbDataPath + sFileName);
end;
{ Loads all of the BSAs specified in the game ini and by plugins }
procedure LoadBSAs;
-var
+var
slBSAFileNames: TStringList;
slErrors: TStringList;
- i: Integer;
- modIndex: Integer;
+ i: integer;
+ modIndex: integer;
plugin: TPlugin;
- bIsTES5: Boolean;
+ bIsTES5: boolean;
begin
- slBSAFileNames := TStringList.Create;
+ slBSAFileNames := TStringList.Create;
try
-
slErrors:= TStringList.Create;
+
+ slErrors := TStringList.Create;
try
- FindBSAs(wbTheGameIniFileName, wbDataPath, slBSAFileNames, slErrors);
- for i := 0 to slBSAFileNames.Count - 1 do
- LoadBSAFile(slBSAFileNames[i]);
- for i := 0 to slErrors.Count - 1 do
- Logger.Write('ERROR', 'Load', slErrors[i] + ' was not found');
-
- for modIndex := 0 to PluginsList.Count - 1 do begin
- slBSAFileNames.Clear;
- slErrors.Clear;
- plugin := TPlugin(PluginsList[modIndex]);
- bIsTES5 := wbGameMode in [gmTES5, gmSSE];
-
- HasBSAs(ChangeFileExt(plugin.filename, ''), wbDataPath, bIsTES5,
- bIsTES5, slBSAFileNames, slErrors);
- for i := 0 to slBSAFileNames.Count - 1 do
- LoadBSAFile(slBSAFileNames[i]);
- for i := 0 to slErrors.Count - 1 do
- Logger.Write('ERROR', 'Load', slErrors[i] + ' was not found');
- end;
- finally
- slErrors.Free;
+ FindBSAs(wbTheGameIniFileName, wbDataPath, slBSAFileNames, slErrors);
+ for i := 0 to slBSAFileNames.Count - 1 do
+ LoadBSAFile(slBSAFileNames[i]);
+ for i := 0 to slErrors.Count - 1 do
+ Logger.Write('ERROR', 'Load', slErrors[i] + ' was not found');
+
+ for modIndex := 0 to PluginsList.Count - 1 do
+ begin
+ slBSAFileNames.Clear;
+ slErrors.Clear;
+ plugin := TPlugin(PluginsList[modIndex]);
+ bIsTES5 := wbGameMode in [gmTES5, gmEnderal, gmSSE, gmTES5VR];
+
+ HasBSAs(ChangeFileExt(plugin.filename, ''), wbDataPath, bIsTES5,
+ bIsTES5, slBSAFileNames, slErrors);
+ for i := 0 to slBSAFileNames.Count - 1 do
+ LoadBSAFile(slBSAFileNames[i]);
+ for i := 0 to slErrors.Count - 1 do
+ Logger.Write('ERROR', 'Load', slErrors[i] + ' was not found');
+ end;
+ finally
+ slErrors.Free;
end;
- finally
- slBSAFileNames.Free;
+ finally
+ slBSAFileNames.Free;
end;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Load order functions
Set of functions for building a working load order.
@@ -319,25 +337,26 @@ procedure LoadBSAs;
- RemoveMissingFiles
- AddMissingFiles
- PluginListCompare
-{******************************************************************************}
-
-{ Remove comments and empty lines from a stringlist }
-procedure RemoveCommentsAndEmpty(var sl: TStringList);
-var
- i, j, k: integer;
- s: string;
-begin
- for i := Pred(sl.Count) downto 0 do begin
- s := Trim(sl.Strings[i]);
- j := Pos('#', s);
- k := Pos('*', s);
- if j > 0 then
- System.Delete(s, j, High(Integer));
- if s = '' then
- sl.Delete(i);
- if k = 1 then
- sl[i] := Copy(s, 2, Length(s));
- end;
+ {****************************************************************************** }
+
+{ Remove comments and empty lines from a stringlist }
+procedure RemoveCommentsAndEmpty(var sl: TStringList);
+var
+ i, j, k: integer;
+ s: string;
+begin
+ for i := Pred(sl.Count) downto 0 do
+ begin
+ s := Trim(sl.Strings[i]);
+ j := Pos('#', s);
+ k := Pos('*', s);
+ if j > 0 then
+ System.Delete(s, j, High(integer));
+ if s = '' then
+ sl.Delete(i);
+ if k = 1 then
+ sl[i] := Copy(s, 2, Length(s));
+ end;
end;
{ Remove nonexistent files from stringlist }
@@ -347,7 +366,10 @@ procedure RemoveMissingFiles(var sl: TStringList);
begin
for i := Pred(sl.Count) downto 0 do
if not FileExists(wbDataPath + sl.Strings[i]) then
- sl.Delete(i);
+ if FileExists(wbDataPath + sl.Strings[i] + csDotGhost) then
+ sl.Strings[i] := sl.Strings[i] + csDotGhost
+ else
+ sl.Delete(i);
end;
{ Remove smashed patch plugins from stringlist }
@@ -359,78 +381,110 @@ procedure RemoveSmashedPatches(var sl: TStringList);
if Assigned(TPatchHelpers.PatchByFilename(PatchesList, sl[i])) then
sl.Delete(i);
end;
-
-{ Forces a plugin to load at a specific position }
-procedure FixLoadOrder(var sl: TStringList; const filename: String; var index: Integer);
-var
- oldIndex: Integer;
-begin
- oldIndex := sl.IndexOf(filename);
- if (oldIndex > -1) then begin
- if oldIndex <> index then begin
- sl.Delete(oldIndex);
- sl.Insert(index, filename);
- end;
- end
- else if FileExists(wbDataPath + filename) then
- sl.Insert(index, filename)
- else
- exit;
- Inc(index);
-end;
-
-procedure AddBaseMasters(var sl: TStringList);
-var
- index: Integer;
-begin
- index := 0;
- FixLoadOrder(sl, wbGameName + '.esm', index);
- if (wbGameMode = gmTES5) then
- FixLoadOrder(sl, 'Update.esm', index)
- else if (wbGameMode = gmSSE) then begin
- FixLoadOrder(sl, 'Update.esm', index);
- FixLoadOrder(sl, 'Dawnguard.esm', index);
- FixLoadOrder(sl, 'HearthFires.esm', index);
- FixLoadOrder(sl, 'Dragonborn.esm', index);
- end
- else if (wbGameMode = gmFO4) then begin
- FixLoadOrder(sl, 'DLCRobot.esm', index);
- FixLoadOrder(sl, 'DLCworkshop01.esm', index);
- FixLoadOrder(sl, 'DLCCoast.esm', index);
- FixLoadOrder(sl, 'DLCworkshop02.esm', index);
- FixLoadOrder(sl, 'DLCworkshop03.esm', index);
- FixLoadOrder(sl, 'DLCNukaWorld.esm', index);
- FixLoadOrder(sl, 'DLCUltraHighResolution.esm', index);
- end;
+
+{ Forces a plugin to load at a specific position }
+procedure FixLoadOrder(var sl: TStringList; const filename: String;
+ var index: integer);
+var
+ oldIndex: integer;
+begin
+ oldIndex := sl.IndexOf(filename);
+ if (oldIndex > -1) then
+ begin
+ if oldIndex <> index then
+ begin
+ sl.Delete(oldIndex);
+ sl.Insert(index, filename);
+ end;
+ end
+ else if FileExists(wbDataPath + filename) then
+ sl.Insert(index, filename)
+ else
+ exit;
+ Inc(index);
+end;
+
+procedure AddBaseMasters(var sl: TStringList);
+var
+ index: integer;
+begin
+ index := 0;
+ FixLoadOrder(sl, wbGameName + '.esm', index);
+ if (wbGameMode = gmTES5) or (wbGameMode = gmEnderal) then
+ FixLoadOrder(sl, 'Update.esm', index)
+ else if (wbGameMode = gmSSE) or (wbGameMode = gmTES5VR) then
+ begin
+ FixLoadOrder(sl, 'Update.esm', index);
+ FixLoadOrder(sl, 'Dawnguard.esm', index);
+ FixLoadOrder(sl, 'HearthFires.esm', index);
+ FixLoadOrder(sl, 'Dragonborn.esm', index);
+ if (wbGameMode = gmTES5VR) then
+ FixLoadOrder(sl, 'SkyrimVR.esm', index);
+
+ end
+ else if (wbGameMode = gmFO4) then
+ begin
+ FixLoadOrder(sl, 'DLCRobot.esm', index);
+ FixLoadOrder(sl, 'DLCworkshop01.esm', index);
+ FixLoadOrder(sl, 'DLCCoast.esm', index);
+ FixLoadOrder(sl, 'DLCworkshop02.esm', index);
+ FixLoadOrder(sl, 'DLCworkshop03.esm', index);
+ FixLoadOrder(sl, 'DLCNukaWorld.esm', index);
+ FixLoadOrder(sl, 'DLCUltraHighResolution.esm', index);
+ end;
+end;
+
+// Put Creation Club plugins in load order
+procedure AddCCPlugins(var slLoadOrder: TStringList);
+var
+ sPath: string;
+ slCC: TStringList;
+ i: integer;
+ index: integer;
+begin
+ slCC := TStringList.Create;
+ sPath := CurrentProfile.gamePath + wbGameName + '.ccc';
+ if (wbGameMode <> gmSSE) and (wbGameMode <> gmFO4) then
+ exit;
+ if FileExists(sPath) then
+ begin
+ slCC.LoadFromFile(sPath);
+ index := 0;
+ for i := 0 to Pred(slCC.Count) do
+ FixLoadOrder(slLoadOrder, slCC[i], index);
+ end;
end;
function GetPluginDate(const aFileName: string): Cardinal;
const
- DateOmitYears = 60;
- DatePrecision = 100000;
-var
- F: TSearchRec;
-begin
- // Try to fit a meaningful modified date of a file into 32 bits integer value
- // For relative load order sorting only
- // Oblivion GOG version has dates from 1969 year and FileAge() doesn't support them
- if FindFirst(aFileName, faAnyFile, F) = 0 then begin
- Result := Round((F.TimeStamp - 364 * DateOmitYears) * DatePrecision);
- FindClose(F);
- end else
+ DateOmitYears = 60;
+ DatePrecision = 100000;
+var
+ F: TSearchRec;
+begin
+ // Try to fit a meaningful modified date of a file into 32 bits integer value
+ // For relative load order sorting only
+ // Oblivion GOG version has dates from 1969 year and FileAge() doesn't support them
+ if FindFirst(aFileName, faAnyFile, F) = 0 then
+ begin
+ Result := Round((F.TimeStamp - 364 * DateOmitYears) * DatePrecision);
+ FindClose(F);
+ end
+ else
Result := 0;
end;
{ Compare function for sorting load order by date modified/esms }
-function PluginListCompare(List: TStringList; Index1, Index2: Integer): Integer;
+function PluginListCompare(List: TStringList; Index1, Index2: integer): integer;
var
- IsESM1, IsESM2: Boolean;
- FileSK1, FileSK2: Integer;
+ IsESM1, IsESM2: boolean;
+ FileSK1, FileSK2: integer;
begin
- IsESM1 := IsFileESM(List[Index1]);
- IsESM2 := IsFileESM(List[Index2]);
+ IsESM1 := List[Index1].EndsWith(csDotESM);
+ IsESM2 := List[Index2].EndsWith(csDotESM);
- if IsESM1 = IsESM2 then begin
+ if IsESM1 = IsESM2 then
+ begin
FileSK1 := Cardinal(List.Objects[Index1]);
FileSK2 := Cardinal(List.Objects[Index2]);
@@ -441,7 +495,8 @@ function PluginListCompare(List: TStringList; Index1, Index2: Integer): Integer;
else
Result := 0;
- end else if IsESM1 then
+ end
+ else if IsESM1 then
Result := -1
else
Result := 1;
@@ -458,18 +513,20 @@ procedure AddMissingFiles(var sl: TStringList);
slNew := TStringList.Create;
try
// search for missing plugins and masters
- if FindFirst(wbDataPath + '*.*', faAnyFile, F) = 0 then try
- repeat
- if not (IsFileESM(F.Name) or IsFileESP(F.Name) or IsFileESL(F.Name)) then
- continue;
- if sl.IndexOf(F.Name) = -1 then begin
- fileSortKey := GetPluginDate(wbDataPath + F.Name);
- slNew.AddObject(F.Name, TObject(fileSortKey));
- end;
- until FindNext(F) <> 0;
- finally
- FindClose(F);
- end;
+ if FindFirst(wbDataPath + '*.*', faAnyFile, F) = 0 then
+ try
+ repeat
+ if not(wbIsPlugin(F.name)) then
+ continue;
+ if sl.IndexOf(F.name) = -1 then
+ begin
+ fileSortKey := GetPluginDate(wbDataPath + F.name);
+ slNew.AddObject(F.name, TObject(fileSortKey));
+ end;
+ until FindNext(F) <> 0;
+ finally
+ FindClose(F);
+ end;
// sort the list
slNew.CustomSort(PluginListCompare);
@@ -481,16 +538,19 @@ procedure AddMissingFiles(var sl: TStringList);
else
// find position of last master
for j := Pred(sl.Count) downto 0 do
- if IsFileESM(sl[j]) then
+ if sl[j].EndsWith(csDotESM) then
Break;
// add esm masters after the last master, add esp plugins at the end
Inc(j);
- for i := 0 to Pred(slNew.Count) do begin
- if IsFileESM(slNew[i]) then begin
+ for i := 0 to Pred(slNew.Count) do
+ begin
+ if (slNew[i].EndsWith(csDotESM)) then
+ begin
sl.InsertObject(j, slNew[i], slNew.Objects[i]);
Inc(j);
- end else
+ end
+ else
sl.AddObject(slNew[i], slNew.Objects[i]);
end;
finally
@@ -498,129 +558,135 @@ procedure AddMissingFiles(var sl: TStringList);
end;
end;
-procedure ProcessAsterisks(var sl: TStringList; index: Integer; noDelete: Boolean);
-var
- s: String;
-begin
- s := sl[index];
- if s[1] <> '*' then begin
- if not noDelete then sl.Delete(index);
- end
- else
- sl[index] := Copy(s, 2, Length(s));
-end;
-
-procedure ProcessPluginsFormat(var sl: TStringList; noDelete: Boolean);
-var
- i: Integer;
-begin
- for i := Pred(sl.Count) downto 0 do
- ProcessAsterisks(sl, i, noDelete);
+procedure ProcessAsterisks(var sl: TStringList; index: integer;
+ noDelete: boolean);
+var
+ s: String;
+begin
+ s := sl[index];
+ if s[1] <> '*' then
+ begin
+ if not noDelete then
+ if not (settings.smashGhosts and s.EndsWith(csDotGhost)) then
+ sl.Delete(index);
+ end
+ else
+ sl[index] := Copy(s, 2, Length(s));
end;
-
-procedure LoadPluginsList(const sLoadPath: String; var sl: TStringList; noDelete: Boolean = False);
-var
- sPath: String;
-begin
- sPath := sLoadPath + 'plugins.txt';
- if FileExists(sPath) then begin
- sl.LoadFromFile(sPath);
- if (wbGameMode = gmSSE) or (wbGameMode = gmFO4) then
- ProcessPluginsFormat(sl, noDelete);
- end
- else
- AddMissingFiles(sl);
-
- // remove comments and missing files
- AddBaseMasters(sl);
- RemoveCommentsAndEmpty(sl);
- RemoveMissingFiles(sl);
- if noDelete then AddMissingFiles(sl);
- RemoveSmashedPatches(sl);
+
+procedure ProcessPluginsFormat(var sl: TStringList; noDelete: boolean);
+var
+ i: integer;
+begin
+ for i := Pred(sl.Count) downto 0 do
+ ProcessAsterisks(sl, i, noDelete);
+end;
+
+procedure LoadPluginsList(const sLoadPath: String; var sl: TStringList;
+ noDelete: boolean = False);
+var
+ sPath: String;
+begin
+
+ sPath := sLoadPath + 'plugins.txt';
+ if FileExists(sPath) then
+ begin
+ sl.LoadFromFile(sPath);
+ if (wbGameMode = gmSSE) or (wbGameMode = gmTES5VR) or (wbGameMode = gmFO4)
+ then
+ ProcessPluginsFormat(sl, noDelete);
+ end
+ else
+ AddMissingFiles(sl);
+
+ AddCCPlugins(sl);
+ AddBaseMasters(sl);
+ // remove comments and missing files
+ RemoveCommentsAndEmpty(sl);
+ RemoveMissingFiles(sl);
+ if noDelete then
+ AddMissingFiles(sl);
+ RemoveSmashedPatches(sl);
end;
-
-procedure LoadLoadOrder(const sLoadPath: String; var slLoadOrder: TStringList);
-var
- sPath: String;
-begin
- sPath := sLoadPath + 'loadorder.txt';
- if (wbGameMode <> gmSSE) and (wbGameMode <> gmFO4)
- and FileExists(sPath) then begin
- slLoadOrder.LoadFromFile(sPath);
-
- // remove comments and add/remove files
- AddBaseMasters(slLoadOrder);
- RemoveCommentsAndEmpty(slLoadOrder);
- RemoveMissingFiles(slLoadOrder);
- AddMissingFiles(slLoadOrder);
- RemoveSmashedPatches(slLoadOrder);
- end
- else
- LoadPluginsList(sLoadPath, slLoadOrder, True);
+
+procedure LoadLoadOrder(const sLoadPath: String; var slLoadOrder: TStringList);
+var
+ sPath: String;
+begin
+ sPath := sLoadPath + 'loadorder.txt';
+ if (wbGameMode <> gmSSE) and (wbGameMode <> gmTES5VR) and
+ (wbGameMode <> gmFO4) and FileExists(sPath) then
+ begin
+ slLoadOrder.LoadFromFile(sPath);
+
+ // remove comments and add/remove files
+ AddBaseMasters(slLoadOrder);
+ RemoveCommentsAndEmpty(slLoadOrder);
+ RemoveMissingFiles(slLoadOrder);
+ AddMissingFiles(slLoadOrder);
+ RemoveSmashedPatches(slLoadOrder);
+ end
+ else
+ LoadPluginsList(sLoadPath, slLoadOrder, True);
end;
procedure PrepareLoadOrder(var slLoadOrder, slPlugins: TStringList);
var
sLoadPath: String;
begin
- sLoadPath := GetCSIDLShellFolder(CSIDL_LOCAL_APPDATA) + wbGameName2 +'\';
- LoadPluginsList(sLoadPath, slPlugins);
+ sLoadPath := GetCSIDLShellFolder(CSIDL_LOCAL_APPDATA) + wbGameName2 + '\';
+ LoadPluginsList(sLoadPath, slPlugins);
LoadLoadOrder(sLoadPath, slLoadOrder);
-
end;
+
+end;
{ Log Initialization }
procedure InitLog;
begin
// INITIALIZE GROUP FILTERS
- GroupFilters.Add(TFilter.Create('GENERAL', true));
- GroupFilters.Add(TFilter.Create('LOAD', true));
- GroupFilters.Add(TFilter.Create('CLIENT', true));
- GroupFilters.Add(TFilter.Create('MERGE', true));
- GroupFilters.Add(TFilter.Create('PLUGIN', true));
- GroupFilters.Add(TFilter.Create('ERROR', true));
+ GroupFilters.Add(TFilter.Create('GENERAL', True));
+ GroupFilters.Add(TFilter.Create('LOAD', True));
+ GroupFilters.Add(TFilter.Create('CLIENT', True));
+ GroupFilters.Add(TFilter.Create('MERGE', True));
+ GroupFilters.Add(TFilter.Create('PLUGIN', True));
+ GroupFilters.Add(TFilter.Create('ERROR', True));
// INITIALIZE LABEL FILTERS
- LabelFilters.Add(TFilter.Create('GENERAL', 'Game', true));
- LabelFilters.Add(TFilter.Create('GENERAL', 'Status', true));
- LabelFilters.Add(TFilter.Create('GENERAL', 'Path', true));
- LabelFilters.Add(TFilter.Create('GENERAL', 'Definitions', true));
- LabelFilters.Add(TFilter.Create('GENERAL', 'Dictionary', true));
- LabelFilters.Add(TFilter.Create('GENERAL', 'Load Order', true));
- LabelFilters.Add(TFilter.Create('GENERAL', 'Log', true));
- LabelFilters.Add(TFilter.Create('LOAD', 'Order', false));
- LabelFilters.Add(TFilter.Create('LOAD', 'Plugins', false));
- LabelFilters.Add(TFilter.Create('LOAD', 'Background', true));
- LabelFilters.Add(TFilter.Create('CLIENT', 'Connect', true));
- LabelFilters.Add(TFilter.Create('CLIENT', 'Login', true));
- LabelFilters.Add(TFilter.Create('CLIENT', 'Response', true));
- LabelFilters.Add(TFilter.Create('CLIENT', 'Update', true));
- LabelFilters.Add(TFilter.Create('CLIENT', 'Report', true));
- LabelFilters.Add(TFilter.Create('PATCH', 'Status', false));
- LabelFilters.Add(TFilter.Create('PATCH', 'Create', true));
- LabelFilters.Add(TFilter.Create('PATCH', 'Edit', true));
- LabelFilters.Add(TFilter.Create('PATCH', 'Check', true));
- LabelFilters.Add(TFilter.Create('PATCH', 'Clean', true));
- LabelFilters.Add(TFilter.Create('PATCH', 'Delete', true));
- LabelFilters.Add(TFilter.Create('PATCH', 'Build', true));
- LabelFilters.Add(TFilter.Create('PATCH', 'Report', true));
- LabelFilters.Add(TFilter.Create('PLUGIN', 'Report', true));
- LabelFilters.Add(TFilter.Create('PLUGIN', 'Check', true));
+ LabelFilters.Add(TFilter.Create('GENERAL', 'Game', True));
+ LabelFilters.Add(TFilter.Create('GENERAL', 'Status', True));
+ LabelFilters.Add(TFilter.Create('GENERAL', 'Path', True));
+ LabelFilters.Add(TFilter.Create('GENERAL', 'Definitions', True));
+ LabelFilters.Add(TFilter.Create('GENERAL', 'Dictionary', True));
+ LabelFilters.Add(TFilter.Create('GENERAL', 'Load Order', True));
+ LabelFilters.Add(TFilter.Create('GENERAL', 'Log', True));
+ LabelFilters.Add(TFilter.Create('LOAD', 'Order', False));
+ LabelFilters.Add(TFilter.Create('LOAD', 'Plugins', False));
+ LabelFilters.Add(TFilter.Create('LOAD', 'Background', True));
+ LabelFilters.Add(TFilter.Create('CLIENT', 'Connect', True));
+ LabelFilters.Add(TFilter.Create('CLIENT', 'Login', True));
+ LabelFilters.Add(TFilter.Create('CLIENT', 'Response', True));
+ LabelFilters.Add(TFilter.Create('CLIENT', 'Update', True));
+ LabelFilters.Add(TFilter.Create('CLIENT', 'Report', True));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Status', False));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Create', True));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Edit', True));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Check', True));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Clean', True));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Delete', True));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Build', True));
+ LabelFilters.Add(TFilter.Create('PATCH', 'Report', True));
+ LabelFilters.Add(TFilter.Create('PLUGIN', 'Report', True));
+ LabelFilters.Add(TFilter.Create('PLUGIN', 'Check', True));
end;
initialization
- slLanguageMap := TStringList.Create;
- slLanguageMap.Text :=
- 'English=en'#13 +
- 'French=fr'#13 +
- 'German=de'#13 +
- 'Italian=it'#13 +
- 'Spanish=es'#13 +
- 'Russian=ru'#13 +
- 'Polish=pl'#13 +
- 'Japanese=ja'#13 +
- 'Portugese=pt'#13 +
- 'Chinese=zh';
+
+slLanguageMap := TStringList.Create;
+slLanguageMap.Text := 'English=en'#13 + 'French=fr'#13 + 'German=de'#13 +
+ 'Italian=it'#13 + 'Spanish=es'#13 + 'Russian=ru'#13 + 'Polish=pl'#13 +
+ 'Japanese=ja'#13 + 'Portugese=pt'#13 + 'Chinese=zh';
finalization
- slLanguageMap.Free;
+
+slLanguageMap.Free;
end.
diff --git a/frontend/msOptionsForm.dfm b/frontend/msOptionsForm.dfm
old mode 100644
new mode 100755
index 301c791..1aaed27
--- a/frontend/msOptionsForm.dfm
+++ b/frontend/msOptionsForm.dfm
@@ -2,7 +2,7 @@ object OptionsForm: TOptionsForm
Left = 0
Top = 0
Caption = 'Settings'
- ClientHeight = 447
+ ClientHeight = 446
ClientWidth = 584
Color = clBtnFace
Constraints.MaxHeight = 485
@@ -31,6 +31,10 @@ object OptionsForm: TOptionsForm
TabWidth = 80
object GeneralTabSheet: TTabSheet
Caption = 'General'
+ ExplicitLeft = 0
+ ExplicitTop = 0
+ ExplicitWidth = 0
+ ExplicitHeight = 0
object gbStyle: TGroupBox
Left = 6
Top = 69
@@ -107,6 +111,8 @@ object OptionsForm: TOptionsForm
ImageIndex = 1
ExplicitLeft = 0
ExplicitTop = 28
+ ExplicitWidth = 0
+ ExplicitHeight = 0
object gbGeneral: TGroupBox
Left = 3
Top = 3
@@ -259,6 +265,10 @@ object OptionsForm: TOptionsForm
object AdvancedTabSheet: TTabSheet
Caption = 'Advanced'
ImageIndex = 2
+ ExplicitLeft = 0
+ ExplicitTop = 0
+ ExplicitWidth = 0
+ ExplicitHeight = 0
object gbLogging: TGroupBox
Left = 6
Top = 72
@@ -514,7 +524,7 @@ object OptionsForm: TOptionsForm
Left = 16
Top = 400
Bitmap = {
- 494C0101010008007C0110001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010101000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000001000000001002000000000000010
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
diff --git a/frontend/msOptionsForm.pas b/frontend/msOptionsForm.pas
old mode 100644
new mode 100755
index bdea1bc..0e47dd8
--- a/frontend/msOptionsForm.pas
+++ b/frontend/msOptionsForm.pas
@@ -8,63 +8,63 @@ interface
// mte units
mteHelpers, RttiTranslation,
// mp units
- msConfiguration;
+ msConfiguration, System.ImageList;
type
TOptionsForm = class(TForm)
[FormPrefix('mpOpt')]
- SettingsPageControl: TPageControl;
- btnCancel: TButton;
- btnOK: TButton;
- IconList: TImageList;
- [FormSection('General Tab')]
- GeneralTabSheet: TTabSheet;
- gbLanguage: TGroupBox;
- lblLanguage: TLabel;
- gbStyle: TGroupBox;
- kbSimpleDictionary: TCheckBox;
- kbSimplePlugins: TCheckBox;
- [FormSection('DontTranslate')]
- cbLanguage: TComboBox;
- [FormSection('Patching Tab')]
- PatchingTabSheet: TTabSheet;
- gbGeneral: TGroupBox;
- edPatchDirectory: TEdit;
- lblDestinationDirectory: TLabel;
- btnBrowsePatchDirectory: TSpeedButton;
- gbDebug: TGroupBox;
- kbDebugPatchStatus: TCheckBox;
- kbDebugMasters: TCheckBox;
- kbDebugArrays: TCheckBox;
- kbDebugSkips: TCheckBox;
- kbDebugTraversal: TCheckBox;
- kbDebugTypes: TCheckBox;
- kbDebugChanges: TCheckBox;
- kbDebugSingle: TCheckBox;
- kbDebugLinks: TCheckBox;
- gbOther: TGroupBox;
- kbBuildRefs: TCheckBox;
- kbPreserveITPOs: TCheckBox;
- [FormSection('Advanced Tab')]
- AdvancedTabSheet: TTabSheet;
- lblCurrentProfile: TLabel;
- gbLogging: TGroupBox;
- lblClientColor: TLabel;
- cbClientColor: TColorBox;
- lblGeneralColor: TLabel;
- cbGeneralColor: TColorBox;
- lblLoadColor: TLabel;
- cbLoadColor: TColorBox;
- lblPluginColor: TLabel;
- cbPluginColor: TColorBox;
- lblErrorColor: TLabel;
- cbErrorColor: TColorBox;
- lblTemplate: TLabel;
- meTemplate: TMemo;
- lblSample: TLabel;
- [FormSection('DontTranslate')]
- lblCurrentProfileName: TLabel;
- lblSampleValue: TLabel;
+ SettingsPageControl: TPageControl;
+ btnCancel: TButton;
+ btnOK: TButton;
+ IconList: TImageList;
+ [FormSection('General Tab')]
+ GeneralTabSheet: TTabSheet;
+ gbLanguage: TGroupBox;
+ lblLanguage: TLabel;
+ gbStyle: TGroupBox;
+ kbSimpleDictionary: TCheckBox;
+ kbSimplePlugins: TCheckBox;
+ [FormSection('DontTranslate')]
+ cbLanguage: TComboBox;
+ [FormSection('Patching Tab')]
+ PatchingTabSheet: TTabSheet;
+ gbGeneral: TGroupBox;
+ edPatchDirectory: TEdit;
+ lblDestinationDirectory: TLabel;
+ btnBrowsePatchDirectory: TSpeedButton;
+ gbDebug: TGroupBox;
+ kbDebugPatchStatus: TCheckBox;
+ kbDebugMasters: TCheckBox;
+ kbDebugArrays: TCheckBox;
+ kbDebugSkips: TCheckBox;
+ kbDebugTraversal: TCheckBox;
+ kbDebugTypes: TCheckBox;
+ kbDebugChanges: TCheckBox;
+ kbDebugSingle: TCheckBox;
+ kbDebugLinks: TCheckBox;
+ gbOther: TGroupBox;
+ kbBuildRefs: TCheckBox;
+ kbPreserveITPOs: TCheckBox;
+ [FormSection('Advanced Tab')]
+ AdvancedTabSheet: TTabSheet;
+ lblCurrentProfile: TLabel;
+ gbLogging: TGroupBox;
+ lblClientColor: TLabel;
+ cbClientColor: TColorBox;
+ lblGeneralColor: TLabel;
+ cbGeneralColor: TColorBox;
+ lblLoadColor: TLabel;
+ cbLoadColor: TColorBox;
+ lblPluginColor: TLabel;
+ cbPluginColor: TColorBox;
+ lblErrorColor: TLabel;
+ cbErrorColor: TColorBox;
+ lblTemplate: TLabel;
+ meTemplate: TMemo;
+ lblSample: TLabel;
+ [FormSection('DontTranslate')]
+ lblCurrentProfileName: TLabel;
+ lblSampleValue: TLabel;
procedure FormCreate(Sender: TObject);
procedure LoadLanguageOptions;
@@ -95,7 +95,8 @@ procedure TOptionsForm.btnBrowsePatchDirectoryClick(Sender: TObject);
procedure TOptionsForm.btnOKClick(Sender: TObject);
begin
// check if we need to update patch status afterwards
- ProgramStatus.bUpdatePatchStatus := settings.patchDirectory <> edPatchDirectory.Text;
+ ProgramStatus.bUpdatePatchStatus := settings.patchDirectory <>
+ edPatchDirectory.Text;
// General > Language
settings.language := cbLanguage.Text;
@@ -119,10 +120,10 @@ procedure TOptionsForm.btnOKClick(Sender: TObject);
settings.preserveITPOs := kbPreserveITPOs.Checked;
// Advanced > Logging
- settings.clientMessageColor := cbClientColor.Selected ;
+ settings.clientMessageColor := cbClientColor.Selected;
settings.generalMessageColor := cbGeneralColor.Selected;
settings.loadMessageColor := cbLoadColor.Selected;
- //settings.patchMessageColor := cbPatchColor.Selected;
+ // settings.patchMessageColor := cbPatchColor.Selected;
settings.pluginMessageColor := cbPluginColor.Selected;
settings.errorMessageColor := cbErrorColor.Selected;
settings.logMessageTemplate := meTemplate.Lines.Text;
@@ -215,7 +216,7 @@ procedure TOptionsForm.FormCreate(Sender: TObject);
cbClientColor.Selected := TColor(settings.clientMessageColor);
cbGeneralColor.Selected := TColor(settings.generalMessageColor);
cbLoadColor.Selected := TColor(settings.loadMessageColor);
- //cbPatchColor.Selected := TColor(settings.patchMessageColor);
+ // cbPatchColor.Selected := TColor(settings.patchMessageColor);
cbPluginColor.Selected := TColor(settings.pluginMessageColor);
cbErrorColor.Selected := TColor(settings.errorMessageColor);
meTemplate.Lines.Text := settings.logMessageTemplate;
diff --git a/frontend/msPluginSelectionForm.dfm b/frontend/msPluginSelectionForm.dfm
old mode 100644
new mode 100755
diff --git a/frontend/msPluginSelectionForm.pas b/frontend/msPluginSelectionForm.pas
old mode 100644
new mode 100755
index ce3c98a..2607e30
--- a/frontend/msPluginSelectionForm.pas
+++ b/frontend/msPluginSelectionForm.pas
@@ -44,7 +44,8 @@ procedure TMiniPluginSelectionForm.btnOKClick(Sender: TObject);
i: Integer;
begin
selectionList.Clear;
- for i := 0 to Pred(CheckListBox.Items.Count) do begin
+ for i := 0 to Pred(CheckListBox.Items.Count) do
+ begin
if CheckListBox.Checked[i] then
selectionList.Add(CheckListBox.Items[i]);
end;
@@ -57,16 +58,18 @@ procedure TMiniPluginSelectionForm.CheckListBoxClick(Sender: TObject);
i: Integer;
begin
btnOK.Enabled := false;
- for i := 0 to Pred(CheckListBox.Items.Count) do begin
- if CheckListBox.Checked[i] then begin
+ for i := 0 to Pred(CheckListBox.Items.Count) do
+ begin
+ if CheckListBox.Checked[i] then
+ begin
btnOK.Enabled := true;
break;
end;
end;
end;
-procedure TMiniPluginSelectionForm.CheckListBoxKeyUp(Sender: TObject; var Key: Word;
- Shift: TShiftState);
+procedure TMiniPluginSelectionForm.CheckListBoxKeyUp(Sender: TObject;
+ var Key: Word; Shift: TShiftState);
begin
CheckListBoxClick(nil);
end;
@@ -76,7 +79,8 @@ procedure TMiniPluginSelectionForm.FormShow(Sender: TObject);
i, index: Integer;
begin
CheckListBox.Items.Text := pluginsList.Text;
- for i := 0 to Pred(selectionList.Count) do begin
+ for i := 0 to Pred(selectionList.Count) do
+ begin
index := pluginsList.IndexOf(selectionList[i]);
if index > -1 then
CheckListBox.Checked[index] := true;
diff --git a/frontend/msProfileForm.dfm b/frontend/msProfileForm.dfm
old mode 100644
new mode 100755
index 7aff553..06c29b3
--- a/frontend/msProfileForm.dfm
+++ b/frontend/msProfileForm.dfm
@@ -294,7 +294,7 @@ object ProfileForm: TProfileForm
Left = 24
Top = 416
Bitmap = {
- 494C0101060008004C0060006000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010106000800040060006000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000080010000C000000001002000000000000080
0400000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -9822,7 +9822,7 @@ object ProfileForm: TProfileForm
Left = 96
Top = 416
Bitmap = {
- 494C0101020008004C0010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010102000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000001000000001002000000000000010
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
diff --git a/frontend/msProfileForm.pas b/frontend/msProfileForm.pas
old mode 100644
new mode 100755
index 7b7aa62..8640ac4
--- a/frontend/msProfileForm.pas
+++ b/frontend/msProfileForm.pas
@@ -8,7 +8,7 @@ interface
// mte components
RttiIni, mteHelpers,
// mp components
- msConfiguration, msLoader, msProfilePanel;
+ msConfiguration, msLoader, msProfilePanel, System.ImageList;
type
TProfileForm = class(TForm)
@@ -37,12 +37,12 @@ TProfileForm = class(TForm)
procedure SelectionChanged(Sender: TObject);
procedure DeleteClicked(Sender: TObject);
procedure DeleteProfileItemClick(Sender: TObject);
- function ProfileNameTaken(name: string): boolean;
+ function ProfileNameTaken(name: string): Boolean;
procedure NewProfileImageClick(Sender: TObject);
procedure NewProfilePanelClick(Sender: TObject);
procedure NewProfileLabelClick(Sender: TObject);
- procedure NewProfilePanelMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
+ procedure NewProfilePanelMouseMove(Sender: TObject; Shift: TShiftState;
+ X, Y: Integer);
private
FOldWndProc: TWndMethod;
FMouseInPanel: Boolean;
@@ -63,15 +63,16 @@ implementation
procedure TProfileForm.DeleteProfileItemClick(Sender: TObject);
var
- bApproved: boolean;
+ bApproved: Boolean;
aProfile: TProfile;
begin
// get user verification
aProfile := MouseOverProfile.GetProfile;
- bApproved := MessageDlg('Are you sure you want to delete '+
- aProfile.name + '?', mtConfirmation, mbOKCancel, 0) = mrOk;
+ bApproved := MessageDlg('Are you sure you want to delete ' + aProfile.name +
+ '?', mtConfirmation, mbOKCancel, 0) = mrOk;
- if not (bApproved and Assigned(MouseOverProfile)) then exit;
+ if not(bApproved and Assigned(MouseOverProfile)) then
+ exit;
ProfilePanels.Delete(ProfilePanels.IndexOf(MouseOverProfile));
aProfile.Delete;
MouseOverProfile.Free;
@@ -89,7 +90,8 @@ procedure TProfileForm.RealignPanels;
// adjust tops
NewProfilePanel.Top := 100 * pCount - vPos;
- for i := Pred(pCount) downto 0 do begin
+ for i := Pred(pCount) downto 0 do
+ begin
p := TProfilePanel(ProfilePanels[i]);
p.SetTop(100 * i - vPos);
end;
@@ -97,7 +99,8 @@ procedure TProfileForm.RealignPanels;
// adjust widths
NewProfilePanel.Width := ScrollBox.ClientWidth;
- for i := Pred(pCount) downto 0 do begin
+ for i := Pred(pCount) downto 0 do
+ begin
p := TProfilePanel(ProfilePanels[i]);
p.SetWidth(ScrollBox.ClientWidth);
end;
@@ -110,7 +113,8 @@ procedure TProfileForm.FormClose(Sender: TObject; var Action: TCloseAction);
aProfile: TProfile;
begin
// save all profiles
- for i := 0 to Pred(ProfilePanels.Count) do begin
+ for i := 0 to Pred(ProfilePanels.Count) do
+ begin
p := TProfilePanel(ProfilePanels[i]);
aProfile := p.GetProfile;
try
@@ -122,10 +126,13 @@ procedure TProfileForm.FormClose(Sender: TObject; var Action: TCloseAction);
end;
// set profile if user clicked OK
- if ModalResult = mrOK then begin
- for i := 0 to Pred(ProfilePanels.Count) do begin
+ if ModalResult = mrOk then
+ begin
+ for i := 0 to Pred(ProfilePanels.Count) do
+ begin
p := TProfilePanel(ProfilePanels[i]);
- if p.Selected then begin
+ if p.Selected then
+ begin
CurrentProfile := TProfile.Create('');
CurrentProfile.Clone(p.GetProfile);
break;
@@ -151,7 +158,7 @@ procedure TProfileForm.FormCreate(Sender: TObject);
procedure TProfileForm.FormDestroy(Sender: TObject);
begin
- NewProfilePanel.WindowProc:= FOldWndProc;
+ NewProfilePanel.WindowProc := FOldWndProc;
end;
procedure TProfileForm.LoadProfiles;
@@ -169,14 +176,15 @@ procedure TProfileForm.LoadProfiles;
exit;
// add found profiles
repeat
- if IsDotFile(info.Name) then
+ if IsDotFile(info.name) then
continue;
- settingsPath := path + info.Name + '\settings.ini';
+ settingsPath := path + info.name + '\settings.ini';
if not FileExists(settingsPath) then
continue;
aSettings := TSettings.Create;
TRttiIni.Load(settingsPath, aSettings);
- if aSettings.profile <> '' then begin
+ if aSettings.profile <> '' then
+ begin
p := CreateNewProfile(aSettings.profile);
p.SetGame(aSettings.gameMode);
p.SetPath(aSettings.gamePath);
@@ -191,9 +199,11 @@ function TProfileForm.ProfileExists(gameMode: Integer): Boolean;
profile: TProfile;
begin
Result := False;
- for i := 0 to Pred(ProfilePanels.Count) do begin
+ for i := 0 to Pred(ProfilePanels.Count) do
+ begin
profile := TProfilePanel(ProfilePanels[i]).GetProfile;
- if profile.gameMode = gameMode then begin
+ if profile.gameMode = gameMode then
+ begin
Result := True;
break;
end;
@@ -206,11 +216,14 @@ procedure TProfileForm.CreateDefaultProfiles;
path, name: string;
p: TProfilePanel;
begin
- for i := Low(GameArray) to High(GameArray) do begin
- if ProfileExists(i) then continue;
+ for i := Low(GameArray) to High(GameArray) do
+ begin
+ if ProfileExists(i) then
+ continue;
path := GetGamePath(GameArray[i]);
name := GameArray[i].appName;
- if path <> '' then begin
+ if path <> '' then
+ begin
p := CreateNewProfile(name);
p.SetGame(i);
p.SetPath(path);
@@ -258,16 +271,18 @@ procedure TProfileForm.NewProfilePanelClick(Sender: TObject);
NewProfileItemClick(nil);
end;
-function TProfileForm.ProfileNameTaken(name: string): boolean;
+function TProfileForm.ProfileNameTaken(name: string): Boolean;
var
i: Integer;
pName: string;
begin
- Result := false;
- for i := 0 to Pred(ProfilePanels.Count) do begin
+ Result := False;
+ for i := 0 to Pred(ProfilePanels.Count) do
+ begin
pName := TProfilePanel(ProfilePanels[i]).GetProfile.name;
- if SameText(pName, name) then begin
- Result := true;
+ if SameText(pName, name) then
+ begin
+ Result := True;
break;
end;
end;
@@ -294,10 +309,11 @@ procedure TProfileForm.SelectionChanged(Sender: TObject);
var
i: Integer;
p: TProfilePanel;
- bSelected: boolean;
+ bSelected: Boolean;
begin
// deselect all panels except the sender
- for i := 0 to Pred(ProfilePanels.Count) do begin
+ for i := 0 to Pred(ProfilePanels.Count) do
+ begin
p := TProfilePanel(ProfilePanels[i]);
if p <> TProfilePanel(Sender) then
p.Deselect
@@ -306,8 +322,10 @@ procedure TProfileForm.SelectionChanged(Sender: TObject);
// enable and focus ok button if profile panel is selected
bSelected := TProfilePanel(Sender).Selected;
btnOk.Enabled := bSelected;
- if bSelected then self.FocusControl(btnOk)
- else self.FocusControl(btnCancel);
+ if bSelected then
+ self.FocusControl(btnOk)
+ else
+ self.FocusControl(btnCancel);
end;
procedure TProfileForm.DeleteClicked(Sender: TObject);
@@ -316,26 +334,28 @@ procedure TProfileForm.DeleteClicked(Sender: TObject);
DeleteProfileItemClick(nil);
end;
-procedure TProfileForm.NewProfilePanelMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
+procedure TProfileForm.NewProfilePanelMouseMove(Sender: TObject;
+ Shift: TShiftState; X, Y: Integer);
var
mEvnt: TTrackMouseEvent;
begin
- if not FMouseInPanel then begin
+ if not FMouseInPanel then
+ begin
mEvnt.cbSize := SizeOf(mEvnt);
mEvnt.dwFlags := TME_LEAVE;
mEvnt.hwndTrack := NewProfilePanel.Handle;
TrackMouseEvent(mEvnt);
- NewProfilePanel.Color:= $f0e8d8;
- FMouseInPanel:= True;
+ NewProfilePanel.Color := $F0E8D8;
+ FMouseInPanel := True;
end;
end;
procedure TProfileForm.PanelWndProc(var Message: TMessage);
begin
- if Message.Msg = WM_MOUSELEAVE then begin
- NewProfilePanel.Color:= clBtnFace;
- FMouseInPanel:= False;
+ if Message.Msg = WM_MOUSELEAVE then
+ begin
+ NewProfilePanel.Color := clBtnFace;
+ FMouseInPanel := False;
end;
FOldWndProc(Message);
end;
diff --git a/frontend/msProfilePanel.pas b/frontend/msProfilePanel.pas
old mode 100644
new mode 100755
index 420ec37..d83f6ff
--- a/frontend/msProfilePanel.pas
+++ b/frontend/msProfilePanel.pas
@@ -26,7 +26,7 @@ TProfilePanel = class(TPanel)
function GetProfile: TProfile;
procedure SetSelectCallback(callback: TNotifyEvent);
procedure SetDeleteCallback(callback: TNotifyEvent);
- procedure SetGame(i: integer);
+ procedure SetGame(i: Integer);
procedure SetPath(path: string);
private
aProfile: TProfile;
@@ -54,30 +54,27 @@ TProfilePanel = class(TPanel)
implementation
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ TProfilePanel
A GUI component for interacting with a profile.
}
-{******************************************************************************}
+{ ****************************************************************************** }
constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
GeneralIcons: TImageList; name: string);
const
GameItems = 'The Elder Scrolls V: Skyrim'#13#10 +
- 'The Elder Scrolls IV: Oblivion'#13#10 +
- 'Fallout: New Vegas'#13#10 +
- 'Fallout 3'#13#10 +
- 'Fallout 4'#13#10 +
- 'Skyrim: Special Edition';
+ 'The Elder Scrolls IV: Oblivion'#13#10 + 'Fallout: New Vegas'#13#10 +
+ 'Fallout 3'#13#10 + 'Fallout 4'#13#10 + 'Skyrim: Special Edition'#13#10 +
+ 'Skyrim: VR'#13#10 + 'Enderal'#13#10 + 'Enderal: Special Edition';
begin
// set up panel
inherited Create(AOwner);
Parent := AOwner as TWinControl;
- Width := (AOwner as TWinControl).ClientWidth;
+ width := (AOwner as TWinControl).ClientWidth;
Height := 100;
Left := 0;
- Top := 0;
+ top := 0;
ParentBackground := false;
ParentColor := false;
ParentDoubleBuffered := false;
@@ -89,9 +86,9 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
aProfile := TProfile.Create(name);
self.GameIcons := GameIcons;
Selected := false;
- ColorInvalid := $d8d8f0;
- ColorValid := $d8f0d8;
- ColorSelected := $f0e8d8;
+ ColorInvalid := $D8D8F0;
+ ColorValid := $D8F0D8;
+ ColorSelected := $F0E8D8;
// create components
GameImage := TImage.Create(self);
@@ -106,10 +103,10 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
// set up GameImage
GameImage.Parent := self;
- GameImage.Top := 2;
+ GameImage.top := 2;
GameImage.Left := 2;
GameImage.Height := 96;
- GameImage.Width := 96;
+ GameImage.width := 96;
GameImage.Cursor := crDefault;
GameImage.Transparent := true;
GameImage.Align := alCustom;
@@ -117,7 +114,7 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
// set up lblName
lblName.Parent := self;
- lblName.Top := 11;
+ lblName.top := 11;
lblName.Left := 112;
lblName.Caption := 'Name';
lblName.Align := alCustom;
@@ -125,7 +122,7 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
// set up lblGame
lblGame.Parent := self;
- lblGame.Top := 38;
+ lblGame.top := 38;
lblGame.Left := 112;
lblGame.Caption := 'Game';
lblGame.Align := alCustom;
@@ -133,7 +130,7 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
// set up lblPath
lblPath.Parent := self;
- lblPath.Top := 65;
+ lblPath.top := 65;
lblPath.Left := 112;
lblPath.Caption := 'Path';
lblPath.Align := alCustom;
@@ -141,18 +138,18 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
// set up edName
edName.Parent := self;
- edName.Top := 8;
+ edName.top := 8;
edName.Left := 177;
- edName.Width := 227;
+ edName.width := 227;
edName.Text := name;
edName.Align := alCustom;
edName.Anchors := [akLeft, akTop];
// set up cbGame
cbGame.Parent := self;
- cbGame.Top := 35;
+ cbGame.top := 35;
cbGame.Left := 177;
- cbGame.Width := 227;
+ cbGame.width := 227;
cbGame.Style := csDropDownList;
cbGame.Items.Text := GameItems;
cbGame.ItemIndex := 0;
@@ -161,17 +158,17 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
// set up edPath
edPath.Parent := self;
- edPath.Top := 62;
+ edPath.top := 62;
edPath.Left := 177;
- edPath.Width := 227;
+ edPath.width := 227;
edPath.Align := alCustom;
edPath.Anchors := [akLeft, akTop];
// set up btnBrowse
btnBrowse.Parent := self;
- btnBrowse.Top := 61;
+ btnBrowse.top := 61;
btnBrowse.Left := 410;
- btnBrowse.Width := 22;
+ btnBrowse.width := 22;
btnBrowse.Height := 23;
btnBrowse.Flat := true;
btnBrowse.Transparent := true;
@@ -181,9 +178,9 @@ constructor TProfilePanel.ICreate(AOwner: TComponent; GameIcons: TImageList;
// set up btnDelete
btnDelete.Parent := self;
- btnDelete.Top := 4;
+ btnDelete.top := 4;
btnDelete.Left := 410;
- btnDelete.Width := 22;
+ btnDelete.width := 22;
btnDelete.Height := 23;
btnDelete.Flat := true;
btnDelete.Transparent := true;
@@ -226,9 +223,14 @@ destructor TProfilePanel.Destroy;
{ EVENT HANDLING }
procedure TProfilePanel.ToggleSelect(Sender: TObject);
begin
- if Cursor = crHandPoint then begin
- if Selected then Deselect else Select;
- if Assigned(SelectCallback) then SelectCallback(self);
+ if Cursor = crHandPoint then
+ begin
+ if Selected then
+ Deselect
+ else
+ Select;
+ if Assigned(SelectCallback) then
+ SelectCallback(self);
end;
end;
@@ -257,13 +259,15 @@ procedure TProfilePanel.Browse(Sender: TObject);
procedure TProfilePanel.Delete(Sender: TObject);
begin
- if Assigned(DeleteCallback) then DeleteCallback(self);
+ if Assigned(DeleteCallback) then
+ DeleteCallback(self);
end;
procedure TProfilePanel.NameChanged(Sender: TObject);
begin
if FileNameValid(edName.Text) and
- (not DirectoryExists(PathList.Values['ProgramPath'] + 'profiles\' + edName.Text)) then
+ (not DirectoryExists(PathList.Values['ProgramPath'] + 'profiles\' +
+ edName.Text)) then
aProfile.Rename(edName.Text);
end;
@@ -286,13 +290,15 @@ procedure TProfilePanel.PathChanged(Sender: TObject);
aProfile.gamePath := AppendIfMissing(edPath.Text, '\');
// reflect validity in the GUI
- if GamePathValid(aProfile.gamePath, aProfile.gameMode) then begin
+ if GamePathValid(aProfile.gamePath, aProfile.gamemode) then
+ begin
Valid := true;
Cursor := crHandPoint;
GameImage.Cursor := crHandPoint;
Color := ColorValid;
end
- else begin
+ else
+ begin
Valid := false;
Cursor := crDefault;
GameImage.Cursor := crDefault;
diff --git a/frontend/msSettingsManager.dfm b/frontend/msSettingsManager.dfm
old mode 100644
new mode 100755
index 2e8dadc..f7af668
--- a/frontend/msSettingsManager.dfm
+++ b/frontend/msSettingsManager.dfm
@@ -352,7 +352,7 @@ object SettingsManager: TSettingsManager
Left = 752
Top = 504
Bitmap = {
- 494C010104000800000111001100FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010104000800040011001100FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000440000002200000001002000000000002024
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -664,7 +664,7 @@ object SettingsManager: TSettingsManager
Left = 824
Top = 504
Bitmap = {
- 494C0101050008004C0110001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010105000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020
00000000000000000000000000000000000000000000D1D1D12E4F4F4FB01B1B
1BE42B2B2BD48282827DF7F7F708000000000000000000000000000000000000
diff --git a/frontend/msSettingsManager.pas b/frontend/msSettingsManager.pas
old mode 100644
new mode 100755
index 112e076..9e0624e
--- a/frontend/msSettingsManager.pas
+++ b/frontend/msSettingsManager.pas
@@ -11,74 +11,75 @@ interface
// mte units
mteHelpers, mteLogger, mteProgressForm, mteBase, RttiTranslation,
// ms units
- msCore, msConfiguration, msPluginSelectionForm, msConflictForm, msThreads;
+ msCore, msConfiguration, msPluginSelectionForm, msConflictForm, msThreads,
+ System.ImageList;
type
TSettingsManager = class(TForm)
[FormPrefix('msSet')]
- Splitter: TSplitter;
- [FormSection('Settings')]
- pnlEntries: TPanel;
- lvSettings: TListView;
- [FormSection('Settings Popup Menu')]
- SettingsPopupMenu: TPopupMenu;
- NewSettingItem: TMenuItem;
- DeleteSettingItem: TMenuItem;
- CloneSettingItem: TMenuItem;
- CombineSettingsItem: TMenuItem;
- [FormSection('Details')]
- pnlDetails: TPanel;
- lblName: TLabel;
- edName: TEdit;
- lblColor: TLabel;
- cbColor: TColorBox;
- lblHash: TLabel;
- edHash: TEdit;
- lblDescription: TLabel;
- meDescription: TMemo;
- btnSave: TButton;
- btnDiscard: TButton;
- [FormSection('Tree')]
- lblTree: TLabel;
- edSearch: TEdit;
- tvRecords: TTreeView;
- StateImages: TImageList;
- FlagIcons: TImageList;
- [FormSection('TreePopupMenu')]
- TreePopupMenu: TPopupMenu;
- LinkItem: TMenuItem;
- PruneItem: TMenuItem;
- BuildItem: TMenuItem;
- ToggleItem: TMenuItem;
- AddItem: TMenuItem;
- AddAllRecordsItem: TMenuItem;
- BuildFromPluginsItem: TMenuItem;
- AutosetItem: TMenuItem;
- SelectSimilarNodesItem: TMenuItem;
- ToggleNodesItem: TMenuItem;
- PreserveDeletionsItem: TMenuItem;
- OverrideDeletionsItem: TMenuItem;
- SingleEntityItem: TMenuItem;
- ForceValueItem: TMenuItem;
- ChainNodesItem: TMenuItem;
- LinkNodeToItem: TMenuItem;
- UnlinkNodeItem: TMenuItem;
- AutoPruneItem: TMenuItem;
- PruneNodesItem: TMenuItem;
+ Splitter: TSplitter;
+ [FormSection('Settings')]
+ pnlEntries: TPanel;
+ lvSettings: TListView;
+ [FormSection('Settings Popup Menu')]
+ SettingsPopupMenu: TPopupMenu;
+ NewSettingItem: TMenuItem;
+ DeleteSettingItem: TMenuItem;
+ CloneSettingItem: TMenuItem;
+ CombineSettingsItem: TMenuItem;
+ [FormSection('Details')]
+ pnlDetails: TPanel;
+ lblName: TLabel;
+ edName: TEdit;
+ lblColor: TLabel;
+ cbColor: TColorBox;
+ lblHash: TLabel;
+ edHash: TEdit;
+ lblDescription: TLabel;
+ meDescription: TMemo;
+ btnSave: TButton;
+ btnDiscard: TButton;
+ [FormSection('Tree')]
+ lblTree: TLabel;
+ edSearch: TEdit;
+ tvRecords: TTreeView;
+ StateImages: TImageList;
+ FlagIcons: TImageList;
+ [FormSection('TreePopupMenu')]
+ TreePopupMenu: TPopupMenu;
+ LinkItem: TMenuItem;
+ PruneItem: TMenuItem;
+ BuildItem: TMenuItem;
+ ToggleItem: TMenuItem;
+ AddItem: TMenuItem;
+ AddAllRecordsItem: TMenuItem;
+ BuildFromPluginsItem: TMenuItem;
+ AutosetItem: TMenuItem;
+ SelectSimilarNodesItem: TMenuItem;
+ ToggleNodesItem: TMenuItem;
+ PreserveDeletionsItem: TMenuItem;
+ OverrideDeletionsItem: TMenuItem;
+ SingleEntityItem: TMenuItem;
+ ForceValueItem: TMenuItem;
+ ChainNodesItem: TMenuItem;
+ LinkNodeToItem: TMenuItem;
+ UnlinkNodeItem: TMenuItem;
+ AutoPruneItem: TMenuItem;
+ PruneNodesItem: TMenuItem;
// TREE METHODS
procedure DrawFlag(Canvas: TCanvas; var x, y: Integer; id: Integer);
- procedure tvRecordsCustomDrawItem(Sender: TCustomTreeView;
- Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
+ procedure tvRecordsCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
+ State: TCustomDrawState; var DefaultDraw: Boolean);
procedure tvRecordsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tvRecordsMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
+ Shift: TShiftState; x, y: Integer);
procedure tvRecordsCollapsing(Sender: TObject; Node: TTreeNode;
var AllowCollapse: Boolean);
procedure tvRecordsKeyPress(Sender: TObject; var Key: Char);
- procedure tvRecordsMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
+ procedure tvRecordsMouseMove(Sender: TObject; Shift: TShiftState;
+ x, y: Integer);
procedure LinkNodeItemClick(Sender: TObject);
procedure TreePopupMenuPopup(Sender: TObject);
procedure AddItemClick(Sender: TObject);
@@ -94,11 +95,11 @@ TSettingsManager = class(TForm)
procedure UnlinkNodeItemClick(Sender: TObject);
procedure LinkNodes(node1, node2: TTreeNode);
procedure ChainNodesItemClick(Sender: TObject);
- function DumpElement(node: TTreeNode): ISuperObject;
+ function DumpElement(Node: TTreeNode): ISuperObject;
procedure DumpTree;
procedure DeleteNodes(var aList: TList);
- procedure DeleteChildren(node: TTreeNode);
- function CanPruneRecords: boolean;
+ procedure DeleteChildren(Node: TTreeNode);
+ function CanPruneRecords: Boolean;
procedure AutoPrune;
procedure AutoPruneItemClick(Sender: TObject);
procedure Autoset(parentNode: TTreeNode);
@@ -158,7 +159,8 @@ implementation
procedure TSettingsManager.edSearchClick(Sender: TObject);
begin
// On search field click set bSearchActive to false
- if (bSearchActive) and (MessageDlg('Start new search?', mtConfirmation, [mbyes, mbno], 0) = mrYes) then
+ if (bSearchActive) and (MessageDlg('Start new search?', mtConfirmation,
+ [mbyes, mbno], 0) = mrYes) then
bSearchActive := False;
// Empties the search field when clicked and a search is active
if not bSearchActive then
@@ -168,7 +170,7 @@ procedure TSettingsManager.edSearchClick(Sender: TObject);
procedure TSettingsManager.edSearchKeyPress(Sender: TObject; var Key: Char);
var
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
begin
// Exit if no records are available
if tvRecords.Items.Count = 0 then
@@ -177,21 +179,24 @@ procedure TSettingsManager.edSearchKeyPress(Sender: TObject; var Key: Char);
if Key <> #13 then
exit;
// Tell the user to enter search term
- if (edSearch.Text = 'Search...') or (edSearch.Text = '') then begin
+ if (edSearch.Text = 'Search...') or (edSearch.Text = '') then
+ begin
ShowMessage('Please enter a search term!');
exit;
end;
// Do a search when bSearchActive is false
- if not bSearchActive then begin
+ if not bSearchActive then
+ begin
// Clear old results
slSearchResults.Clear;
- for i := 0 to Pred(tvRecords.Items.Count) do begin
- node := tvRecords.Items[i];
+ for i := 0 to Pred(tvRecords.Items.Count) do
+ begin
+ Node := tvRecords.Items[i];
// Check if search-string is contained in node-text
- if ContainsText(node.Text, edSearch.Text) then
- slSearchResults.AddObject(node.Text,TObject(node));
+ if ContainsText(Node.Text, edSearch.Text) then
+ slSearchResults.AddObject(Node.Text, TObject(Node));
end;
- bSearchActive := True;
+ bSearchActive := true;
// Show result
NextSearchResult;
Key := #0;
@@ -200,10 +205,11 @@ procedure TSettingsManager.edSearchKeyPress(Sender: TObject; var Key: Char);
procedure TSettingsManager.NextSearchResult();
var
- node: TTreeNode;
+ Node: TTreeNode;
begin
// Notify the user of an unsuccessful search and reset search
- if slSearchResults.Count = 0 then begin
+ if slSearchResults.Count = 0 then
+ begin
ShowMessage('No results could be found!');
ResetSearch;
exit;
@@ -214,18 +220,20 @@ procedure TSettingsManager.NextSearchResult();
exit;
// Increase the SearchIndex
- Searchindex := Searchindex + 1;
+ SearchIndex := SearchIndex + 1;
// Display the amount of results and the current position in the search field
- edSearch.Text := ('Result: ' + InttoStr(Searchindex+1) + ' / ' + InttoStr(slSearchResults.Count+1));
+ edSearch.Text := ('Result: ' + InttoStr(SearchIndex + 1) + ' / ' +
+ InttoStr(slSearchResults.Count + 1));
// Go back to the beginning if end is reached
- if Searchindex > Pred(slSearchResults.Count) then begin
- Searchindex := 0;
+ if SearchIndex > Pred(slSearchResults.Count) then
+ begin
+ SearchIndex := 0;
end;
// select the node and set focus
- node := TTreeNode(slSearchResults.Objects[Searchindex]);
+ Node := TTreeNode(slSearchResults.Objects[SearchIndex]);
tvRecords.SetFocus;
- node.Selected := true;
- node.Focused := true;
+ Node.Selected := true;
+ Node.Focused := true;
end;
procedure TSettingsManager.ResetSearch();
@@ -235,7 +243,8 @@ procedure TSettingsManager.ResetSearch();
end;
{ Tree methods }
-procedure TSettingsManager.DrawFlag(Canvas: TCanvas; var x, y: Integer; id: Integer);
+procedure TSettingsManager.DrawFlag(Canvas: TCanvas; var x, y: Integer;
+ id: Integer);
var
icon: TIcon;
begin
@@ -259,8 +268,9 @@ procedure TSettingsManager.tvRecordsCustomDrawItem(Sender: TCustomTreeView;
R: TRect;
x, y: Integer;
begin
- if Assigned(node.Data) then begin
- e := TElementData(node.Data);
+ if Assigned(Node.Data) then
+ begin
+ e := TElementData(Node.Data);
R := Node.DisplayRect(true);
x := R.Right + 6;
y := R.Top;
@@ -288,7 +298,8 @@ procedure TSettingsManager.tvRecordsKeyDown(Sender: TObject; var Key: Word;
var
i: Integer;
begin
- if (Key = VK_SPACE) then begin
+ if (Key = VK_SPACE) then
+ begin
for i := 0 to Pred(tvRecords.SelectionCount) do
CheckboxManager(tvRecords.Selections[i]);
// repaint tree view in case a single entity flag was unset
@@ -300,24 +311,26 @@ procedure TSettingsManager.tvRecordsKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
NextSearchResult;
- Key := #0;
+ Key := #0;
if Key = ' ' then
Key := #0;
end;
-procedure TSettingsManager.tvRecordsMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
+procedure TSettingsManager.tvRecordsMouseDown(Sender: TObject;
+ Button: TMouseButton; Shift: TShiftState; x, y: Integer);
var
HT: THitTests;
- node: TTreeNode;
+ Node: TTreeNode;
begin
// this allows right clicking to be used to select nodes
- if Button = mbRight then begin
- node := tvRecords.GetNodeAt(X, Y);
- if Assigned(node) and not node.Selected then begin
- tvRecords.ClearSelection(false);
- tvRecords.Select(node);
+ if Button = mbRight then
+ begin
+ Node := tvRecords.GetNodeAt(x, y);
+ if Assigned(Node) and not Node.Selected then
+ begin
+ tvRecords.ClearSelection(False);
+ tvRecords.Select(Node);
end;
end;
@@ -330,36 +343,37 @@ procedure TSettingsManager.tvRecordsMouseDown(Sender: TObject; Button: TMouseBut
// seconds
if Now - LastCollapseTime < collapseHitTestDelay then
exit;
- HT := tvRecords.GetHitTestInfoAt(X, Y);
+ HT := tvRecords.GetHitTestInfoAt(x, y);
if (HT - [htOnStateIcon] <> HT) then
- CheckBoxManager(tvRecords.Selected);
+ CheckboxManager(tvRecords.Selected);
// repaint tree view in case a single entity flag was unset
tvRecords.Repaint;
end;
procedure TSettingsManager.tvRecordsMouseMove(Sender: TObject;
- Shift: TShiftState; X, Y: Integer);
+ Shift: TShiftState; x, y: Integer);
var
- node: TTreeNode;
+ Node: TTreeNode;
e: TElementData;
sHint: string;
begin
// hide hint and exit if shift is down
- if (ssShift in Shift) then begin
+ if (ssShift in Shift) then
+ begin
Application.HideHint;
exit;
end;
// draw hint if on a node
- node := tvRecords.GetNodeAt(X, Y);
- if not Assigned(node) then
+ Node := tvRecords.GetNodeAt(x, y);
+ if not Assigned(Node) then
exit;
- e := TElementData(node.Data);
+ e := TElementData(Node.Data);
if not Assigned(e) then
exit;
// get hint
- sHint := node.Text + #13#10'Type: '+stToString(e.smashType);
+ sHint := Node.Text + #13#10'Type: ' + stToString(e.smashType);
if e.singleEntity then
sHint := sHint + #13#10'Treated as a single entity';
if e.forceValue then
@@ -367,26 +381,29 @@ procedure TSettingsManager.tvRecordsMouseMove(Sender: TObject;
if e.preserveDeletions then
sHint := sHint + #13#10'Preserving deletions';
if e.linkTo <> '' then
- sHint := sHint + #13#10'Linked to: '+e.linkTo;
+ sHint := sHint + #13#10'Linked to: ' + e.linkTo;
if e.linkFrom <> '' then
- sHint := sHint + #13#10'Linked from: '+e.linkFrom;
+ sHint := sHint + #13#10'Linked from: ' + e.linkFrom;
// display hint if it isn't the last hint we displayed
- if sHint <> lastHint then begin
+ if sHint <> lastHint then
+ begin
tvRecords.Hint := sHint;
Application.ActivateHint(Mouse.CursorPos);
lastHint := sHint;
end;
end;
-function GetSiblingNode(node: TTreeNode; text: string): TTreeNode;
+function GetSiblingNode(Node: TTreeNode; Text: string): TTreeNode;
var
aNode: TTreeNode;
begin
Result := nil;
- aNode := node.Parent.getFirstChild;
- while Assigned(aNode) do begin
- if aNode.Text = text then begin
+ aNode := Node.Parent.getFirstChild;
+ while Assigned(aNode) do
+ begin
+ if aNode.Text = Text then
+ begin
Result := aNode;
exit;
end;
@@ -394,23 +411,27 @@ function GetSiblingNode(node: TTreeNode; text: string): TTreeNode;
end;
end;
-procedure UnlinkNode(node: TTreeNode; bTo, bFrom: boolean);
+procedure UnlinkNode(Node: TTreeNode; bTo, bFrom: Boolean);
var
linkedNode: TTreeNode;
e, le: TElementData;
begin
- e := TElementData(node.Data);
- if bTo and (e.linkTo <> '') then begin
- linkedNode := GetSiblingNode(node, e.linkTo);
- if Assigned(linkedNode) then begin
+ e := TElementData(Node.Data);
+ if bTo and (e.linkTo <> '') then
+ begin
+ linkedNode := GetSiblingNode(Node, e.linkTo);
+ if Assigned(linkedNode) then
+ begin
le := TElementData(linkedNode.Data);
le.linkFrom := '';
end;
e.linkTo := '';
end;
- if bFrom and (e.linkFrom <> '') then begin
- linkedNode := GetSiblingNode(node, e.linkFrom);
- if Assigned(linkedNode) then begin
+ if bFrom and (e.linkFrom <> '') then
+ begin
+ linkedNode := GetSiblingNode(Node, e.linkFrom);
+ if Assigned(linkedNode) then
+ begin
le := TElementData(linkedNode.Data);
le.linkTo := '';
end;
@@ -421,12 +442,13 @@ procedure UnlinkNode(node: TTreeNode; bTo, bFrom: boolean);
procedure TSettingsManager.UnlinkNodeItemClick(Sender: TObject);
var
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
begin
// unset link element data attribute for each selected node
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
- node := tvRecords.Selections[i];
- UnlinkNode(node, true, true);
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
+ Node := tvRecords.Selections[i];
+ UnlinkNode(Node, true, true);
end;
// update gui
@@ -442,8 +464,8 @@ procedure TSettingsManager.LinkNodes(node1, node2: TTreeNode);
exit;
// unlink nodes as necessary
- UnlinkNode(node1, true, false);
- UnlinkNode(node2, false, true);
+ UnlinkNode(node1, true, False);
+ UnlinkNode(node2, False, true);
// link nodes
e := TElementData(node1.Data);
@@ -455,18 +477,19 @@ procedure TSettingsManager.LinkNodes(node1, node2: TTreeNode);
procedure TSettingsManager.ChainNodesItemClick(Sender: TObject);
var
i: Integer;
- prevNode, node: TTreeNode;
+ prevNode, Node: TTreeNode;
begin
- node := tvRecords.Selections[0];
- for i := 1 to Pred(tvRecords.SelectionCount) do begin
- prevNode := node;
- node := tvRecords.Selections[i];
- LinkNodes(prevNode, node);
+ Node := tvRecords.Selections[0];
+ for i := 1 to Pred(tvRecords.SelectionCount) do
+ begin
+ prevNode := Node;
+ Node := tvRecords.Selections[i];
+ LinkNodes(prevNode, Node);
end;
// link last node to first node
- prevNode := node;
- node := tvRecords.Selections[0];
- LinkNodes(prevNode, node);
+ prevNode := Node;
+ Node := tvRecords.Selections[0];
+ LinkNodes(prevNode, Node);
// repaint
tvRecords.Repaint;
@@ -474,20 +497,20 @@ procedure TSettingsManager.ChainNodesItemClick(Sender: TObject);
procedure TSettingsManager.LinkNodeItemClick(Sender: TObject);
var
- item: TMenuItem;
+ Item: TMenuItem;
targetNodeText: string;
- node, targetNode: TTreeNode;
+ Node, targetNode: TTreeNode;
begin
// get the target node to link to from the menu item clicked
- node := tvRecords.Selections[0];
- item := TMenuItem(Sender);
- targetNodeText := StringReplace(item.Caption, '&', '', [rfReplaceAll]);
- targetNode := GetSiblingNode(node, targetNodeText);
+ Node := tvRecords.Selections[0];
+ Item := TMenuItem(Sender);
+ targetNodeText := StringReplace(Item.Caption, '&', '', [rfReplaceAll]);
+ targetNode := GetSiblingNode(Node, targetNodeText);
if not Assigned(targetNode) then
exit;
// link the nodes
- LinkNodes(node, targetNode);
+ LinkNodes(Node, targetNode);
// update gui
tvRecords.Repaint;
@@ -496,9 +519,9 @@ procedure TSettingsManager.LinkNodeItemClick(Sender: TObject);
procedure TSettingsManager.TreePopupMenuPopup(Sender: TObject);
var
bHasSelection, bTreeSelected, bHasMultiSelection, bSubrecordSelected,
- bHasChildren, bRecordsSelected, bSomeUnChecked, bIsContainer: boolean;
+ bHasChildren, bRecordsSelected, bSomeUnChecked, bIsContainer: Boolean;
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
MenuItem: TMenuItem;
begin
// clear link node submenu
@@ -506,20 +529,23 @@ procedure TSettingsManager.TreePopupMenuPopup(Sender: TObject);
// get selection booleans
bHasSelection := tvRecords.SelectionCount > 0;
- bTreeSelected := (tvRecords.SelectionCount = 1)
- and (tvRecords.Selections[0].Level = 0);
+ bTreeSelected := (tvRecords.SelectionCount = 1) and
+ (tvRecords.Selections[0].Level = 0);
bHasMultiSelection := tvRecords.SelectionCount > 1;
- bSubrecordSelected := (tvRecords.SelectionCount = 1)
- and (tvRecords.Selections[0].Level > 1);
+ bSubrecordSelected := (tvRecords.SelectionCount = 1) and
+ (tvRecords.Selections[0].Level > 1);
// get multiselection booleans
- bHasChildren := false;
+ bHasChildren := False;
bRecordsSelected := true;
- bSomeUnChecked := false;
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
+ bSomeUnChecked := False;
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
bHasChildren := bHasChildren or tvRecords.Selections[i].HasChildren;
- bRecordsSelected := bRecordsSelected and (tvRecords.Selections[i].Level = 1);
- bSomeUnChecked := bSomeUnChecked or (tvRecords.Selections[i].StateIndex = csUnChecked);
+ bRecordsSelected := bRecordsSelected and
+ (tvRecords.Selections[i].Level = 1);
+ bSomeUnChecked := bSomeUnChecked or
+ (tvRecords.Selections[i].StateIndex = csUnChecked);
end;
// enable/disable menu items
@@ -531,44 +557,49 @@ procedure TSettingsManager.TreePopupMenuPopup(Sender: TObject);
SingleEntityItem.Enabled := bIsContainer and not bRecordsSelected;
ForceValueItem.Enabled := bHasSelection and bRecordsSelected;
AutoPruneItem.Enabled := CanPruneRecords;
- PruneNodesItem.Enabled := bHasSelection and bRecordsSelected and bSomeUnChecked;
+ PruneNodesItem.Enabled := bHasSelection and bRecordsSelected and
+ bSomeUnChecked;
UnlinkNodeItem.Enabled := bHasSelection and not bTreeSelected;
ChainNodesItem.Enabled := bHasMultiSelection and not bTreeSelected;
LinkNodeToItem.Enabled := bSubrecordSelected and not bTreeSelected;
// build LinkNodeToItem submenu
- if bSubrecordSelected then begin
- node := tvRecords.Selected.Parent.getFirstChild;
- while Assigned(node) do begin
- if node = tvRecords.Selections[0] then begin
- node := node.getNextSibling;
+ if bSubrecordSelected then
+ begin
+ Node := tvRecords.Selected.Parent.getFirstChild;
+ while Assigned(Node) do
+ begin
+ if Node = tvRecords.Selections[0] then
+ begin
+ Node := Node.getNextSibling;
continue;
end;
MenuItem := TMenuItem.Create(LinkNodeToItem);
- MenuItem.Caption := node.Text;
+ MenuItem.Caption := Node.Text;
MenuItem.OnClick := LinkNodeItemClick;
LinkNodeToItem.Add(MenuItem);
- node := node.getNextSibling;
+ Node := Node.getNextSibling;
end;
end;
end;
procedure TSettingsManager.AddItemClick(Sender: TObject);
var
- item: TMenuItem;
+ Item: TMenuItem;
groupName: string;
recObj: ISuperObject;
begin
- item := (Sender as TMenuItem);
- groupName := StringReplace(item.Caption, '&', '', [rfReplaceAll]);
+ Item := (Sender as TMenuItem);
+ groupName := StringReplace(Item.Caption, '&', '', [rfReplaceAll]);
recObj := GetRecordObj(currentSetting.tree, groupName);
// build record def if it isn't already present
- if not Assigned(recObj) then begin
+ if not Assigned(recObj) then
+ begin
if not BuildRecordDef(groupName, recObj) then
exit;
currentSetting.tree.A['records'].Add(recObj);
- LoadElement(tvRecords, tvRecords.Items[0], recObj, false);
+ LoadElement(tvRecords, tvRecords.Items[0], recObj, False);
end;
// update gui
@@ -591,14 +622,15 @@ procedure TSettingsManager.BuildFromPluginsItemClick(Sender: TObject);
// build list of plugin filenames
slPlugins := TStringList.Create;
slSelection := TStringList.Create;
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
slPlugins.Add(plugin.filename);
end;
// prompt user for plugin selectcion
selectionForm := TMiniPluginSelectionForm.Create(self);
- selectionForm.pluginsList := slPlugins;
+ selectionForm.PluginsList := slPlugins;
selectionForm.selectionList := slSelection;
mr := selectionForm.ShowModal;
if mr = mrOK then
@@ -613,7 +645,7 @@ procedure TSettingsManager.BuildFromPluginsItemClick(Sender: TObject);
procedure TSettingsManager.SelectSimilarNodesItemClick(Sender: TObject);
var
i, index: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
reqSmashType, currentSmashType: TSmashtype;
slSelection: TStringList;
begin
@@ -622,24 +654,27 @@ procedure TSettingsManager.SelectSimilarNodesItemClick(Sender: TObject);
try
// Add "Text" and "SmashType" of selected nodes to StringList
// Note: "SmashType" has to be converted to be used in a StringList
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
- node := tvRecords.Selections[i];
- reqSmashType := TElementData(node.Data).smashType;
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
+ Node := tvRecords.Selections[i];
+ reqSmashType := TElementData(Node.Data).smashType;
// "SmashType" converted into TObject
- slSelection.AddObject(node.Text, TObject(reqSmashType));
+ slSelection.AddObject(Node.Text, TObject(reqSmashType));
end;
// Go through all nodes and check if their "Text" is in StringList
- for i := 0 to Pred(tvRecords.Items.Count) do begin
- node := tvRecords.Items[i];
- currentSmashType := TElementData(node.Data).smashType;
- index := slSelection.IndexOf(node.Text);
+ for i := 0 to Pred(tvRecords.Items.Count) do
+ begin
+ Node := tvRecords.Items[i];
+ currentSmashType := TElementData(Node.Data).smashType;
+ index := slSelection.IndexOf(Node.Text);
// If a "Text" is found, get associated "SmashType" from StringList
- if (index > -1) then begin
+ if (index > -1) then
+ begin
// Convert "SmashType" back to TSmashType
- reqSmashType := TSmashType(slSelection.Objects[index]);
- // Check if node's and saved "SmashType" match and if node is selected
- if (currentSmashType = reqSmashType) and not node.Selected then
- tvRecords.Select(node, [ssCtrl]);
+ reqSmashType := TSmashtype(slSelection.Objects[index]);
+ // Check if node's and saved "SmashType" match and if node is selected
+ if (currentSmashType = reqSmashType) and not Node.Selected then
+ tvRecords.Select(Node, [ssCtrl]);
end;
end;
finally
@@ -659,14 +694,15 @@ procedure TSettingsManager.ToggleNodesItemClick(Sender: TObject);
procedure TSettingsManager.PreserveDeletionsItemClick(Sender: TObject);
var
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
e: TElementData;
begin
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
- node := tvRecords.Selections[i];
- if not node.hasChildren then
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
+ Node := tvRecords.Selections[i];
+ if not Node.HasChildren then
continue;
- e := TElementData(node.Data);
+ e := TElementData(Node.Data);
e.preserveDeletions := not e.preserveDeletions;
end;
tvRecords.Repaint;
@@ -675,14 +711,15 @@ procedure TSettingsManager.PreserveDeletionsItemClick(Sender: TObject);
procedure TSettingsManager.OverrideDeletionsItemClick(Sender: TObject);
var
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
e: TElementData;
begin
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
- node := tvRecords.Selections[i];
- if not node.hasChildren then
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
+ Node := tvRecords.Selections[i];
+ if not Node.HasChildren then
continue;
- e := TElementData(node.Data);
+ e := TElementData(Node.Data);
e.overrideDeletions := not e.overrideDeletions;
end;
tvRecords.Repaint;
@@ -691,27 +728,29 @@ procedure TSettingsManager.OverrideDeletionsItemClick(Sender: TObject);
procedure TSettingsManager.SingleEntityItemClick(Sender: TObject);
var
i, expectedLevel: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
e: TElementData;
begin
expectedLevel := 0;
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
- node := tvRecords.Selections[i];
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
+ Node := tvRecords.Selections[i];
if expectedLevel = 0 then
- expectedLevel := node.Level;
- if not node.hasChildren then
+ expectedLevel := Node.Level;
+ if not Node.HasChildren then
continue;
- if expectedLevel <> node.Level then
+ if expectedLevel <> Node.Level then
continue;
- e := TElementData(node.Data);
+ e := TElementData(Node.Data);
e.singleEntity := not e.singleEntity;
if e.singleEntity then
- node.StateIndex := csPartiallyChecked
- else begin
- SetChildren(node, csChecked);
- node.StateIndex := csChecked;
+ Node.StateIndex := csPartiallyChecked
+ else
+ begin
+ SetChildren(Node, csChecked);
+ Node.StateIndex := csChecked;
end;
- UpdateParent(node.Parent);
+ UpdateParent(Node.Parent);
end;
tvRecords.Repaint;
end;
@@ -719,12 +758,13 @@ procedure TSettingsManager.SingleEntityItemClick(Sender: TObject);
procedure TSettingsManager.ForceValueItemClick(Sender: TObject);
var
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
e: TElementData;
begin
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
- node := tvRecords.Selections[i];
- e := TElementData(node.Data);
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
+ Node := tvRecords.Selections[i];
+ e := TElementData(Node.Data);
e.forceValue := not e.forceValue;
end;
tvRecords.Repaint;
@@ -737,97 +777,96 @@ procedure TSettingsManager.AutoPruneItemClick(Sender: TObject);
procedure TSettingsManager.Autoset(parentNode: TTreeNode);
const
- disabledElements: array[0..2] of string = (
- 'Record Header',
- 'Unused',
- 'Unknown'
- );
- disabledRecords: array[0..5] of string = (
- 'DOBJ',
- 'LCTN',
- 'IDLE',
- 'NAVM',
- 'NAVI',
- 'RACE'
- );
+ disabledElements: array [0 .. 2] of string = ('Record Header', 'Unused',
+ 'Unknown');
+ disabledRecords: array [0 .. 4] of string = ('DOBJ', 'LCTN', 'IDLE', 'NAVM',
+ 'NAVI');
var
i: Integer;
- node, nextNode: TTreeNode;
+ Node, nextNode: TTreeNode;
e: TElementData;
- bParentIsRoot, bParentIsRecord: boolean;
+ bParentIsRoot, bParentIsRecord: Boolean;
begin
// get parent booleans
bParentIsRoot := parentNode.Level = 0;
bParentIsRecord := parentNode.Level = 1;
// loop through children
- node := parentNode.getFirstChild;
- while Assigned(node) do begin
- node.StateIndex := csChecked;
- e := TElementData(node.Data);
-
- if Assigned(e) then begin
+ Node := parentNode.getFirstChild;
+ while Assigned(Node) do
+ begin
+ Node.StateIndex := csChecked;
+ e := TElementData(Node.Data);
+
+ if Assigned(e) then
+ begin
// if parent is root, preserve deletions
if bParentIsRoot then
e.preserveDeletions := true;
// if parent is record, perform case statement on type
- if bParentIsRecord then begin
+ if bParentIsRecord then
+ begin
case Ord(e.smashType) of
- Ord(stStruct): begin
- e.singleEntity := true;
- node.StateIndex := csPartiallyChecked;
- end;
- Ord(stUnsortedStructArray): begin
- e.singleEntity := true;
- e.preserveDeletions := true;
- node.StateIndex := csPartiallyChecked;
- end;
- Ord(stSortedArray),
- Ord(stSortedStructArray):
+ Ord(stStruct):
+ begin
+ e.singleEntity := true;
+ Node.StateIndex := csPartiallyChecked;
+ end;
+ Ord(stUnsortedStructArray):
+ begin
+ e.singleEntity := true;
+ e.preserveDeletions := true;
+ Node.StateIndex := csPartiallyChecked;
+ end;
+ Ord(stSortedArray), Ord(stSortedStructArray):
e.preserveDeletions := true;
Ord(stByteArray):
- node.StateIndex := csUnChecked;
+ Node.StateIndex := csUnChecked;
end;
end;
end;
// if we're not on the root, disable elements that match
// a string in the disableElements array
- if not bParentIsRoot then begin
+ if not bParentIsRoot then
+ begin
for i := Low(disabledElements) to High(disabledElements) do
- if Pos(disabledElements[i], node.Text) > 0 then begin
- node.StateIndex := csUnChecked;
- e.singleEntity := false;
- e.preserveDeletions := false;
+ if Pos(disabledElements[i], Node.Text) > 0 then
+ begin
+ Node.StateIndex := csUnChecked;
+ e.singleEntity := False;
+ e.preserveDeletions := False;
end;
end
// else disable records that match a string in the
// disabledRecords array
- else begin
+ else
+ begin
for i := Low(disabledRecords) to High(disabledRecords) do
- if Pos(disabledRecords[i], node.Text) = 1 then begin
- node.StateIndex := csUnChecked;
- e.singleEntity := false;
- e.preserveDeletions := false;
+ if Pos(disabledRecords[i], Node.Text) = 1 then
+ begin
+ Node.StateIndex := csUnChecked;
+ e.singleEntity := False;
+ e.preserveDeletions := False;
end;
end;
// disable count elements
- if bParentIsRecord then begin
- nextNode := node.getNextSibling;
- if Assigned(nextNode)
- and (TElementData(nextNode.Data).smashType in stArrays)
- and (Pos('Count', node.Text) > 0) then
- node.StateIndex := csUnChecked;
+ if bParentIsRecord then
+ begin
+ nextNode := Node.getNextSibling;
+ if Assigned(nextNode) and (TElementData(nextNode.Data).smashType
+ in stArrays) and (Pos('Count', Node.Text) > 0) then
+ Node.StateIndex := csUnChecked;
end;
// recurse
- if (node.HasChildren) and (node.StateIndex <> csUnChecked) then
- Autoset(node);
+ if (Node.HasChildren) and (Node.StateIndex <> csUnChecked) then
+ Autoset(Node);
// go to next sibling
- node := node.getNextSibling;
+ Node := Node.getNextSibling;
end;
// update parent node
@@ -845,9 +884,10 @@ procedure TSettingsManager.AutosetItemClick(Sender: TObject);
begin
// confirm with the user that this is what they
// really want to do
- mr := MessageDlg(msg, mtConfirmation, [mbYes, mbNo], 0);
- if mr = mrYes then begin
- Enabled := false;
+ mr := MessageDlg(msg, mtConfirmation, [mbyes, mbno], 0);
+ if mr = mrYes then
+ begin
+ Enabled := False;
Autoset(tvRecords.Items[0]);
Enabled := true;
end;
@@ -856,21 +896,22 @@ procedure TSettingsManager.AutosetItemClick(Sender: TObject);
procedure TSettingsManager.PruneNodesItemClick(Sender: TObject);
var
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
nodesToPrune: TList;
begin
nodesToPrune := TList.Create;
- for i := 0 to Pred(tvRecords.SelectionCount) do begin
- node := tvRecords.Selections[i];
- if (node.Level = 1) and (node.StateIndex = csUnChecked) then
- nodesToPrune.Add(node);
+ for i := 0 to Pred(tvRecords.SelectionCount) do
+ begin
+ Node := tvRecords.Selections[i];
+ if (Node.Level = 1) and (Node.StateIndex = csUnChecked) then
+ nodesToPrune.Add(Node);
end;
DeleteNodes(nodesToPrune);
nodesToPrune.Free;
UpdateParent(tvRecords.Items[0].getFirstChild);
end;
-function TSettingsManager.DumpElement(node: TTreeNode): ISuperObject;
+function TSettingsManager.DumpElement(Node: TTreeNode): ISuperObject;
var
obj: ISuperObject;
child: TTreeNode;
@@ -879,35 +920,37 @@ function TSettingsManager.DumpElement(node: TTreeNode): ISuperObject;
begin
obj := SO;
// get name
- obj.S['n'] := node.Text;
+ obj.S['n'] := Node.Text;
// get data properties
- e := TElementData(node.Data);
+ e := TElementData(Node.Data);
if (e.priority > 0) then
- obj.I['r'] := e.priority;
- if (node.StateIndex <> csUnChecked) then
- obj.I['p'] := 1;
+ obj.i['r'] := e.priority;
+ if (Node.StateIndex <> csUnChecked) then
+ obj.i['p'] := 1;
if (e.preserveDeletions) then
- obj.I['d'] := 1;
+ obj.i['d'] := 1;
if (e.overrideDeletions) then
- obj.I['o'] := 1;
+ obj.i['o'] := 1;
if (e.singleEntity) then
- obj.I['s'] := 1;
+ obj.i['s'] := 1;
if (e.forceValue) then
- obj.I['f'] := 1;
+ obj.i['f'] := 1;
if (e.smashType <> stUnknown) then
- obj.I['t'] := Ord(e.smashType);
+ obj.i['t'] := Ord(e.smashType);
if (e.linkTo <> '') then
obj.S['lt'] := e.linkTo;
if (e.linkFrom <> '') then
obj.S['lf'] := e.linkFrom;
// exit if no children to dump
- if node.hasChildren then begin
+ if Node.HasChildren then
+ begin
// dump subrecords (children)
obj.O['c'] := SA([]);
- child := node.getFirstChild;
+ child := Node.getFirstChild;
i := 0;
- while Assigned(child) do begin
+ while Assigned(child) do
+ begin
obj.A['c'].O[i] := DumpElement(child);
child := child.getNextSibling;
Inc(i);
@@ -921,19 +964,20 @@ procedure TSettingsManager.DumpTree;
var
i: Integer;
obj: ISuperObject;
- node, rootNode: TTreeNode;
+ Node, rootNode: TTreeNode;
begin
obj := SO;
obj.O['records'] := SA([]);
rootNode := tvRecords.Items[0];
// loop through records
- node := rootNode.getFirstChild;
+ Node := rootNode.getFirstChild;
i := 0;
- while Assigned(node) do begin
- obj.A['records'].O[i] := DumpElement(node);
+ while Assigned(Node) do
+ begin
+ obj.A['records'].O[i] := DumpElement(Node);
Inc(i);
- node := node.getNextSibling;
+ Node := Node.getNextSibling;
end;
currentSetting.tree := obj;
@@ -950,26 +994,28 @@ procedure TSettingsManager.edNameChange(Sender: TObject);
procedure TSettingsManager.DeleteNodes(var aList: TList);
var
i: Integer;
- node: TTreeNode;
+ Node: TTreeNode;
begin
// delete nodes in reverse order
- for i := Pred(aList.Count) downto 0 do begin
- node := TTreeNode(aList[i]);
- if node.HasChildren then
- DeleteChildren(node);
- tvRecords.Items.Delete(node);
+ for i := Pred(aList.Count) downto 0 do
+ begin
+ Node := TTreeNode(aList[i]);
+ if Node.HasChildren then
+ DeleteChildren(Node);
+ tvRecords.Items.Delete(Node);
end;
end;
-procedure TSettingsManager.DeleteChildren(node: TTreeNode);
+procedure TSettingsManager.DeleteChildren(Node: TTreeNode);
var
nodesToDelete: TList;
child: TTreeNode;
begin
nodesToDelete := TList.Create;
- child := node.getFirstChild;
+ child := Node.getFirstChild;
// get nodes to prune
- while Assigned(child) do begin
+ while Assigned(child) do
+ begin
nodesToDelete.Add(child);
child := child.getNextSibling;
end;
@@ -982,18 +1028,20 @@ procedure TSettingsManager.AutoPrune;
var
mr: Integer;
nodesToPrune: TList;
- node: TTreeNode;
+ Node: TTreeNode;
begin
- mr := MessageDlg('Your setting tree has records that can be pruned. '+
- 'Would you like to prune them?', mtConfirmation, [mbYes, mbNo], 0);
- if mr = mrYes then begin
+ mr := MessageDlg('Your setting tree has records that can be pruned. ' +
+ 'Would you like to prune them?', mtConfirmation, [mbyes, mbno], 0);
+ if mr = mrYes then
+ begin
nodesToPrune := TList.Create;
- node := tvRecords.Items[0].getFirstChild;
+ Node := tvRecords.Items[0].getFirstChild;
// get nodes to prune
- while Assigned(node) do begin
- if node.StateIndex = csUnChecked then
- nodesToPrune.Add(node);
- node := node.getNextSibling;
+ while Assigned(Node) do
+ begin
+ if Node.StateIndex = csUnChecked then
+ nodesToPrune.Add(Node);
+ Node := Node.getNextSibling;
end;
// prune nodes
DeleteNodes(nodesToPrune);
@@ -1001,36 +1049,40 @@ procedure TSettingsManager.AutoPrune;
end;
end;
-function TSettingsManager.CanPruneRecords: boolean;
+function TSettingsManager.CanPruneRecords: Boolean;
var
- node: TTreeNode;
+ Node: TTreeNode;
begin
- Result := false;
- node := tvRecords.Items[0].getFirstChild;
- while Assigned(node) do begin
- if node.StateIndex = csUnChecked then begin
+ Result := False;
+ Node := tvRecords.Items[0].getFirstChild;
+ while Assigned(Node) do
+ begin
+ if Node.StateIndex = csUnChecked then
+ begin
Result := true;
break;
end;
- node := node.getNextSibling;
+ Node := Node.getNextSibling;
end;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Settings Manager Events }
-{******************************************************************************}
+{ ****************************************************************************** }
-function TSettingsManager.GetGroup(name: string; var group: TListGroup): Boolean;
+function TSettingsManager.GetGroup(name: string; var group: TListGroup)
+ : Boolean;
var
i: Integer;
begin
- Result := false;
+ Result := False;
// get the group
- for i := 0 to Pred(lvSettings.Groups.Count) do begin
+ for i := 0 to Pred(lvSettings.Groups.Count) do
+ begin
group := lvSettings.Groups[i];
- if SameText(group.Header, name) then begin
+ if SameText(group.Header, name) then
+ begin
Result := true;
break;
end;
@@ -1041,32 +1093,33 @@ procedure TSettingsManager.AddSettingItem(aSetting: TSmashSetting;
bSelect: Boolean = true);
var
index: Integer;
- item: TListItem;
+ Item: TListItem;
sGroupName: string;
group: TListGroup;
begin
// add item to list view
- item := lvSettings.Items.Add;
- item.Caption := aSetting.name;
- item.SubItems.Add(aSetting.records);
+ Item := lvSettings.Items.Add;
+ Item.Caption := aSetting.name;
+ Item.SubItems.Add(aSetting.records);
// get group
sGroupName := 'Ungrouped';
index := Pos('.', aSetting.name);
if index > 0 then
sGroupName := Copy(aSetting.name, 1, index - 1);
- if not GetGroup(sGroupName, group) then begin
+ if not GetGroup(sGroupName, group) then
+ begin
group := lvSettings.Groups.Add;
group.Header := sGroupName;
group.State := [lgsCollapsible];
end;
// assign group
- item.GroupID := group.ID;
+ Item.GroupID := group.id;
// set selected item to the new setting
if bSelect then
- SelectSetting(item.Index);
+ SelectSetting(Item.index);
end;
procedure TSettingsManager.FormCreate(Sender: TObject);
@@ -1087,9 +1140,10 @@ procedure TSettingsManager.FormCreate(Sender: TObject);
lvSettings.Items.Count := SmashSettings.Count;
// prepare groups and load items
- for i := 0 to Pred(SmashSettings.Count) do begin
+ for i := 0 to Pred(SmashSettings.Count) do
+ begin
aSetting := TSmashSetting(SmashSettings[i]);
- AddSettingItem(aSetting, false);
+ AddSettingItem(aSetting, False);
end;
// Create the StringList for the Search
@@ -1114,8 +1168,8 @@ procedure TSettingsManager.FormShow(Sender: TObject);
TVS_NOTOOLTIPS = $0080;
begin
// disable tool tips on tree view
- SetWindowLong(tvRecords.Handle, GWL_STYLE,
- GetWindowLong(tvRecords.Handle, GWL_STYLE) or TVS_NOTOOLTIPS);
+ SetWindowLong(tvRecords.Handle, GWL_STYLE, GetWindowLong(tvRecords.Handle,
+ GWL_STYLE) or TVS_NOTOOLTIPS);
// build AddItem submenu
PopulateAddList(AddItem, AddItemClick);
@@ -1138,18 +1192,19 @@ procedure TSettingsManager.lvSettingsChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
tvRecords.Items.Clear;
- if (lvSettings.ItemIndex = -1) then begin
+ if (lvSettings.ItemIndex = -1) then
+ begin
currentSetting := nil;
edName.Text := '';
- edName.Enabled := false;
+ edName.Enabled := False;
cbColor.Selected := clBlack;
- cbColor.Enabled := false;
+ cbColor.Enabled := False;
edHash.Text := '$00000000';
meDescription.Text := '';
- meDescription.Enabled := false;
- tvRecords.Enabled := false;
- btnSave.Enabled := false;
- btnDiscard.Enabled := false;
+ meDescription.Enabled := False;
+ tvRecords.Enabled := False;
+ btnSave.Enabled := False;
+ btnDiscard.Enabled := False;
exit;
end;
@@ -1198,7 +1253,8 @@ procedure TSettingsManager.btnSaveClick(Sender: TObject);
// we can prune records,
// then dump the records tree
index := NewSettings.IndexOf(currentSetting);
- if (index > -1) then begin
+ if (index > -1) then
+ begin
if CanPruneRecords then
AutoPrune;
NewSettings.Delete(index);
@@ -1213,7 +1269,7 @@ procedure TSettingsManager.btnSaveClick(Sender: TObject);
// adjust the current setting in the list view
GetGroup(currentSetting.name, group);
- currentSettingItem.GroupID := group.ID;
+ currentSettingItem.GroupID := group.id;
currentSettingItem.Caption := currentSetting.name;
currentSettingItem.SubItems[0] := currentSetting.records;
@@ -1224,48 +1280,50 @@ procedure TSettingsManager.btnSaveClick(Sender: TObject);
procedure TSettingsManager.lvSettingsDrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
var
- i, x, y: integer;
+ i, x, y: Integer;
lv: TListView;
aSetting: TSmashSetting;
begin
lv := TListView(Sender);
// get color
- aSetting := TSmashSetting(SmashSettings[Item.Index]);
- lv.Canvas.Font.Color := aSetting.color;
+ aSetting := TSmashSetting(SmashSettings[Item.index]);
+ lv.Canvas.Font.color := aSetting.color;
lv.Canvas.Font.Style := [fsBold];
lv.Canvas.Refresh;
// draw selected rect
- if Item.Selected then begin
- lv.Canvas.Brush.Color := $FFEEDD;
+ if Item.Selected then
+ begin
+ lv.Canvas.Brush.color := $FFEEDD;
lv.Canvas.FillRect(Rect);
end;
// draw item
x := Rect.Left;
y := (Rect.Bottom - Rect.Top - lv.Canvas.TextHeight('Hg')) div 2 + Rect.Top;
- lv.Canvas.TextOut(x, y, ' '+Item.Caption);
+ lv.Canvas.TextOut(x, y, ' ' + Item.Caption);
// draw subitems
- for i := 0 to Item.SubItems.Count - 1 do begin
- Inc(x, ListView_GetColumnWidth(lv.Handle, lv.Columns[i].Index));
- lv.Canvas.TextOut(x, y, ' '+Item.SubItems[i]);
+ for i := 0 to Item.SubItems.Count - 1 do
+ begin
+ Inc(x, ListView_GetColumnWidth(lv.Handle, lv.Columns[i].index));
+ lv.Canvas.TextOut(x, y, ' ' + Item.SubItems[i]);
end;
end;
-{******************************************************************************}
+{ ****************************************************************************** }
{ SettingPopupMenu methods
Methods for dealing with the popup menu for the settings list view.
- NewSettingItemClick
- EditSettingItemClick
- DeleteSettingItemClick
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSettingsManager.SettingsPopupMenuPopup(Sender: TObject);
var
- bHasSelection, bHasMultiSelection: boolean;
+ bHasSelection, bHasMultiSelection: Boolean;
begin
bHasSelection := Assigned(lvSettings.Selected);
bHasMultiSelection := lvSettings.SelCount > 1;
@@ -1290,7 +1348,8 @@ procedure TSettingsManager.DeleteSettingItemClick(Sender: TObject);
i, index: Integer;
setting: TSmashSetting;
begin
- for i := Pred(lvSettings.Items.Count) downto 0 do begin
+ for i := Pred(lvSettings.Items.Count) downto 0 do
+ begin
if not lvSettings.Items[i].Selected then
continue;
lvSettings.Items.Delete(i);
@@ -1312,7 +1371,7 @@ procedure TSettingsManager.CloneSettingItemClick(Sender: TObject);
setting, clonedSetting: TSmashSetting;
begin
clonedSetting := TSmashSetting.Create;
- setting := TSmashSetting(SmashSettings[lvSettings.Selected.Index]);
+ setting := TSmashSetting(SmashSettings[lvSettings.Selected.index]);
clonedSetting.Clone(setting);
SmashSettings.Add(clonedSetting);
// add setting to list view
@@ -1337,7 +1396,8 @@ procedure TSettingsManager.CombineSettingsItemClick(Sender: TObject);
try
// add selected settings to the settingsToCombine list
- for i := 0 to Pred(lvSettings.Items.Count) do begin
+ for i := 0 to Pred(lvSettings.Items.Count) do
+ begin
ListItem := lvSettings.Items[i];
if not ListItem.Selected then
continue;
@@ -1348,19 +1408,22 @@ procedure TSettingsManager.CombineSettingsItemClick(Sender: TObject);
// build a list of the record objects in the settings
// if conflicts found, have user resolve them
- if CombineSettingTrees(settingsToCombine, slRecords) then begin
+ if CombineSettingTrees(settingsToCombine, slRecords) then
+ begin
cForm := TConflictForm.Create(self);
cForm.slConflicts := slRecords;
if cForm.ShowModal = mrOK then
CreateCombinedSetting(slRecords, sl.DelimitedText);
end
// else just create the combined setting
- else begin
+ else
+ begin
CreateCombinedSetting(slRecords, sl.DelimitedText);
end;
finally
// update lvSettings if we created a new setting
- if SmashSettings.Count > lvSettings.Items.Count then begin
+ if SmashSettings.Count > lvSettings.Items.Count then
+ begin
setting := TSmashSetting(SmashSettings[Pred(SmashSettings.Count)]);
AddSettingItem(setting);
end;
diff --git a/frontend/msSmash.pas b/frontend/msSmash.pas
old mode 100644
new mode 100755
index dc5e225..186060b
--- a/frontend/msSmash.pas
+++ b/frontend/msSmash.pas
@@ -1,9 +1,7 @@
unit msSmash;
-
interface
-
uses
- Windows, SysUtils, Classes, ShellAPI, Controls, Dialogs,
+ Windows, SysUtils, Classes, ShellAPI, Controls, Dialogs, Generics.Collections,
// superobject
superobject,
// mte units
@@ -12,38 +10,38 @@ interface
msCore, msConfiguration, msConflict, msAlgorithm,
// xEdit units
wbInterface, wbImplementation;
-
- procedure BuildPatch(var patch: TPatch);
- procedure RebuildPatch(var patch: TPatch);
-
+procedure BuildPatch(var patch: TPatch);
+procedure RebuildPatch(var patch: TPatch);
implementation
-
procedure BuildPluginsList(var patch: TPatch; var lst: TList);
var
i: Integer;
plugin: TPlugin;
begin
- for i := 0 to Pred(patch.plugins.Count) do begin
+ for i := 0 to Pred(patch.plugins.Count) do
+ begin
plugin := PluginByFileName(patch.plugins[i]);
if not Assigned(plugin) then
- raise Exception.Create('Couldn''t find plugin '+patch.plugins[i]);
+ raise Exception.Create('Couldn''t find plugin ' + patch.plugins[i]);
lst.Add(plugin);
end;
end;
-
procedure SetPatchAttributes(var patch: TPatch);
var
patchFile: IwbFile;
- fileHeader: IwbContainer;
+ fileHeader: IwbMainRecord;
begin
patchFile := patch.plugin._File;
- fileHeader := patchFile.Elements[0] as IwbContainer;
+ fileHeader := patchFile.Elements[0] as IwbMainRecord;
// set author
- fileHeader.ElementEditValues['CNAM'] := 'Mator Smash v' + ProgramStatus.Version;
+ fileHeader.ElementEditValues['CNAM'] := 'Mator Smash v' +
+ ProgramStatus.Version;
// set description
- fileHeader.ElementEditValues['SNAM'] := 'Smashed patch:'#13#10 + patch.plugins.Text;
+ fileHeader.ElementEditValues['SNAM'] := 'Smashed patch:'#13#10 +
+ patch.plugins.Text;
+ // set ESL flag
+ fileHeader.IsESL := settings.flagESL;
end;
-
function GetPatchFile(var patch: TPatch; var lst: TList): IwbFile;
var
plugin: TPlugin;
@@ -53,192 +51,263 @@ function GetPatchFile(var patch: TPatch; var lst: TList): IwbFile;
begin
// get plugin if it exists
// else create it
- plugin := PluginByFilename(patch.filename);
+ plugin := PluginByFileName(patch.filename);
patch.plugin := nil;
- if Assigned(plugin) then begin
+ if Assigned(plugin) then
+ begin
bUsedExistingFile := true;
patch.plugin := plugin;
end
- else begin
+ else
+ begin
bUsedExistingFile := false;
patch.plugin := CreateNewPlugin(patch.filename);
end;
-
// don't patch if patchFile not assigned
- if not Assigned(patch.plugin) then
+ if not Assigned(patch.plugin) then
raise Exception.Create('Couldn''t assign patch file');
-
// don't patch if patchFile is at an invalid load order position relative
// to the plugins being patched
- if bUsedExistingFile then begin
- for i := 0 to Pred(lst.Count) do begin
+ if bUsedExistingFile then
+ begin
+ for i := 0 to Pred(lst.Count) do
+ begin
plugin := TPlugin(lst[i]);
if PluginsList.IndexOf(plugin) > PluginsList.IndexOf(patch.plugin) then
- raise Exception.Create(Format('%s is at a lower load order position than %s',
+ raise Exception.Create
+ (Format('%s is at a lower load order position than %s',
[plugin.filename, patch.filename]));
end;
-
// clean up the patch file
patchFile := patch.plugin._File;
for i := Pred(patchFile.RecordCount) downto 0 do
patchFile.Records[i].Remove;
end;
-
// set result
Result := patch.plugin._File;
Tracker.Write(' ');
- Tracker.Write('Patch is using plugin: '+patch.plugin.filename);
+ Tracker.Write('Patch is using plugin: ' + patch.plugin.filename);
+end;
+function CompareLoadOrder(List: TStringList; Index1, Index2: Integer): Integer;
+begin
+ if Index1 = Index2 then
+ begin
+ Result := 0;
+ Exit;
+ end;
+ Result := CmpI32(IwbFile(Pointer(List.Objects[Index1])).LoadOrder,
+ IwbFile(Pointer(List.Objects[Index2])).LoadOrder);
end;
-
-procedure AddRequiredMasters(var patch: TPatch; var lst: TList);
+procedure AddRequiredMasters(var aFile: IwbFile; const el: IwbElement);
var
slMasters: TStringList;
- i: Integer;
- plugin: TPlugin;
+ i, j: Integer;
begin
slMasters := TStringList.Create;
+ slMasters.Sorted := true;
+ slMasters.Duplicates := dupIgnore;
try
- Tracker.Write('Adding masters...');
- for i := 0 to Pred(lst.Count) do begin
- plugin := TPlugin(lst[i]);
- GetMasters(plugin._File, slMasters);
- slMasters.AddObject(plugin.filename, patch.plugins.Objects[i]);
- end;
try
- slMasters.CustomSort(LoadOrderCompare);
- AddMasters(patch.plugin._File, slMasters);
- if settings.debugMasters then begin
- Tracker.Write('Masters added:');
- Tracker.Write(slMasters.Text);
- slMasters.Clear;
- GetMasters(patch.plugin._File, slMasters);
- Tracker.Write('Actual masters:');
- Tracker.Write(slMasters.Text);
+ el.ReportRequiredMasters(slMasters, false, true, false);
+ if settings.debugMasters then
+ Tracker.Write(' Element ' + el.Name + ' from ' + el._File.filename +
+ ' requires masters: ' + slMasters.CommaText);
+ for i := 0 to Pred(aFile.MasterCount[true]) do
+ if slMasters.Find(aFile.Masters[i, true].filename, j) then
+ slMasters.Delete(j);
+ if slMasters.Find(aFile.filename, j) then
+ slMasters.Delete(j);
+ if slMasters.Count > 0 then
+ begin
+ for i := 0 to Pred(slMasters.Count) do
+ if IwbFile(Pointer(slMasters.Objects[i])).LoadOrder >= aFile.LoadOrder
+ then
+ raise Exception.Create('The required master "' + slMasters[i] +
+ '" can not be added to "' + aFile.filename +
+ '" as it has a higher load order');
+ slMasters.Sorted := false;
+ slMasters.CustomSort(CompareLoadOrder);
+ if (aFile.MasterCount[true] + slMasters.Count >= 253) then
+ aFile.CleanMasters;
+ aFile.AddMasters(slMasters);
+ Logger.Write('PATCH', 'MASTERS', 'Added masters: ' +
+ slMasters.CommaText);
+ if settings.debugMasters then
+ Tracker.Write(' Adding masters: ' + slMasters.CommaText);
end;
except
- on x: Exception do begin
+ on x: Exception do
+ begin
Tracker.Write('Critical exception adding masters!');
Tracker.Write(x.Message);
raise x;
end;
- end;
+ end
finally
slMasters.Free;
if Tracker.Cancel then
raise Exception.Create('User cancelled smashing.');
- Tracker.Write('Done adding masters');
end;
end;
-
+procedure ListParents(const rec: IwbMainRecord; var parents: TInterfaceList);
+var
+ grup: IwbGroupRecord;
+begin
+ if Supports(rec.Container, IwbGroupRecord, grup) and Assigned(grup.ChildrenOf)
+ then
+ begin
+ if parents.IndexOf(grup.ChildrenOf) = -1 then
+ begin
+ parents.Add(grup.ChildrenOf);
+ ListParents(grup.ChildrenOf, parents);
+ end
+ end;
+end;
+procedure AddParents(var patchFile: IwbFile; const rec: IwbElement);
+var
+ grup: IwbGroupRecord;
+begin
+ if Supports(rec.Container, IwbGroupRecord, grup) and Assigned(grup.ChildrenOf)
+ then
+ begin
+ if not Assigned(patchFile.RecordByFormID[grup.ChildrenOf.FormID,
+ true, true]) then
+ begin
+ AddParents(patchFile, grup.ChildrenOf);
+ Tracker.Write(Format(' Copying parent record %s of %s',
+ [grup.ChildrenOf.Name, rec.Name]));
+ AddRequiredMasters(patchFile, grup.ChildrenOf);
+ grup.ChildrenOf.CopyInto(patchFile, false, false, '',
+ '', '', '');
+ end
+ end;
+end;
procedure BuildOverridesList(var patch: TPatch; var lst: TList;
- var records: TInterfaceList);
+ var Records: TInterfaceList);
var
i, j, recCount: Integer;
plugin: TPlugin;
aSetting: TSmashSetting;
aFile: IwbFile;
- rec: IwbMainRecord;
+ rec, ovr: IwbMainRecord;
recObj: ISuperObject;
begin
Tracker.Write(' ');
Tracker.Write('Processing files');
- for i := 0 to Pred(lst.Count) do begin
- if Tracker.Cancel then break;
+ for i := 0 to Pred(lst.Count) do
+ begin
+ if Tracker.Cancel then
+ break;
plugin := TPlugin(lst[i]);
-
// get file and setting for later use
aFile := plugin._File;
aSetting := plugin.smashSetting;
-
+ Tracker.Write('Processing ' + aFile.Name);
// loop through file records
- Tracker.Write('Processing '+plugin.filename);
recCount := Pred(aFile.RecordCount);
- for j := 0 to recCount do begin
- if Tracker.Cancel then break;
- rec := aFile.Records[j];
- if j mod 500 = 499 then
- Tracker.UpdateProgress(500);
-
- try
- // skip non-override records
- if rec.IsMaster then
- continue;
+ if aFile.Name.EndsWith(csDotGhost) then begin
+ for j := 0 to recCount do begin
+ rec := aFile.Records[j];
+ // add parent record(s) to list first so they get smashed first?
+ ListParents(rec, Records);
rec := rec.Master;
-
- if OverrideCountInFiles(rec, patch.plugins) < 2 then
- continue;
-
- // skip records according to smash setting
- recObj := aSetting.GetRecordDef(rec.Signature);
- if not Assigned(recObj) then
- continue;
- if (recObj.I['p'] <> 1) then
- continue;
- // skip non-conflicting records
- if ConflictAllForMainRecord(rec) < caConflict then
- continue;
-
// add record to overrides list
- if records.IndexOf(rec) = -1 then
- records.Add(rec);
- except
- on x: Exception do begin
- Tracker.Write(' Error processing ' + rec.Name + ', ' + x.Message);
- continue;
+ if Records.IndexOf(rec) = -1 then
+ Records.Add(rec);
+ end;
+ // update progress bar for file
+ Tracker.UpdateProgress(recCount);
+ end
+ else begin
+ for j := 0 to recCount do
+ begin
+ if Tracker.Cancel then
+ break;
+ rec := aFile.Records[j];
+ ovr := rec;
+ if j mod 500 = 499 then
+ Tracker.UpdateProgress(500);
+ try
+ // skip non-override records
+ if rec.IsMaster then
+ continue;
+ rec := rec.Master;
+ {
+ if (OverrideCountInFiles(rec, patch.plugins) < 2) then
+ continue;
+ }
+ // skip records according to smash setting
+ recObj := aSetting.GetRecordDef(rec.Signature);
+ if not Assigned(recObj) then
+ continue;
+ if (recObj.i['p'] <> 1) then
+ continue;
+ // skip non-conflicting records
+ if ConflictAllForMainRecord(rec) < caConflict then
+ continue;
+ // add parent record(s) to list first so they get smashed first?
+ ListParents(ovr, Records);
+ // add record to overrides list
+ if Records.IndexOf(rec) = -1 then
+ Records.Add(rec);
+ except
+ on x: Exception do
+ begin
+ Tracker.Write(' Error processing ' + rec.Name + ', ' + x.Message);
+ continue;
+ end;
end;
end;
+ // update progress bar for file
+ Tracker.UpdateProgress(recCount mod 500);
end;
-
- // update progress bar for file
- Tracker.UpdateProgress(recCount mod 500);
end;
end;
-
procedure UpdateCounts(var rec: IwbMainRecord);
var
- container, arrayContainer: IwbContainerElementRef;
+ Container, arrayContainer: IwbContainerElementRef;
i: Integer;
element, nextElement: IwbElement;
begin
// if reocrd is not editable, exit
if not rec.IsEditable then
- exit;
-
+ Exit;
// if record can't be treated as a container, exit
- if not Supports(rec, IwbContainerElementRef, container) then
- exit;
-
+ if not Supports(rec, IwbContainerElementRef, Container) then
+ Exit;
// loop through top-level elements
- for i := 0 to container.ElementCount - 2 do begin
- element := container.Elements[i];
- nextElement := container.Elements[i + 1];
+ for i := 0 to Container.ElementCount - 2 do
+ begin
+ element := Container.Elements[i];
+ nextElement := Container.Elements[i + 1];
if not Supports(nextElement, IwbContainerElementRef, arrayContainer) then
continue;
-
// if next element is an array element and current element has the
// word count in its name update the count to be the number of elements
// in the array
- if (GetSmashType(nextElement) in stArrays)
- and (Pos('Count', element.Name) > 0) then try
- element.NativeValue := arrayContainer.ElementCount;
- except
- on x: Exception do
- Tracker.Write(' Exception updating count at '+element.Path);
- end;
+ if (GetSmashType(nextElement) in stArrays) and
+ (GetSmashType(element) = stInteger) and (Pos('Count', element.Name) > 0)
+ then
+ try
+ element.NativeValue := arrayContainer.ElementCount;
+ except
+ on x: Exception do
+ Tracker.Write(' Exception updating count at ' + element.FullPath);
+ end;
end;
end;
-
-function HasPartialFormFlag(rec: IwbMainRecord): Boolean;
+function HasPartialFormFlag(rec: IwbMainRecord): boolean;
begin
Result := ((rec.Signature = 'QUST') or (rec.Signature = 'LCTN')) and
(rec.Flags._Flags and $00004000 <> 0);
end;
-
-procedure SmashRecords(var patch: TPatch; var records: TInterfaceList);
+procedure SmashRecords(var patch: TPatch; var Records: TInterfaceList);
var
- i, j: Integer;
+ i, j, k, ndx: Integer;
incProgress, currentProgress: Real;
rec, mst, ovr, patchRec: IwbMainRecord;
+ msts: TList;
+ ovrs: TStringList;
f, patchFile, forceFile: IwbFile;
plugin: TPlugin;
aSetting: TSmashSetting;
@@ -249,111 +318,167 @@ procedure SmashRecords(var patch: TPatch; var records: TInterfaceList);
Tracker.Write(' ');
Tracker.Write('Smashing records');
patchFile := patch.plugin._File;
-
// loop through records to smash
currentProgress := Tracker.GetProgress;
- incProgress := (Tracker.GetMaxProgress - Tracker.GetProgress) / records.Count;
- for i := 0 to Pred(records.Count) do begin
- if Tracker.Cancel then break;
- if not Supports(records[i], IwbMainRecord, rec) then
- exit;
+ incProgress := (Tracker.GetMaxProgress - Tracker.GetProgress) / Records.Count;
+ for i := 0 to Pred(Records.Count) do
+ begin
+ if Tracker.Cancel then
+ break;
+ if not Supports(Records[i], IwbMainRecord, rec) then
+ Exit;
Tracker.StatusMessage(Format('Smashing records (%d/%d)',
- [i + 1, records.Count]));
+ [i + 1, Records.Count]));
currentProgress := currentProgress + incProgress;
Tracker.SetProgress(Round(currentProgress));
-
- // loop through record's overrides
- patchRec := nil;
- forceFile := nil;
- for j := 0 to Pred(rec.OverrideCount) do begin
- if Tracker.Cancel then break;
- ovr := rec.Overrides[j];
- f := ovr._File;
- // skip overrides that are in plugins we aren't patching
- if patch.plugins.IndexOf(f.FileName) = -1 then
- continue;
- plugin := PluginByFileName(f.FileName);
- if not Assigned(plugin) then
- continue;
- // skip ctIdenticalToMaster overrides
- if (ConflictThisForMainRecord(ovr) = ctIdenticalToMaster) then
- continue;
-
- // skip plugins that have the skip setting
- if plugin.setting = 'Skip' then
- continue;
-
- // skip overrides according to smash setting
- aSetting := plugin.smashSetting;
- recObj := aSetting.GetRecordDef(ovr.Signature);
- if not Assigned(recObj) then
- continue;
- if (recObj.I['p'] <> 1) then
- continue;
- bForce := recObj.I['f'] = 1;
- if bForce then begin
- if Assigned(patchRec) then begin
- patchRec.Remove;
- patchRec := nil;
- end;
- forceFile := f;
+ // loop through record's overrides to find which ones to smash
+ ovrs := TStringList.Create;
+ try
+ for j := 0 to Pred(rec.OverrideCount) do
+ begin
+ ovr := rec.Overrides[j];
+ f := ovr._File;
+ // skip overrides that are in plugins we aren't patching
+ if patch.plugins.IndexOf(f.filename) = -1 then
+ continue;
+ plugin := PluginByFileName(f.filename);
+ if not Assigned(plugin) then
+ continue;
+ // skip plugins that have the skip setting
+ if plugin.setting = 'Skip' then
+ continue;
+ // skip overrides according to smash setting
+ aSetting := plugin.smashSetting;
+ recObj := aSetting.GetRecordDef(ovr.Signature);
+ if not Assigned(recObj) then
+ continue;
+ if (recObj.i['p'] <> 1) then
+ continue;
+ // this is an override to smash
+ ovrs.AddObject(f.Name, Pointer(ovr));
+ // don't bother to smash this override's masters?
+ for k := 0 to Pred(f.MasterCount[false]) do
+ if ovrs.Find(f.Masters[k,false].Name, ndx) then
+ ovrs.Delete(ndx);
end;
-
- // copy record to smashed patch if it hasn't been copied yet
- if not Assigned(patchRec) then try
- if bForce then
- e := ovr
- else
- e := WinningOverrideInFiles(rec, patch.plugins);
- Tracker.Write(Format(' [%d] Copying record %s', [i + 1, e.Name]));
- eCopy := wbCopyElementToFile(e, patchFile, false, true, '', '' ,'');
- patchRec := eCopy as IwbMainRecord;
- if bForce then continue;
- except
- on x: Exception do begin
- Tracker.Write(' Exception copying record '+ovr.Name+' : '+x.Message);
- patch.fails.Add('Exception copying record '+ovr.Name+' : '+x.Message);
+ // If only one override to smash just copy it in
+ if ovrs.Count = 1 then begin
+ ovr := IwbMainRecord(Pointer(ovrs.Objects[0]));
+ {
+ if ovr.IsWinningOverride then
continue;
+ }
+ try
+ // be sure we include the parent?
+ AddParents(patchFile, ovr);
+ Tracker.Write(Format(' [%d] Copying record %s from %s',
+ [i + 1, ovr.Name, ovr._File.Name]));
+ AddRequiredMasters(patchFile, ovr);
+ ovr.CopyInto(patchFile, false, false, '', '', '', '');
+ except
+ on x: Exception do
+ begin
+ Tracker.Write(' Exception copying record ' + e.Name +
+ ' from file ' + e._File.filename + ': ' + x.Message);
+ patch.fails.Add('Exception copying record ' + ovr.Name + ' : ' +
+ x.Message);
+ end;
end;
- end;
-
- // skip if we're forcing and plugin doesn't require forceFile
- if Assigned(forceFile) and not bForce
- and (plugin.masters.IndexOf(forceFile.FileName) = -1) then
continue;
-
- // finally, recursively copy overridden elements
- try
- bDeletions := recObj.I['d'] = 1;
- if (wbGameMode = gmFO4) and HasPartialFormFlag(ovr) then
- bDeletions := False;
- bOverride := recObj.I['o'] = 1;
+ end;
+ // loop through overrides to smash
+ patchRec := nil;
+ forceFile := nil;
+ for j := 0 to Pred(ovrs.Count) do
+ begin
+ if Tracker.Cancel then
+ break;
+ ovr := IwbMainRecord(Pointer(ovrs.Objects[j]));
+ f := ovr._File;
+ bForce := recObj.i['f'] = 1;
if bForce then
- mst := e as IwbMainRecord
- else
- mst := WinningOverrideInFiles(rec, plugin.masters);
- Tracker.Write(Format(' Smashing override from: %s, master: %s',
- [f.FileName, mst._File.FileName]));
- rcore(IwbElement(ovr), IwbElement(mst), IwbElement(patchRec), patchRec,
- recObj, false, bDeletions, bOverride);
- except
- on x: Exception do begin
- Tracker.Write(' Exception smashing record: '+ovr.Name+' : '+x.Message);
- patch.fails.Add('Exception smashing record: '+ovr.Name+' : '+x.Message);
+ begin
+ if Assigned(patchRec) then
+ begin
+ patchRec.Remove;
+ patchRec := nil;
+ end;
+ forceFile := f;
end;
+ // copy record to smashed patch if it hasn't been copied yet
+ if not Assigned(patchRec) then
+ try
+ if bForce then
+ e := ovr
+ else
+ e := WinningOverrideInFiles(rec, patch.plugins);
+ // be sure we include the parent?
+ AddParents(patchFile, e);
+ Tracker.Write(Format(' [%d] Copying record %s from %s',
+ [i + 1, e.Name, e._File.Name]));
+ AddRequiredMasters(patchFile, e);
+ eCopy := e.CopyInto(patchFile, false, false, '', '', '', '');
+ patchRec := eCopy as IwbMainRecord;
+ if bForce then
+ continue;
+ except
+ on x: Exception do
+ begin
+ Tracker.Write(' Exception copying record ' + e.Name +
+ ' from file ' + e._File.filename + ': ' + x.Message);
+ patch.fails.Add('Exception copying record ' + ovr.Name + ' : ' +
+ x.Message);
+ continue;
+ end;
+ end;
+ // skip if we're forcing and plugin doesn't require forceFile
+ if Assigned(forceFile) and not bForce and
+ (plugin.Masters.IndexOf(forceFile.filename) = -1) then
+ continue;
+ // finally, recursively copy overridden elements
+ try
+ bDeletions := recObj.i['d'] = 1;
+ if (wbGameMode = gmFO4) and HasPartialFormFlag(ovr) then
+ bDeletions := false;
+ bOverride := recObj.i['o'] = 1;
+ msts := TList.Create;
+ try
+ if bForce then
+ msts.Add(e as IwbMainRecord)
+ else
+ OverridesInMasters(ovr, msts);
+ for k := 0 to Pred(msts.Count) do begin
+ mst := msts.Items[k];
+ Tracker.Write(Format(' Smashing override of %s from: %s, master: %s',
+ [ovr.Name, f.filename, mst._File.filename]));
+ AddRequiredMasters(patch.plugin._File, ovr);
+ rcore(IwbElement(ovr), IwbElement(mst), IwbElement(patchRec), patchRec,
+ recObj, false, bDeletions, bOverride);
+ end;
+ finally
+ msts.Free;
+ end
+ except
+ on x: Exception do
+ begin
+ Tracker.Write(' Exception smashing record: ' + ovr.Name + ' : ' +
+ x.Message);
+ patch.fails.Add('Exception smashing record: ' + ovr.Name + ' : ' +
+ x.Message);
+ end;
+ end;
+ // update any count elements on the record
+ UpdateCounts(patchRec);
end;
-
- // update any count elements on the record
- UpdateCounts(patchRec);
+ finally
+ ovrs.Free;
end;
end;
end;
-
-function IsChildGroup(group: IwbGroupRecord): Boolean;
+function IsChildGroup(group: IwbGroupRecord): boolean;
begin
- Result := group.GroupType in [1,6,7];
+ Result := group.GroupType in [1, 6, 7];
end;
-
function NativeContainer(element: IwbElement): IwbContainer;
var
group: IwbGroupRecord;
@@ -365,33 +490,29 @@ function NativeContainer(element: IwbElement): IwbContainer;
if not Assigned(Result) then
raise Exception.Create('Could not find container for ' + element.Name);
end;
-
procedure RemoveEmptyContainers(aContainer: IwbContainer);
var
- container, nextContainer: IwbContainer;
+ Container, nextContainer: IwbContainer;
rec: IwbMainRecord;
- bITM, bITPO: Boolean;
+ bITM, bITPO: boolean;
begin
- container := aContainer;
+ Container := aContainer;
// traverse up container until we find an IwbMainRecord
- while Assigned(container) and
- not Supports(container, IwbMainRecord, rec) do begin
+ while Assigned(Container) and not Supports(Container, IwbMainRecord, rec) do
+ begin
// break if container still has elements in it
- if container.ElementCount > 0 then
- exit;
-
+ if Container.ElementCount > 0 then
+ Exit;
// else remove it and traverse up to next container
- nextContainer := NativeContainer(container);
- container.Remove;
- container := nextContainer;
+ nextContainer := NativeContainer(Container);
+ Container.Remove;
+ Container := nextContainer;
end;
-
// exit if record is not ITM or ITPO
bITM := IsITM(rec);
bITPO := IsITPO(rec);
- if not (bITM or bITPO) then
- exit;
-
+ if not(bITM or bITPO) then
+ Exit;
// else remove MainRecord and recurse
if bITM then
Tracker.Write(' Removing ITM: ' + rec.Name)
@@ -401,76 +522,132 @@ procedure RemoveEmptyContainers(aContainer: IwbContainer);
rec.Remove;
RemoveEmptyContainers(nextContainer);
end;
-
+function FindITPO(e: IwbMainRecord): boolean;
+begin
+ // skip master records
+ if e.IsMaster then
+ Exit(false);
+ // skip records that have elements in child group (WRLD, CELL, DIAL)
+ if Assigned(e.ChildGroup) and (e.ChildGroup.ElementCount > 0) then
+ Exit(false);
+ // remove record if no conflicts
+ if not IsITPO(e) then
+ Exit(false);
+ Result := true;
+ Tracker.Write(' Removing ITPO: ' + e.Name);
+end;
+type
+ TITPOThread = class(TThread)
+ private
+ Fe: IwbMainRecord;
+ procedure Execute; override;
+ public
+ constructor Create(const e: IwbMainRecord);
+ property ReturnValue;
+ end;
+constructor TITPOThread.Create;
+begin
+ inherited Create(false);
+ Fe := e;
+end;
+procedure TITPOThread.Execute;
+begin
+ if FindITPO(Fe) then
+ ReturnValue := 1
+ else
+ ReturnValue := 0;
+end;
procedure RemoveITPOs(aFile: IwbFile);
var
i, CountITPO: Integer;
- e, m: IwbMainRecord;
- container: IwbContainer;
+ e: IwbMainRecord;
+ Container: IwbContainer;
ITPOs: TDynMainRecords;
+ ThreadRefs: array of TITPOThread;
+ ThreadHandles: array of THandle;
begin
Tracker.Write(' ');
Tracker.Write('Removing ITPO records from patch');
CountITPO := 0;
-
- // loop through file's records
- for i := Pred(aFile.RecordCount) downto 0 do begin
- if Tracker.Cancel then break;
- e := aFile.Records[i];
- m := e.MasterOrSelf;
-
- // skip master records
- if e.IsMaster then
- continue;
-
- // skip records that have elements in child group (WRLD, CELL, DIAL)
- if Assigned(e.ChildGroup) and (e.ChildGroup.ElementCount > 0) then
- continue;
-
- // remove record if no conflicts
- if IsITPO(e) then begin
- Tracker.Write(' Removing ITPO: ' + e.Name);
-
- // add ITPO to list of records to remove
- SetLength(ITPOs, CountITPO + 1);
- ITPOs[CountITPO] := e;
- Inc(CountITPO);
+ if settings.multiThreadedSmash then
+ begin
+ SetLength(ThreadRefs, aFile.RecordCount);
+ SetLength(ThreadHandles, aFile.RecordCount);
+ // loop through file's records
+ for i := Pred(aFile.RecordCount) downto 0 do
+ begin
+ if Tracker.Cancel then
+ break;
+ e := aFile.Records[i];
+ ThreadRefs[i] := TITPOThread.Create(e);
+ ThreadHandles[i] := ThreadRefs[i].Handle;
+ end;
+ // Wait for Threads
+ WaitForMultipleObjects(Length(ThreadRefs), Pointer(ThreadHandles), true,
+ INFINITE);
+ // loop through threads and get results
+ for i := Pred(Length(ThreadRefs)) downto 0 do
+ begin
+ // remove record if no conflicts
+ if ThreadRefs[i].ReturnValue = 1 then
+ begin
+ // add ITPO to list of records to remove
+ SetLength(ITPOs, CountITPO + 1);
+ ITPOs[CountITPO] := e;
+ Inc(CountITPO);
+ end;
+ end;
+ end
+ else
+ begin
+ // loop through file's records
+ for i := Pred(aFile.RecordCount) downto 0 do
+ begin
+ e := aFile.Records[i];
+ if FindITPO(e) then
+ begin
+ // add ITPO to list of records to remove
+ SetLength(ITPOs, CountITPO + 1);
+ ITPOs[CountITPO] := e;
+ Inc(CountITPO);
+ end;
end;
end;
-
// remove the records
- for i := Pred(Length(ITPOs)) downto 0 do begin
+ for i := Pred(Length(ITPOs)) downto 0 do
+ begin
e := ITPOs[i];
- container := e.Container;
+ Container := e.Container;
e.Remove;
try
- RemoveEmptyContainers(container);
+ RemoveEmptyContainers(Container);
except
on x: Exception do
- Tracker.Write(' Exception removing empty containers: '+x.Message);
+ Tracker.Write(' Exception removing empty containers: ' +
+ x.Message);
end;
end;
-
// finalization message
Tracker.Write(Format(' Removed %d ITPO records', [CountITPO]));
end;
-
procedure CleanPatch(var patch: TPatch);
var
patchFile: IwbFile;
begin
patchFile := patch.plugin._File;
-
- // remove ITPOs
try
+ // remove ITPOs
if not settings.preserveITPOs then
RemoveITPOs(patchFile);
+ // Mator didn't like cleaning the masters unnecessarily
+ // patchFIle.CleanMasters;
except
on x: Exception do
- Tracker.Write(' Exception removing ITPOs: '+x.Message);
+ Tracker.Write(' Exception removing ITPOs: ' + x.Message);
end;
+ Tracker.Write('Sorting patch masters according to current load order');
+ patchFile.SortMasters;
end;
-
procedure SavePatchFiles(var patch: TPatch);
var
patchFilePrefix, patchPath: string;
@@ -478,21 +655,17 @@ procedure SavePatchFiles(var patch: TPatch);
// update patch plugin hashes and settings
patch.UpdateHashes;
patch.UpdateSettings;
-
// get path to save file at
patchPath := patch.dataPath + 'smash\';
ForceDirectories(patchPath);
-
// save patch plugin
patch.plugin.dataPath := patch.dataPath;
patch.plugin.Save;
-
// save files, fails, plugins
patchFilePrefix := patchPath + ChangeFileExt(patch.filename, '');
- patch.fails.SaveToFile(patchFilePrefix+'_fails.txt');
- patch.plugins.SaveToFile(patchFilePrefix+'_plugins.txt');
+ patch.fails.SaveToFile(patchFilePrefix + '_fails.txt');
+ patch.plugins.SaveToFile(patchFilePrefix + '_plugins.txt');
end;
-
procedure BuildPatch(var patch: TPatch);
var
patchFile: IwbFile;
@@ -502,69 +675,57 @@ procedure BuildPatch(var patch: TPatch);
msg: string;
begin
// initialize
- Tracker.Write('Building patch: '+patch.name);
+ Tracker.Write('Building patch: ' + patch.Name);
time := Now;
patch.fails.Clear;
pluginsToPatch := TList.Create;
msg := 'User cancelled smashing patches.';
-
try
// build list of plugins to patch
BuildPluginsList(patch, pluginsToPatch);
HandleCanceled(msg);
-
// identify or create patch file
patchFile := GetPatchFile(patch, pluginsToPatch);
SetPatchAttributes(patch);
-
// add masters to patch file
- AddRequiredMasters(patch, pluginsToPatch);
- HandleCanceled(msg);
-
+ // AddRequiredMasters(patch, pluginsToPatch);
+ // HandleCanceled(msg);
// build list of overrides
recordsList := TInterfaceList.Create;
BuildOverridesList(patch, pluginsToPatch, recordsList);
HandleCanceled(msg);
-
// stop smashing if no records to smash
if recordsList.Count = 0 then
- raise Exception.create('No records to patch!');
-
+ raise Exception.Create('No records to patch!');
// smash records
SmashRecords(patch, recordsList);
HandleCanceled(msg);
-
// clean patch (ITPOs)
CleanPatch(patch);
-
// save patch and associated files
SavePatchFiles(patch);
-
// update statistics
if patch.status = psBuildReady then
Inc(sessionStatistics.pluginsPatched, patch.plugins.Count);
Inc(sessionStatistics.patchesBuilt);
-
// finalization messages
time := (Now - time) * 86400;
patch.dateBuilt := Now;
patch.status := psUpToDate;
- Tracker.Write(Format('Done smashing %s (%.3f)', [patch.name, Real(time)]));
+ Tracker.Write(Format('Done smashing %s (%.3f)', [patch.Name, Real(time)]));
except
- on x: Exception do begin
+ on x: Exception do
+ begin
patch.status := psFailed;
- Tracker.Write(Format('Failed to patch %s, %s', [patch.name, x.Message]));
+ Tracker.Write(Format('Failed to patch %s, %s', [patch.Name, x.Message]));
end;
end;
-
// clean up
TryToFree(pluginsToPatch);
TryToFree(recordsList);
end;
-
procedure RebuildPatch(var patch: TPatch);
begin
BuildPatch(patch);
end;
-
end.
diff --git a/frontend/msSmashForm.dfm b/frontend/msSmashForm.dfm
old mode 100644
new mode 100755
index c6f2153..b4c629f
--- a/frontend/msSmashForm.dfm
+++ b/frontend/msSmashForm.dfm
@@ -163,10 +163,6 @@ object SmashForm: TSmashForm
object PatchesTabSheet: TTabSheet
Caption = 'Patches'
ImageIndex = 1
- ExplicitLeft = 0
- ExplicitTop = 0
- ExplicitWidth = 0
- ExplicitHeight = 0
object PatchesListView: TListView
Left = 3
Top = 3
@@ -216,10 +212,6 @@ object SmashForm: TSmashForm
object LogTabSheet: TTabSheet
Caption = 'Log'
ImageIndex = 2
- ExplicitLeft = 0
- ExplicitTop = 0
- ExplicitWidth = 0
- ExplicitHeight = 0
object LogListView: TListView
Left = 3
Top = 3
@@ -525,7 +517,7 @@ object SmashForm: TSmashForm
Left = 1048
Top = 8
Bitmap = {
- 494C010105001400CC0240002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010105001400040040002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000000100004000000001002000000000000000
0100000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000E2E2
diff --git a/frontend/msSmashForm.pas b/frontend/msSmashForm.pas
old mode 100644
new mode 100755
index 8494932..d6a0d66
--- a/frontend/msSmashForm.pas
+++ b/frontend/msSmashForm.pas
@@ -18,83 +18,83 @@ interface
msCore, msConfiguration, msLoader, msThreads, msOptionsForm,
msEditForm, msSettingsManager, msTagManager, msSplashForm,
// tes5edit units
- wbBSA, wbHelpers, wbInterface, wbImplementation;
+ wbBSA, wbHelpers, wbInterface, wbImplementation, System.ImageList;
type
TSmashForm = class(TForm)
[FormPrefix('msMain')]
- XPManifest: TXPManifest;
- IconList: TImageList;
- TaskTimer: TTimer;
- [FormSection('QuickBar')]
- QuickBar: TPanel;
- QuickButton: TSpeedButton;
- NewButton: TSpeedButton;
- BuildButton: TSpeedButton;
- ManageButton: TSpeedButton;
- OptionsButton: TSpeedButton;
- bhQuick: TBalloonHint;
- bhNew: TBalloonHint;
- bhBuild: TBalloonHint;
- bhManage: TBalloonHint;
- bhOptions: TBalloonHint;
- [FormSection('Main Panel')]
- MainPanel: TPanel;
- Splitter: TSplitter;
- PageControl: TPageControl;
- DetailsPanel: TPanel;
- [FormSection('Details Panel')]
- DetailsLabel: TLabel;
- DetailsGrid: TStringGrid;
- DetailsPopupMenu: TPopupMenu;
- DetailsCopyToClipboardItem: TMenuItem;
- [FormSection('Plugins Tab')]
- PluginsTabSheet: TTabSheet;
- PluginsListView: TListView;
- [FormSection('Plugins Popup Menu')]
- PluginsPopupMenu: TPopupMenu;
- AddToPatchItem: TMenuItem;
- RemoveFromPatchItem: TMenuItem;
- TagsItem: TMenuItem;
- ManageTagsItem: TMenuItem;
- ApplySettingTagsItem: TMenuItem;
- ClearTagsItem: TMenuItem;
- OpenPluginLocationItem: TMenuItem;
- SmashSettingItem: TMenuItem;
- [FormSection('Patches Tab')]
- PatchesTabSheet: TTabSheet;
- PatchesListView: TListView;
- [FormSection('Patches Popup Menu')]
- PatchesPopupMenu: TPopupMenu;
- ToggleRebuildItem: TMenuItem;
- OpenInExplorerItem: TMenuItem;
- BuildPatchItem: TMenuItem;
- EditPatchItem: TMenuItem;
- RemoveUnloadedPluginsItem: TMenuItem;
- DeletePatchItem: TMenuItem;
- [FormSection('Move Submenu')]
- MoveItem: TMenuItem;
- UpItem: TMenuItem;
- DownItem: TMenuItem;
- ToTopItem: TMenuItem;
- ToBottomItem: TMenuItem;
- [FormSection('Log Tab')]
- LogTabSheet: TTabSheet;
- LogListView: TListView;
- [FormSection('Log Popup Menu')]
- LogPopupMenu: TPopupMenu;
- FilterGroupItem: TMenuItem;
- FilterLabelItem: TMenuItem;
- CopyToClipboardItem: TMenuItem;
- SaveAndClearItem: TMenuItem;
- ToggleAutoScrollItem: TMenuItem;
- [FormSection('Status Bar')]
- StatusPanel: TPanel;
- StatusPanelMessage: TPanel;
- StatusPanelLanguage: TPanel;
- StatusPanelVersion: TPanel;
- ImageBuild: TImage;
- bhLoadException: TBalloonHint;
+ XPManifest: TXPManifest;
+ IconList: TImageList;
+ TaskTimer: TTimer;
+ [FormSection('QuickBar')]
+ QuickBar: TPanel;
+ QuickButton: TSpeedButton;
+ NewButton: TSpeedButton;
+ BuildButton: TSpeedButton;
+ ManageButton: TSpeedButton;
+ OptionsButton: TSpeedButton;
+ bhQuick: TBalloonHint;
+ bhNew: TBalloonHint;
+ bhBuild: TBalloonHint;
+ bhManage: TBalloonHint;
+ bhOptions: TBalloonHint;
+ [FormSection('Main Panel')]
+ MainPanel: TPanel;
+ Splitter: TSplitter;
+ PageControl: TPageControl;
+ DetailsPanel: TPanel;
+ [FormSection('Details Panel')]
+ DetailsLabel: TLabel;
+ DetailsGrid: TStringGrid;
+ DetailsPopupMenu: TPopupMenu;
+ DetailsCopyToClipboardItem: TMenuItem;
+ [FormSection('Plugins Tab')]
+ PluginsTabSheet: TTabSheet;
+ PluginsListView: TListView;
+ [FormSection('Plugins Popup Menu')]
+ PluginsPopupMenu: TPopupMenu;
+ AddToPatchItem: TMenuItem;
+ RemoveFromPatchItem: TMenuItem;
+ TagsItem: TMenuItem;
+ ManageTagsItem: TMenuItem;
+ ApplySettingTagsItem: TMenuItem;
+ ClearTagsItem: TMenuItem;
+ OpenPluginLocationItem: TMenuItem;
+ SmashSettingItem: TMenuItem;
+ [FormSection('Patches Tab')]
+ PatchesTabSheet: TTabSheet;
+ PatchesListView: TListView;
+ [FormSection('Patches Popup Menu')]
+ PatchesPopupMenu: TPopupMenu;
+ ToggleRebuildItem: TMenuItem;
+ OpenInExplorerItem: TMenuItem;
+ BuildPatchItem: TMenuItem;
+ EditPatchItem: TMenuItem;
+ RemoveUnloadedPluginsItem: TMenuItem;
+ DeletePatchItem: TMenuItem;
+ [FormSection('Move Submenu')]
+ MoveItem: TMenuItem;
+ UpItem: TMenuItem;
+ DownItem: TMenuItem;
+ ToTopItem: TMenuItem;
+ ToBottomItem: TMenuItem;
+ [FormSection('Log Tab')]
+ LogTabSheet: TTabSheet;
+ LogListView: TListView;
+ [FormSection('Log Popup Menu')]
+ LogPopupMenu: TPopupMenu;
+ FilterGroupItem: TMenuItem;
+ FilterLabelItem: TMenuItem;
+ CopyToClipboardItem: TMenuItem;
+ SaveAndClearItem: TMenuItem;
+ ToggleAutoScrollItem: TMenuItem;
+ [FormSection('Status Bar')]
+ StatusPanel: TPanel;
+ StatusPanelMessage: TPanel;
+ StatusPanelLanguage: TPanel;
+ StatusPanelVersion: TPanel;
+ ImageBuild: TImage;
+ bhLoadException: TBalloonHint;
// SMASH FORM EVENTS
procedure UpdateLog;
@@ -106,7 +106,7 @@ TSmashForm = class(TForm)
procedure LoaderStatus(s: string);
procedure LoaderDone;
procedure FormDestroy(Sender: TObject);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
+ procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure SaveDone;
procedure ProgressDone;
function ShouldDisplay(bh: TBalloonHint): boolean;
@@ -132,7 +132,8 @@ TSmashForm = class(TForm)
Rect: TRect; State: TGridDrawState);
// PLUGINS LIST VIEW EVENTS
procedure UpdatePluginDetails;
- procedure AddPluginToPatch(var plugin: TPlugin; var patch: TPatch; i: Integer);
+ procedure AddPluginToPatch(var plugin: TPlugin; var patch: TPatch;
+ i: Integer);
procedure AddPluginsToPatch(var patch: TPatch);
procedure ChangePatchSetting(aSetting: TSmashSetting);
procedure PluginsListViewChange(Sender: TObject; Item: TListItem;
@@ -179,7 +180,8 @@ TSmashForm = class(TForm)
procedure ToBottomItemClick(Sender: TObject);
// LOG LIST VIEW EVENTS
procedure LogListViewData(Sender: TObject; Item: TListItem);
- procedure LogListViewDrawItem(Sender: TCustomListView; Item: TListItem; Rect: TRect; State: TOwnerDrawState);
+ procedure LogListViewDrawItem(Sender: TCustomListView; Item: TListItem;
+ Rect: TRect; State: TOwnerDrawState);
// LOG POPUP MENU EVENTS
procedure LogPopupMenuPopup(Sender: TObject);
procedure ToggleGroupFilter(Sender: TObject);
@@ -222,9 +224,7 @@ TSmashForm = class(TForm)
implementation
{$R *.dfm}
-
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Patch Form Events
Events for the Patch Form.
- UpdateLog
@@ -235,7 +235,7 @@ implementation
- LoaderDone
- FormClose
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSmashForm.UpdateLog;
var
@@ -244,9 +244,10 @@ procedure TSmashForm.UpdateLog;
LogListView.Items.Count := Log.Count;
bLogActive := PageControl.ActivePage = LogTabSheet;
// autoscroll if active
- if bAutoScroll and bLogActive then begin
- //LogListView.ClearSelection;
- //LogListView.Items[Pred(LogListView.Items.Count)].MakeVisible(false);
+ if bAutoScroll and bLogActive then
+ begin
+ // LogListView.ClearSelection;
+ // LogListView.Items[Pred(LogListView.Items.Count)].MakeVisible(false);
SendMessage(LogListView.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
end;
// correct width if active
@@ -259,14 +260,13 @@ procedure TSmashForm.LogMessage(const group, &label, text: string);
var
msg: TLogMessage;
begin
- msg := TLogMessage.Create(
- FormatDateTime('hh:nn:ss', Now),
- FormatDateTime('hh:nn:ss', Now - AppStartTime),
- group, &label, text);
+ msg := TLogMessage.Create(FormatDateTime('hh:nn:ss', Now),
+ FormatDateTime('hh:nn:ss', Now - AppStartTime), group, &label, text);
BaseLog.Add(msg);
// if message is enabled, add to log
- if MessageEnabled(msg) then begin
+ if MessageEnabled(msg) then
+ begin
Log.Add(msg);
// if patch form is created, update log list view
if bCreated then
@@ -332,15 +332,16 @@ procedure TSmashForm.FormCreate(Sender: TObject);
AppStartTime := Now;
InitLog;
Logger.OnLogEvent := LogMessage;
- //bAutoScroll := true;
+ // bAutoScroll := true;
InitializeTaskbarAPI;
SetTaskbarProgressState(tbpsIndeterminate);
xEditLogGroup := 'LOAD';
xEditLogLabel := 'Plugins';
- wbProgressCallback := ProgressMessage;
+ _wbProgressCallback := ProgressMessage;
StatusCallback := LoaderStatus;
- if not InitBase then begin
+ if not InitBase then
+ begin
ProgramStatus.bClose := true;
exit;
end;
@@ -391,7 +392,8 @@ procedure TSmashForm.ToggleFormState(bEnabled: boolean);
procedure TSmashForm.WMSize(var AMessage: TMessage);
begin
- if bCreated and (Now - LastMessageTime > MessageDelay) then begin
+ if bCreated and (Now - LastMessageTime > MessageDelay) then
+ begin
LastMessageTime := Now;
if (AMessage.WParam <> SIZE_MINIMIZED) then
DisplayHints;
@@ -401,7 +403,8 @@ procedure TSmashForm.WMSize(var AMessage: TMessage);
procedure TSmashForm.WMMove(var AMessage: TMessage);
begin
- if bCreated and (Now - LastMessageTime > MessageDelay) then begin
+ if bCreated and (Now - LastMessageTime > MessageDelay) then
+ begin
LastMessageTime := Now;
if (AMessage.WParam <> SIZE_MINIMIZED) then
DisplayHints;
@@ -411,7 +414,8 @@ procedure TSmashForm.WMMove(var AMessage: TMessage);
procedure TSmashForm.WMActivateApp(var AMessage: TMessage);
begin
- if bCreated and (Now - LastMessageTime > MessageDelay) then begin
+ if bCreated and (Now - LastMessageTime > MessageDelay) then
+ begin
LastMessageTime := Now;
if AMessage.WParam = 1 then
DisplayHints
@@ -430,18 +434,23 @@ procedure TSmashForm.InitDone;
procedure TSmashForm.FormShow(Sender: TObject);
begin
// CLOSE IF PLUGIN SELECTION CANCELED
- if ProgramStatus.bClose then begin
+ if ProgramStatus.bClose then
+ begin
bClosing := true;
Close;
exit;
end;
// DISABLE GUI IF INITIALIZATION EXCEPTION
- if ProgramStatus.bInitException then begin
+ if ProgramStatus.bInitException then
+ begin
StatusPanelMessage.Caption := 'The application failed to initialize';
- Logger.Write('ERROR', 'Load', 'There was an exception initializing the application');
- Logger.Write('ERROR', 'Load', 'Review your log messages to resolve the issue');
- Logger.Write('ERROR', 'Load', 'You can also change the program''s settings, if necessary');
+ Logger.Write('ERROR', 'Load',
+ 'There was an exception initializing the application');
+ Logger.Write('ERROR', 'Load',
+ 'Review your log messages to resolve the issue');
+ Logger.Write('ERROR', 'Load',
+ 'You can also change the program''s settings, if necessary');
PluginsTabSheet.Enabled := false;
PluginsTabSheet.TabVisible := false;
PatchesTabSheet.Enabled := false;
@@ -473,9 +482,10 @@ procedure TSmashForm.FormShow(Sender: TObject);
UpdatePatches;
UpdatePluginsPopupMenu;
UpdateStatusBar;
- UpdateQuickBar;
+ UpdateQuickbar;
- if not ProgramStatus.bInitException then begin
+ if not ProgramStatus.bInitException then
+ begin
// START BACKGROUND LOADER
LoaderCallback := LoaderDone;
SetTaskbarProgressState(tbpsIndeterminate);
@@ -494,7 +504,8 @@ procedure TSmashForm.FormShow(Sender: TObject);
// initialize task handler
TaskHandler := TTaskHandler.Create;
bLogTasks := false;
- TaskHandler.AddTask(TTask.Create('Disable Hints', 12.0 * seconds, DisableHints));
+ TaskHandler.AddTask(TTask.Create('Disable Hints', 12.0 * seconds,
+ DisableHints));
TaskHandler.AddTask(TTask.Create('Refresh GUI', 3.0 * seconds, RefreshGUI));
TaskTimer.Enabled := true;
end;
@@ -519,21 +530,22 @@ procedure TSmashForm.LoaderDone;
SetTaskbarProgressState(tbpsNone);
xEditLogGroup := 'GENERAL';
xEditLogLabel := 'xEdit';
- FlashWindow(Application.Handle, True);
+ FlashWindow(Application.Handle, true);
UpdateQuickbar;
end;
-procedure TSmashForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
+procedure TSmashForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
begin
CanClose := ProgramStatus.bClose;
- if not bClosing then begin
+ if not bClosing then
+ begin
bClosing := true;
Enabled := false;
// show progress form
- pForm := TProgressForm.Create(Self);
- pForm.pfLogPath := LogPath + 'save\';
- pForm.PopupParent := Self;
+ pForm := TProgressForm.Create(self);
+ //pForm.pfLogPath := LogPath + 'save\';
+ pForm.PopupParent := self;
pForm.Caption := GetLanguageString('msProg_Closing');
pForm.SetMaxProgress(PluginsList.Count + PatchesList.Count + 2);
pForm.Show;
@@ -549,15 +561,17 @@ procedure TSmashForm.SaveDone;
begin
// clean up pForm, close form
pForm.SetProgress(pForm.ProgressBar.Max);
- pForm.SaveLog;
+ //pForm.SaveLog;
pForm.Free;
// restart program if update applied
if ProgramStatus.bInstallUpdate then
- ShellExecute(Application.Handle, 'runas', PChar(ParamStr(0)), '', '', SW_SHOWNORMAL);
+ ShellExecute(Application.Handle, 'runas', PChar(ParamStr(0)), '', '',
+ SW_SHOWNORMAL);
// restart program if user wants patch profile change
if ProgramStatus.bChangeProfile then
- ShellExecute(Application.Handle, 'runas', PChar(ParamStr(0)), '', '', SW_SHOWNORMAL);
+ ShellExecute(Application.Handle, 'runas', PChar(ParamStr(0)), '', '',
+ SW_SHOWNORMAL);
// allow close and close
SaveLog(BaseLog);
@@ -568,9 +582,9 @@ procedure TSmashForm.SaveDone;
procedure TSmashForm.ProgressDone;
begin
xEditLogGroup := 'GENERAL';
- pForm.SaveLog;
+ //pForm.SaveLog;
pForm.Visible := false;
- FlashWindow(Application.Handle, True);
+ FlashWindow(Application.Handle, true);
pForm.ShowModal;
pForm.Free;
Enabled := true;
@@ -578,9 +592,12 @@ procedure TSmashForm.ProgressDone;
SetForegroundWindow(Application.Handle);
// free lists
- if Assigned(timeCosts) then timeCosts.Free;
- if Assigned(pluginsToHandle) then pluginsToHandle.Free;
- if Assigned(patchesToBuild) then patchesToBuild.Free;
+ if Assigned(timeCosts) then
+ timeCosts.Free;
+ if Assigned(pluginsToHandle) then
+ pluginsToHandle.Free;
+ if Assigned(patchesToBuild) then
+ patchesToBuild.Free;
// update patches and gui
UpdateListViews;
@@ -609,7 +626,8 @@ procedure TSmashForm.DisplayHints;
var
pt: TPoint;
begin
- if ProgramStatus.bLoadException and ShouldDisplay(bhLoadException) then begin
+ if ProgramStatus.bLoadException and ShouldDisplay(bhLoadException) then
+ begin
pt.X := 126;
pt.Y := 16;
pt := MainPanel.ClientToScreen(pt);
@@ -619,7 +637,8 @@ procedure TSmashForm.DisplayHints;
procedure TSmashForm.RefreshGUI;
begin
- if not bClosing then UpdateStatusBar;
+ if not bClosing then
+ UpdateStatusBar;
end;
procedure TSmashForm.OnTaskTimer(Sender: TObject);
@@ -636,11 +655,13 @@ procedure TSmashForm.UpdateStatusBar;
procedure TSmashForm.UpdateListViews;
begin
- if PageControl.ActivePage = PluginsTabSheet then begin
+ if PageControl.ActivePage = PluginsTabSheet then
+ begin
UpdatePluginDetails;
PluginsListView.Repaint;
end;
- if PageControl.ActivePage = PatchesTabSheet then begin
+ if PageControl.ActivePage = PatchesTabSheet then
+ begin
UpdatePatchDetails;
PatchesListView.Repaint;
end;
@@ -648,7 +669,7 @@ procedure TSmashForm.UpdateListViews;
LogListView.Repaint;
end;
-{******************************************************************************}
+{ ****************************************************************************** }
{ Details Editor Events
Methods for helping with the DetailsGrid control. Methods include:
- AddDetailsItem
@@ -656,10 +677,10 @@ procedure TSmashForm.UpdateListViews;
- PageControlChange
- UpdateApplicationDetails
}
-{******************************************************************************}
+{ ****************************************************************************** }
{
- Adds a ListItem to DetailsView with @name and @value
+ Adds a ListItem to DetailsView with @name and @value
}
procedure TSmashForm.AddDetailsItem(name, value: string);
begin
@@ -672,9 +693,10 @@ procedure TSmashForm.AddDetailsItem(name, value: string);
}
procedure TSmashForm.AddDetailsList(name: string; sl: TStringList);
var
- i: integer;
+ i: Integer;
begin
- if sl.Count > 0 then begin
+ if sl.Count > 0 then
+ begin
for i := 0 to Pred(sl.Count) do
slDetails.Add(Format('%s[%d]=%s', [name, i, sl[i]]));
end
@@ -687,22 +709,25 @@ procedure TSmashForm.AddDetailsList(name: string; sl: TStringList);
}
procedure TSmashForm.PageControlChange(Sender: TObject);
var
- ndx: integer;
+ ndx: Integer;
begin
ndx := TPageControl(Sender).ActivePageIndex;
case ndx of
- 0: begin
- UpdatePluginDetails;
- ListView_CorrectWidth(PluginsListView);
- end;
- 1: begin
- UpdatePatchDetails;
- ListView_CorrectWidth(PatchesListView);
- end;
- 2: begin
- UpdateApplicationDetails;
- ListView_CorrectWidth(LogListView);
- end;
+ 0:
+ begin
+ UpdatePluginDetails;
+ ListView_CorrectWidth(PluginsListView);
+ end;
+ 1:
+ begin
+ UpdatePatchDetails;
+ ListView_CorrectWidth(PatchesListView);
+ end;
+ 2:
+ begin
+ UpdateApplicationDetails;
+ ListView_CorrectWidth(LogListView);
+ end;
end;
end;
@@ -715,22 +740,32 @@ procedure TSmashForm.UpdateApplicationDetails;
// add details items
AddDetailsItem(GetLanguageString('msMain_Application'), 'Mator Smash');
AddDetailsItem(GetLanguageString('msMain_Author'), 'matortheeternal');
+ AddDetailsItem('v2 ' + GetLanguageString('msMain_Author'), 'chuckseven1');
AddDetailsItem(GetLanguageString('msMain_Version'), ProgramStatus.Version);
- AddDetailsItem(GetLanguageString('msMain_DateBuilt'), DateTimeToStr(GetLastModified(ParamStr(0))));
+ AddDetailsItem(GetLanguageString('msMain_DateBuilt'),
+ DateTimeToStr(GetLastModified(ParamStr(0))));
AddDetailsItem(' ', ' ');
AddDetailsItem(GetLanguageString('msMain_GameMode'), wbGameName);
AddDetailsItem(GetLanguageString('msMain_Language'), settings.language);
AddDetailsItem(' ', ' ');
- AddDetailsItem(GetLanguageString('msMain_TimesRun'), IntToStr(statistics.timesRun + sessionStatistics.timesRun));
- AddDetailsItem(GetLanguageString('msMain_PatchesBuilt'), IntToStr(statistics.patchesBuilt + sessionStatistics.patchesBuilt));
- AddDetailsItem(GetLanguageString('msMain_PluginsSmashed'), IntToStr(statistics.pluginsPatched + sessionStatistics.pluginsPatched));
- AddDetailsItem(GetLanguageString('msMain_SettingsSubmitted'), IntToStr(statistics.settingsSubmitted + sessionStatistics.settingsSubmitted));
- AddDetailsItem(GetLanguageString('msMain_RecsSubmitted'), IntToStr(statistics.recsSubmitted + sessionStatistics.recsSubmitted));
+ AddDetailsItem(GetLanguageString('msMain_TimesRun'),
+ IntToStr(statistics.timesRun + sessionStatistics.timesRun));
+ AddDetailsItem(GetLanguageString('msMain_PatchesBuilt'),
+ IntToStr(statistics.patchesBuilt + sessionStatistics.patchesBuilt));
+ AddDetailsItem(GetLanguageString('msMain_PluginsSmashed'),
+ IntToStr(statistics.pluginsPatched + sessionStatistics.pluginsPatched));
+ AddDetailsItem(GetLanguageString('msMain_SettingsSubmitted'),
+ IntToStr(statistics.settingsSubmitted +
+ sessionStatistics.settingsSubmitted));
+ AddDetailsItem(GetLanguageString('msMain_RecsSubmitted'),
+ IntToStr(statistics.recsSubmitted + sessionStatistics.recsSubmitted));
AddDetailsItem(' ', ' ');
AddDetailsItem(GetLanguageString('msMain_Website'), '-');
- AddDetailsItem(GetLanguageString('msMain_ApiCredits'), 'superobject, TurboPower Abbrevia, xEdit');
+ AddDetailsItem(GetLanguageString('msMain_ApiCredits'),
+ 'superobject, TurboPower Abbrevia, LoggerPro, xEdit');
AddDetailsItem(GetLanguageString('msMain_xEditVersion'), xEditVersion);
- AddDetailsItem(GetLanguageString('msMain_xEditCredits'), 'zilav, hlp, Sharlikran, ElminsterAU');
+ AddDetailsItem(GetLanguageString('msMain_xEditCredits'),
+ 'zilav, hlp, Sharlikran, ElminsterAU');
AddDetailsItem(GetLanguageString('msMain_Testers'), ProgramTesters);
AddDetailsItem(GetLanguageString('msMain_Translators'), ProgramTranslators);
@@ -752,26 +787,29 @@ procedure TSmashForm.DetailsCopyToClipboardItemClick(Sender: TObject);
// empty names and empty values
name := ' ';
value := ' ';
- for i := 0 to Pred(slDetails.Count) do begin
+ for i := 0 to Pred(slDetails.Count) do
+ begin
previousName := name;
name := slDetails.Names[i];
previousValue := value;
value := slDetails.ValueFromIndex[i];
if (name <> ' ') then
sl.Add(Format('%s: %s', [name, value]))
- else if (value <> ' ') then begin
- if (previousName <> ' ') then begin
+ else if (value <> ' ') then
+ begin
+ if (previousName <> ' ') then
+ begin
sl[sl.Count - 1] := previousName + ':';
- sl.Add('- '+previousValue);
+ sl.Add('- ' + previousValue);
end;
- sl.Add('- '+value);
+ sl.Add('- ' + value);
end
else
sl.Add(' ');
end;
// copy to clipboard
- Clipboard.AsText := sl.Text;
+ Clipboard.AsText := sl.text;
sl.Free;
end;
@@ -785,7 +823,7 @@ procedure TSmashForm.DetailsPanelResize(Sender: TObject);
procedure TSmashForm.DetailsGridMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
- ACol, ARow: integer;
+ ACol, ARow: Integer;
value: string;
begin
// don't change cursor if in help mode
@@ -794,7 +832,8 @@ procedure TSmashForm.DetailsGridMouseMove(Sender: TObject; Shift: TShiftState;
DetailsGrid.MouseToCell(X, Y, ACol, ARow);
// use default cursor on cells in column 0, or at an invalid cell
- if (ACol = 0) or (ARow > Pred(slDetails.Count)) then begin
+ if (ACol = 0) or (ARow > Pred(slDetails.Count)) then
+ begin
Screen.Cursor := crDefault;
exit;
end;
@@ -811,7 +850,7 @@ procedure TSmashForm.DetailsGridMouseMove(Sender: TObject; Shift: TShiftState;
procedure TSmashForm.DetailsGridMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
- ACol, ARow: integer;
+ ACol, ARow: Integer;
value: string;
begin
// only process left clicks
@@ -825,7 +864,8 @@ procedure TSmashForm.DetailsGridMouseUp(Sender: TObject; Button: TMouseButton;
try
value := slDetails.ValueFromIndex[ARow];
- if IsURL(value) and ((Now - LastURLTime) * 86400 > 1.0) then begin
+ if IsURL(value) and ((Now - LastURLTime) * 86400 > 1.0) then
+ begin
ShellExecute(0, 'open', PChar(value), '', '', SW_SHOWNORMAL);
LastURLTime := Now;
end;
@@ -849,8 +889,9 @@ procedure TSmashForm.DetailsGridDrawCell(Sender: TObject; ACol, ARow: Integer;
DetailsGrid.Font.Color := clBlack;
// draw name
- if ACol = 0 then begin
- DetailsGrid.Canvas.Brush.Color := TColor($00f6f4f3);
+ if ACol = 0 then
+ begin
+ DetailsGrid.Canvas.Brush.Color := TColor($00F6F4F3);
DetailsGrid.Canvas.Rectangle(Rect);
DetailsGrid.Canvas.Brush.Color := clWindow;
DetailsGrid.Canvas.Rectangle(Rect.Left, Rect.Top, Rect.Right, iHalfBottom);
@@ -863,26 +904,31 @@ procedure TSmashForm.DetailsGridDrawCell(Sender: TObject; ACol, ARow: Integer;
exit;
DetailsGrid.Canvas.Brush.Style := bsClear;
- DetailsGrid.Canvas.TextOut(Rect.Left + 4, Rect.Top + (iPadding div 2), sText);
+ DetailsGrid.Canvas.TextOut(Rect.Left + 4,
+ Rect.Top + (iPadding div 2), sText);
end
// draw value
- else if ACol = 1 then begin
+ else if ACol = 1 then
+ begin
DetailsGrid.Canvas.Brush.Color := clWindow;
DetailsGrid.Canvas.Rectangle(Rect);
if Assigned(slDetails) and (slDetails.Count > ARow) then
sText := slDetails.ValueFromIndex[ARow];
// handle special drawing of urls and master files
- if (Pred(slDetails.Count) > ARow) then begin
+ if (Pred(slDetails.Count) > ARow) then
+ begin
sNextVal := slDetails.ValueFromIndex[ARow + 1];
sNextName := slDetails.Names[ARow + 1];
// urls blue and underlined
- if IsURL(sNextVal) then begin
+ if IsURL(sNextVal) then
+ begin
DetailsGrid.Font.Style := [fsUnderline];
DetailsGrid.Font.Color := clBlue;
end
// esps and esms red if not loaded
- else if Pos('Plugins[', sNextName) = 1 then begin
+ else if Pos('Plugins[', sNextName) = 1 then
+ begin
if not Assigned(PluginByFileName(sNextVal)) then
DetailsGrid.Font.Color := clRed;
end;
@@ -890,11 +936,12 @@ procedure TSmashForm.DetailsGridDrawCell(Sender: TObject; ACol, ARow: Integer;
// draw text
DetailsGrid.Canvas.Brush.Style := bsClear;
- DetailsGrid.Canvas.TextOut(Rect.Left + 4, Rect.Top + (iPadding div 2), sText);
+ DetailsGrid.Canvas.TextOut(Rect.Left + 4,
+ Rect.Top + (iPadding div 2), sText);
end;
end;
-{******************************************************************************}
+{ ****************************************************************************** }
{ PluginsListView Events
Events involving the PluginsListView control. Events include:
- UpdatePluginDetails
@@ -906,12 +953,12 @@ procedure TSmashForm.DetailsGridDrawCell(Sender: TObject; ACol, ARow: Integer;
- PluginsListViewDrawItem
- PluginsListViewMouseMove
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSmashForm.UpdatePluginDetails;
var
plugin: TPlugin;
- index: integer;
+ index: Integer;
begin
// don't do anything if no item selected
if not Assigned(PluginsListView.Selected) then
@@ -924,17 +971,21 @@ procedure TSmashForm.UpdatePluginDetails;
// get plugin information
index := PluginsListView.ItemIndex;
plugin := TPlugin(PluginsList[index]);
- if not plugin.hasData then plugin.GetData(PluginsList);
+ if not plugin.hasData then
+ plugin.GetData(PluginsList);
// add details items
AddDetailsItem(GetLanguageString('msMain_Filename'), plugin.filename);
AddDetailsItem(GetLanguageString('msMain_Hash'), '$' + plugin.hash);
- AddDetailsItem(GetLanguageString('msMain_FileSize'), FormatByteSize(plugin.fileSize));
+ AddDetailsItem(GetLanguageString('msMain_FileSize'),
+ FormatByteSize(plugin.fileSize));
AddDetailsItem(GetLanguageString('msMain_DateModified'), plugin.dateModified);
- AddDetailsItem(GetLanguageString('msMain_NumRecords'), IntToStr(plugin.numRecords));
- AddDetailsItem(GetLanguageString('msMain_NumOverrides'), IntToStr(plugin.numOverrides));
+ AddDetailsItem(GetLanguageString('msMain_NumRecords'),
+ IntToStr(plugin.numRecords));
+ AddDetailsItem(GetLanguageString('msMain_NumOverrides'),
+ IntToStr(plugin.numOverrides));
AddDetailsItem(GetLanguageString('msMain_Author'), plugin.author);
- AddDetailsList(GetLanguageString('msMain_Description'), plugin.description);
+ AddDetailsList(GetLanguageString('msMain_Description'), plugin.Description);
AddDetailsList(GetLanguageString('msMain_Masters'), plugin.masters);
// update gui
@@ -950,7 +1001,8 @@ procedure TSmashForm.ChangePatchSetting(aSetting: TSmashSetting);
plugin: TPlugin;
begin
// loop through plugins list, adding selected plugins to patch
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
ListItem := PluginsListView.Items[i];
if not ListItem.Selected then
continue;
@@ -966,9 +1018,11 @@ procedure TSmashForm.ChangePatchSetting(aSetting: TSmashSetting);
UpdateStatusBar;
end;
-procedure TSmashForm.AddPluginToPatch(var plugin: TPlugin; var patch: TPatch; i: Integer);
+procedure TSmashForm.AddPluginToPatch(var plugin: TPlugin; var patch: TPatch;
+ i: Integer);
begin
- Logger.Write('PLUGIN', 'Patch', 'Added '+plugin.filename+' to patch '+patch.name);
+ Logger.Write('PLUGIN', 'Patch', 'Added ' + plugin.filename + ' to patch ' +
+ patch.name);
if not plugin.hasData then
plugin.GetData(PluginsList);
if plugin.patch = patch.name then
@@ -979,12 +1033,13 @@ procedure TSmashForm.AddPluginToPatch(var plugin: TPlugin; var patch: TPatch; i:
procedure TSmashForm.AddPluginsToPatch(var patch: TPatch);
var
- i: integer;
+ i: Integer;
ListItem: TListItem;
plugin: TPlugin;
begin
// loop through plugins list, adding selected plugins to patch
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
ListItem := PluginsListView.Items[i];
if not ListItem.Selected then
continue;
@@ -1011,48 +1066,53 @@ procedure TSmashForm.PluginsListViewData(Sender: TObject; Item: TListItem);
var
plugin: TPlugin;
begin
- if Item.Index > Pred(PluginsList.Count) then
+ if Item.index > Pred(PluginsList.Count) then
exit;
- plugin := TPlugin(PluginsList[Item.Index]);
- Item.Caption := IntToHex(Item.Index, 2);
+ plugin := TPlugin(PluginsList[Item.index]);
+ Item.Caption := IntToHex(Item.index, 2);
Item.SubItems.Add(plugin.filename);
Item.SubItems.Add(plugin.setting);
Item.SubItems.Add(plugin.patch);
if Assigned(plugin.smashSetting) then
- PluginsListView.Canvas.Font.Color := plugin.smashSetting.color
+ PluginsListView.Canvas.Font.Color := plugin.smashSetting.Color
else
PluginsListView.Canvas.Font.Color := clGray;
- PluginsListView.Canvas.Font.Style := PluginsListView.Canvas.Font.Style + [fsBold];
+ PluginsListView.Canvas.Font.Style := PluginsListView.Canvas.Font.Style
+ + [fsBold];
end;
procedure TSmashForm.PluginsListViewDrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
var
- i, x, y: integer;
+ i, X, Y: Integer;
ListView: TListView;
R: TRect;
begin
ListView := TListView(Sender);
- if Item.Selected then begin
+ if Item.Selected then
+ begin
ListView.Canvas.Brush.Color := $FFEEDD;
ListView.Canvas.FillRect(Rect);
end;
R := Rect;
R.Right := R.Left + ListView.Columns[0].Width - 3;
- x := Rect.Left + 3;
- y := (Rect.Bottom - Rect.Top - ListView.Canvas.TextHeight('Hg')) div 2 + Rect.Top;
- ListView.Canvas.TextRect(R, x, y, Item.Caption);
- for i := 0 to Item.SubItems.Count - 1 do begin
+ X := Rect.Left + 3;
+ Y := (Rect.Bottom - Rect.Top - ListView.Canvas.TextHeight('Hg')) div 2
+ + Rect.Top;
+ ListView.Canvas.TextRect(R, X, Y, Item.Caption);
+ for i := 0 to Item.SubItems.Count - 1 do
+ begin
R.Left := R.Right + 3;
// fixes drawing bug
- R.Right := R.Left + ListView_GetColumnWidth(ListView.Handle, ListView.Columns[i + 1].Index);
- x := R.Left;
- ListView.Canvas.TextRect(R, x, y, Item.SubItems[i]);
+ R.Right := R.Left + ListView_GetColumnWidth(ListView.Handle,
+ ListView.Columns[i + 1].index);
+ X := R.Left;
+ ListView.Canvas.TextRect(R, X, Y, Item.SubItems[i]);
end;
end;
-{******************************************************************************}
+{ ****************************************************************************** }
{ Plugins Popup Menu methods
Methods for dealing with the popup menu for the PluginsListView.
- PluginsPopupMenuPopup
@@ -1062,11 +1122,11 @@ procedure TSmashForm.PluginsListViewDrawItem(Sender: TCustomListView;
- CheckForErrorsClick
- RemoveFromPatchClick
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSmashForm.PluginsPopupMenuPopup(Sender: TObject);
var
- i: integer;
+ i: Integer;
bPluginInPatch, bHasSelection, bAllPluginsInPatch, bAllHaveTags: boolean;
ListItem: TListItem;
plugin: TPlugin;
@@ -1078,7 +1138,8 @@ procedure TSmashForm.PluginsPopupMenuPopup(Sender: TObject);
bAllHaveTags := true;
// loop through selection
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
ListItem := PluginsListView.Items[i];
if not ListItem.Selected then
continue;
@@ -1118,7 +1179,8 @@ procedure TSmashForm.UpdatePluginsPopupMenu;
AddToPatchItem.Add(MenuItem);
// add patches to submenu
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
patch := TPatch(PatchesList[i]);
MenuItem := TMenuItem.Create(AddToPatchItem);
MenuItem.Caption := patch.name;
@@ -1127,7 +1189,8 @@ procedure TSmashForm.UpdatePluginsPopupMenu;
end;
// add smash settings to submenu
- for i := 0 to Pred(SmashSettings.Count) do begin
+ for i := 0 to Pred(SmashSettings.Count) do
+ begin
aSetting := TSmashSetting(SmashSettings[i]);
// parse setting group
@@ -1138,7 +1201,8 @@ procedure TSmashForm.UpdatePluginsPopupMenu;
// get group menu item or create it if missing
GroupItem := SmashSettingItem.Find(sGroup);
- if not Assigned(GroupItem) then begin
+ if not Assigned(GroupItem) then
+ begin
GroupItem := TMenuItem.Create(SmashSettingItem);
GroupItem.Caption := sGroup;
SmashSettingItem.Add(GroupItem);
@@ -1163,9 +1227,10 @@ procedure TSmashForm.AddToPatchClick(Sender: TObject);
patch := TPatchHelpers.PatchByName(PatchesList, name);
if Assigned(patch) then
AddPluginsToPatch(patch)
- else begin
+ else
+ begin
ToggleFormState(false);
- ShowMessage('Error: Could not find patch '+name);
+ ShowMessage('Error: Could not find patch ' + name);
ToggleFormState(true);
end;
@@ -1182,9 +1247,10 @@ procedure TSmashForm.ChangeSettingClick(Sender: TObject);
aSetting := TSettingHelpers.SettingByName(name);
if Assigned(aSetting) then
ChangePatchSetting(aSetting)
- else begin
+ else
+ begin
ToggleFormState(false);
- ShowMessage('Error: Could not find setting '+name);
+ ShowMessage('Error: Could not find setting ' + name);
ToggleFormState(true);
end;
end;
@@ -1200,12 +1266,13 @@ procedure TSmashForm.AddToNewPatchClick(Sender: TObject);
procedure TSmashForm.ManageTagsItemClick(Sender: TObject);
var
- i: integer;
+ i: Integer;
ListItem: TListItem;
tmForm: TTagManager;
plugin: TPlugin;
begin
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
// only process selected list items
ListItem := PluginsListView.Items[i];
if not ListItem.Selected then
@@ -1231,11 +1298,12 @@ procedure TSmashForm.ManageTagsItemClick(Sender: TObject);
procedure TSmashForm.ApplySettingTagsItemClick(Sender: TObject);
var
- i: integer;
+ i: Integer;
ListItem: TListItem;
plugin: TPlugin;
begin
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
// only process selected list items
ListItem := PluginsListView.Items[i];
if not ListItem.Selected then
@@ -1256,12 +1324,12 @@ procedure TSmashForm.ApplySettingTagsItemClick(Sender: TObject);
procedure TSmashForm.ClearTagsItemClick(Sender: TObject);
var
- i: integer;
+ i: Integer;
ListItem: TListItem;
pluginNames: String;
plugin: TPlugin;
pluginsToClear: TList;
- bApproved: Boolean;
+ bApproved: boolean;
frmDialog: TForm;
begin
// initialize variables
@@ -1272,9 +1340,11 @@ procedure TSmashForm.ClearTagsItemClick(Sender: TObject);
// use a try-finally to make certain the list is freed
try
// add selected list items to the list
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
ListItem := PluginsListView.Items[i];
- if ListItem.Selected then begin
+ if ListItem.Selected then
+ begin
plugin := TPlugin(PluginsList[i]);
pluginsToClear.Add(plugin);
pluginNames := pluginNames + #13#10' - ' + plugin.filename;
@@ -1282,7 +1352,8 @@ procedure TSmashForm.ClearTagsItemClick(Sender: TObject);
end;
// prompt user if a plugin was selected
- if pluginsToClear.Count > 0 then begin
+ if pluginsToClear.Count > 0 then
+ begin
frmDialog := CreateMessageDialog(GetLanguageString('msMain_ClearTags') +
pluginNames, mtConfirmation, mbOKCancel, mbOk);
frmDialog.PopupParent := self;
@@ -1296,10 +1367,11 @@ procedure TSmashForm.ClearTagsItemClick(Sender: TObject);
exit;
// clear tags on plugins in the list
- for i := 0 to Pred(pluginsToClear.Count) do begin
+ for i := 0 to Pred(pluginsToClear.Count) do
+ begin
plugin := TPlugin(pluginsToClear[i]);
- Logger.Write('PLUGIN', 'Tags', 'Clearing tags on '+plugin.filename);
- plugin.description.Text := ClearTags(plugin.description.Text);
+ Logger.Write('PLUGIN', 'Tags', 'Clearing tags on ' + plugin.filename);
+ plugin.Description.text := ClearTags(plugin.Description.text);
plugin.GetSettingTag;
plugin.WriteDescription;
// plugin.Save;
@@ -1318,13 +1390,14 @@ procedure TSmashForm.ClearTagsItemClick(Sender: TObject);
{ Remove from Patch }
procedure TSmashForm.RemoveFromPatchItemClick(Sender: TObject);
var
- i: integer;
+ i: Integer;
ListItem: TListItem;
pluginName, patchName: string;
patch: TPatch;
plugin: TPlugin;
begin
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
// only process selected list items
ListItem := PluginsListView.Items[i];
if not ListItem.Selected then
@@ -1334,7 +1407,8 @@ procedure TSmashForm.RemoveFromPatchItemClick(Sender: TObject);
plugin := TPlugin(PluginsList[i]);
pluginName := plugin.filename;
patchName := plugin.patch;
- if patchName <> ' ' then begin
+ if patchName <> ' ' then
+ begin
patch := TPatchHelpers.PatchByName(PatchesList, patchName);
if Assigned(patch) then
patch.plugins.Delete(patch.plugins.IndexOf(pluginName));
@@ -1351,11 +1425,12 @@ procedure TSmashForm.RemoveFromPatchItemClick(Sender: TObject);
procedure TSmashForm.OpenPluginLocationItemClick(Sender: TObject);
var
- i: integer;
- listItem: TListItem;
+ i: Integer;
+ ListItem: TListItem;
plugin: TPlugin;
begin
- for i := 0 to Pred(PluginsListView.Items.Count) do begin
+ for i := 0 to Pred(PluginsListView.Items.Count) do
+ begin
// only process selected list items
ListItem := PluginsListView.Items[i];
if not ListItem.Selected then
@@ -1368,7 +1443,7 @@ procedure TSmashForm.OpenPluginLocationItemClick(Sender: TObject);
end;
end;
-{******************************************************************************}
+{ ****************************************************************************** }
{ Patch List View Events
Events involving the PatchesListView control. Events include:
- UpdatePatchDetails
@@ -1378,7 +1453,7 @@ procedure TSmashForm.OpenPluginLocationItemClick(Sender: TObject);
- PatchesListViewDrawItem
- SavePatchEdit
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSmashForm.UpdatePatchDetails;
var
@@ -1396,17 +1471,21 @@ procedure TSmashForm.UpdatePatchDetails;
// get patch information
patch := PatchesList[PatchesListView.ItemIndex];
- AddDetailsItem(GetLanguageString('msMain_Status'), StatusArray[Ord(patch.status)].desc);
+ AddDetailsItem(GetLanguageString('msMain_Status'),
+ StatusArray[Ord(patch.status)].desc);
AddDetailsItem(GetLanguageString('msMain_PatchName'), patch.name);
AddDetailsItem(GetLanguageString('msMain_Filename'), patch.filename);
- AddDetailsItem(GetLanguageString('msMain_PluginCount'), IntToStr(patch.plugins.Count));
- AddDetailsItem(GetLanguageString('msMain_DateBuilt'), DateBuiltString(patch.dateBuilt));
+ AddDetailsItem(GetLanguageString('msMain_PluginCount'),
+ IntToStr(patch.plugins.Count));
+ AddDetailsItem(GetLanguageString('msMain_DateBuilt'),
+ DateBuiltString(patch.dateBuilt));
AddDetailsList(GetLanguageString('msMain_Plugins'), patch.plugins);
AddDetailsItem(' ', ' ');
if patch.fails.Count < 250 then
AddDetailsList(GetLanguageString('msMain_Fails'), patch.fails)
else
- AddDetailsItem(GetLanguageString('msMain_Fails'), GetLanguageString('msMain_TooManyFails'));
+ AddDetailsItem(GetLanguageString('msMain_Fails'),
+ GetLanguageString('msMain_TooManyFails'));
// update gui
StringGrid_CorrectWidth(DetailsGrid);
@@ -1416,19 +1495,20 @@ procedure TSmashForm.UpdatePatchDetails;
procedure TSmashForm.UpdatePatches;
var
- i: integer;
+ i: Integer;
patch: TPatch;
begin
// update patch count
PatchesListView.Items.Count := PatchesList.Count;
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
patch := TPatch(PatchesList[i]);
// sort plugins in patch
patch.SortPlugins;
// get status of each patch
- if not ((patch.status in ForcedStatuses)
- or (patch.status in FailedStatuses)) then
+ if not((patch.status in ForcedStatuses) or (patch.status in FailedStatuses))
+ then
patch.GetStatus;
end;
end;
@@ -1442,11 +1522,12 @@ function TSmashForm.NewPatch: TPatch;
patch := TPatchHelpers.CreateNewPatch(PatchesList);
// edit patch immediately after its creation
- EditPatch := TEditForm.Create(Self);
+ EditPatch := TEditForm.Create(self);
EditPatch.patch := patch;
- if EditPatch.ShowModal = mrOk then begin
+ if EditPatch.ShowModal = mrOk then
+ begin
patch := EditPatch.patch;
- LogMessage('PATCH', 'New', 'Created new patch '+patch.name);
+ LogMessage('PATCH', 'New', 'Created new patch ' + patch.name);
// add patch to list and update views
PatchesList.Add(patch);
UpdatePatches;
@@ -1470,58 +1551,62 @@ procedure TSmashForm.PatchesListViewData(Sender: TObject; Item: TListItem);
var
patch: TPatch;
begin
- if Item.Index > Pred(PatchesList.Count) then
+ if Item.index > Pred(PatchesList.Count) then
exit;
- patch := TPatch(PatchesList[Item.Index]);
- Item.Caption := IntToHex(Item.Index, 2);
+ patch := TPatch(PatchesList[Item.index]);
+ Item.Caption := IntToHex(Item.index, 2);
Item.SubItems.Add(patch.name);
Item.SubItems.Add(patch.filename);
- Item.SubItems.Add(IntToStr(patch.plugins.count));
+ Item.SubItems.Add(IntToStr(patch.plugins.Count));
Item.SubItems.Add(DateBuiltString(patch.dateBuilt));
- PatchesListView.Canvas.Font.Color := StatusArray[Ord(patch.status)].color;
- PatchesListView.Canvas.Font.Style := PatchesListView.Canvas.Font.Style + [fsBold];
+ PatchesListView.Canvas.Font.Color := StatusArray[Ord(patch.status)].Color;
+ PatchesListView.Canvas.Font.Style := PatchesListView.Canvas.Font.Style
+ + [fsBold];
end;
procedure TSmashForm.PatchesListViewDrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
var
- i, x, y: integer;
+ i, X, Y: Integer;
ListView: TListView;
R: TRect;
begin
ListView := TListView(Sender);
- if Item.Selected then begin
+ if Item.Selected then
+ begin
ListView.Canvas.Brush.Color := $FFEEDD;
ListView.Canvas.FillRect(Rect);
end;
R := Rect;
R.Right := R.Left + ListView.Columns[0].Width - 3;
- x := Rect.Left + 3;
- y := (Rect.Bottom - Rect.Top - ListView.Canvas.TextHeight('Hg')) div 2 + Rect.Top;
- ListView.Canvas.TextRect(R, x, y, Item.Caption);
- for i := 0 to Item.SubItems.Count - 1 do begin
+ X := Rect.Left + 3;
+ Y := (Rect.Bottom - Rect.Top - ListView.Canvas.TextHeight('Hg')) div 2
+ + Rect.Top;
+ ListView.Canvas.TextRect(R, X, Y, Item.Caption);
+ for i := 0 to Item.SubItems.Count - 1 do
+ begin
R.Left := R.Right + 3;
// fixes drawing error
- R.Right := R.Left + ListView_GetColumnWidth(ListView.Handle, ListView.Columns[i + 1].Index);
- x := R.Left;
- ListView.Canvas.TextRect(R, x, y, Item.SubItems[i]);
+ R.Right := R.Left + ListView_GetColumnWidth(ListView.Handle,
+ ListView.Columns[i + 1].index);
+ X := R.Left;
+ ListView.Canvas.TextRect(R, X, Y, Item.SubItems[i]);
end;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ LogListView methods
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSmashForm.LogListViewData(Sender: TObject; Item: TListItem);
var
msg: TLogMessage;
begin
- if (Item.Index > Pred(Log.Count)) then
+ if (Item.index > Pred(Log.Count)) then
exit;
- msg := TLogMessage(Log[Item.Index]);
+ msg := TLogMessage(Log[Item.index]);
Item.Caption := msg.time;
Item.SubItems.Add(msg.appTime);
Item.SubItems.Add(msg.group);
@@ -1546,14 +1631,15 @@ procedure TSmashForm.LogListViewData(Sender: TObject; Item: TListItem);
procedure TSmashForm.LogListViewDrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
var
- i, x, y: integer;
+ i, X, Y: Integer;
ListView: TListView;
R: TRect;
msg: string;
map: TStringList;
begin
ListView := TListView(Sender);
- if Item.Selected then begin
+ if Item.Selected then
+ begin
ListView.Canvas.Brush.Color := $FFEEDD;
ListView.Canvas.FillRect(Rect);
end;
@@ -1567,19 +1653,19 @@ procedure TSmashForm.LogListViewDrawItem(Sender: TCustomListView;
// prepare text rect
R := Rect;
R.Right := R.Left + ListView.Width - 3;
- x := Rect.Left + 3;
- y := (Rect.Bottom - Rect.Top - ListView.Canvas.TextHeight('Hg')) div 2 + Rect.Top;
+ X := Rect.Left + 3;
+ Y := (Rect.Bottom - Rect.Top - ListView.Canvas.TextHeight('Hg')) div 2
+ + Rect.Top;
// draw message
msg := ApplyTemplate(settings.logMessageTemplate, map);
- ListView.Canvas.TextRect(R, x, y, msg);
+ ListView.Canvas.TextRect(R, X, Y, msg);
// clean up
map.Free;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Log Popup Menu events
- LogPopupMenuPopup
- FilterInitItemClick
@@ -1590,55 +1676,61 @@ procedure TSmashForm.LogListViewDrawItem(Sender: TCustomListView;
- CopyToClipboardItemClick
- SaveAndClearItemClick
}
-{******************************************************************************}
+{ ****************************************************************************** }
function EnableStr(var b: boolean): string;
begin
- Result := IfThen(not b, GetLanguageString('msMain_Enable'), GetLanguageString('msMain_Disable'));
+ Result := IfThen(not b, GetLanguageString('msMain_Enable'),
+ GetLanguageString('msMain_Disable'));
end;
procedure TSmashForm.LogPopupMenuPopup(Sender: TObject);
var
i: Integer;
- item: TMenuItem;
+ Item: TMenuItem;
filter: TFilter;
begin
// rebuild group filter items
FilterGroupItem.Clear;
- for i := 0 to Pred(GroupFilters.Count) do begin
+ for i := 0 to Pred(GroupFilters.Count) do
+ begin
filter := TFilter(GroupFilters[i]);
- item := TMenuItem.Create(FilterGroupItem);
- item.Caption := EnableStr(filter.enabled) + ' ' + filter.group;
- item.OnClick := ToggleGroupFilter;
- FilterGroupItem.Add(item);
+ Item := TMenuItem.Create(FilterGroupItem);
+ Item.Caption := EnableStr(filter.Enabled) + ' ' + filter.group;
+ Item.OnClick := ToggleGroupFilter;
+ FilterGroupItem.Add(Item);
end;
// rebuild label filter items
FilterLabelItem.Clear;
- for i := 0 to Pred(LabelFilters.Count) do begin
+ for i := 0 to Pred(LabelFilters.Count) do
+ begin
filter := TFilter(LabelFilters[i]);
- item := TMenuItem.Create(FilterLabelItem);
- item.Caption := Format('%s %s, %s', [EnableStr(filter.enabled), filter.group, filter.&label]);
- item.OnClick := ToggleLabelFilter;
- FilterLabelItem.Add(item);
+ Item := TMenuItem.Create(FilterLabelItem);
+ Item.Caption := Format('%s %s, %s', [EnableStr(filter.Enabled),
+ filter.group, filter.&label]);
+ Item.OnClick := ToggleLabelFilter;
+ FilterLabelItem.Add(Item);
end;
// toggle copy to clipboard item based on whether or not log items are selected
CopyToClipboardItem.Enabled := Assigned(LogListView.Selected);
// rename toggle auto scroll item based on whether or not auto scroll is enabled
- ToggleAutoScrollItem.Caption := Format('%s %s', [EnableStr(bAutoScroll), GetLanguageString('msMain_AutoScroll')]);
+ ToggleAutoScrollItem.Caption :=
+ Format('%s %s', [EnableStr(bAutoScroll),
+ GetLanguageString('msMain_AutoScroll')]);
end;
// toggles a group filter for the LogListView
procedure TSmashForm.ToggleGroupFilter(Sender: TObject);
var
- index: integer;
+ index: Integer;
filter: TFilter;
begin
index := FilterGroupItem.IndexOf(TMenuItem(Sender));
filter := GroupFilters[index];
- filter.enabled := not filter.enabled;
+ filter.Enabled := not filter.Enabled;
LogListView.Items.Count := 0;
RebuildLog;
LogListView.Items.Count := Log.Count;
@@ -1648,12 +1740,12 @@ procedure TSmashForm.ToggleGroupFilter(Sender: TObject);
// toggles a label filter for the LogListView
procedure TSmashForm.ToggleLabelFilter(Sender: TObject);
var
- index: integer;
+ index: Integer;
filter: TFilter;
begin
index := FilterLabelItem.IndexOf(TMenuItem(Sender));
filter := LabelFilters[index];
- filter.enabled := not filter.enabled;
+ filter.Enabled := not filter.Enabled;
LogListView.Items.Count := 0;
RebuildLog;
LogListView.Items.Count := Log.Count;
@@ -1675,16 +1767,18 @@ procedure TSmashForm.CopyToClipboardItemClick(Sender: TObject);
sl := TStringList.Create;
// put selected messages in stringlist
- for i := 0 to Pred(Log.Count) do begin
+ for i := 0 to Pred(Log.Count) do
+ begin
if not LogListView.Items[i].Selected then
continue;
msg := TLogMessage(Log[i]);
- sl.Add(Format('[%s] (%s) %s: %s', [msg.time, msg.group, msg.&label, msg.text]));
+ sl.Add(Format('[%s] (%s) %s: %s', [msg.time, msg.group, msg.&label,
+ msg.text]));
end;
// put stringlist in clipboard, then free
- Clipboard.AsText := sl.Text;
+ Clipboard.AsText := sl.text;
sl.Free;
end;
@@ -1697,8 +1791,7 @@ procedure TSmashForm.SaveAndClearItemClick(Sender: TObject);
LogMessage('GENERAL', 'Log', 'Saved and cleared log.');
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ PatchesPopupMenu methods
Methods for dealing with the popup menu for the PatchesListView.
- PatchesPopupMenuPopup
@@ -1713,12 +1806,12 @@ procedure TSmashForm.SaveAndClearItemClick(Sender: TObject);
- PatchesListViewDblClick
- PatchesListViewKeyDown
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSmashForm.PatchesPopupMenuPopup(Sender: TObject);
var
- bNeverBuilt, bHasBuildStatus, bHasUpToDateStatus, bHasSelection,
- bIsNotTop, bIsNotBottom: boolean;
+ bNeverBuilt, bHasBuildStatus, bHasUpToDateStatus, bHasSelection, bIsNotTop,
+ bIsNotBottom: boolean;
patch: TPatch;
i, patchesSelected: Integer;
sBuild, sRebuild: string;
@@ -1731,17 +1824,21 @@ procedure TSmashForm.PatchesPopupMenuPopup(Sender: TObject);
patchesSelected := 0;
// loop through list view to find selection
- for i := 0 to Pred(PatchesListView.Items.Count) do begin
+ for i := 0 to Pred(PatchesListView.Items.Count) do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
patch := TPatch(PatchesList[i]);
Inc(patchesSelected);
// update booleans
- if i = 0 then bIsNotTop := false;
- if i = Pred(PatchesList.Count) then bIsNotBottom := false;
+ if i = 0 then
+ bIsNotTop := false;
+ if i = Pred(PatchesList.Count) then
+ bIsNotBottom := false;
bNeverBuilt := bNeverBuilt or (patch.dateBuilt = 0);
bHasBuildStatus := bHasBuildStatus or (patch.status in BuildStatuses);
- bHasUpToDateStatus := bHasUpToDateStatus or (patch.status in UpToDateStatuses);
+ bHasUpToDateStatus := bHasUpToDateStatus or
+ (patch.status in UpToDateStatuses);
end;
bHasSelection := (patchesSelected > 0);
@@ -1760,11 +1857,13 @@ procedure TSmashForm.PatchesPopupMenuPopup(Sender: TObject);
ToBottomItem.Enabled := bHasSelection and bIsNotBottom;
// one or multiple patchs?
- if (patchesSelected = 1) then begin
+ if (patchesSelected = 1) then
+ begin
sBuild := 'msMain_BuildPatch';
sRebuild := 'msMain_RebuildPatch';
end
- else begin
+ else
+ begin
sBuild := 'msMain_BuildPatches';
sRebuild := 'msMain_RebuildPatches';
end;
@@ -1773,7 +1872,8 @@ procedure TSmashForm.PatchesPopupMenuPopup(Sender: TObject);
BuildPatchItem.Caption := GetLanguageString(sBuild)
else if bHasBuildStatus then
BuildPatchItem.Caption := GetLanguageString(sRebuild)
- else begin
+ else
+ begin
BuildPatchItem.Enabled := false;
BuildPatchItem.Caption := GetLanguageString(sRebuild);
end;
@@ -1782,24 +1882,27 @@ procedure TSmashForm.PatchesPopupMenuPopup(Sender: TObject);
procedure TSmashForm.EditPatchItemClick(Sender: TObject);
var
EditPatch: TEditForm;
- i, j: integer;
+ i, j: Integer;
plugin: TPlugin;
patch: TPatch;
begin
// loop through patches
- for i := 0 to Pred(PatchesListView.Items.Count) do begin
+ for i := 0 to Pred(PatchesListView.Items.Count) do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
patch := TPatch(PatchesList[i]);
- Logger.Write('PATCH', 'Edit', 'Editing '+patch.name);
+ Logger.Write('PATCH', 'Edit', 'Editing ' + patch.name);
// create EditForm
- EditPatch := TEditForm.Create(Self);
+ EditPatch := TEditForm.Create(self);
EditPatch.patch := patch;
- if EditPatch.ShowModal = mrOk then begin
+ if EditPatch.ShowModal = mrOk then
+ begin
patch := EditPatch.patch;
// update plugin.patch properties
- for j := 0 to Pred(patch.plugins.Count) do begin
- plugin := PluginByFilename(patch.plugins[j]);
+ for j := 0 to Pred(patch.plugins.Count) do
+ begin
+ plugin := PluginByFileName(patch.plugins[j]);
if Assigned(plugin) then
plugin.patch := patch.name;
end;
@@ -1817,16 +1920,17 @@ procedure TSmashForm.EditPatchItemClick(Sender: TObject);
procedure TSmashForm.UpItemClick(Sender: TObject);
var
- i, max: Integer;
+ i, Max: Integer;
begin
- max := Pred(PatchesListView.Items.Count);
+ Max := Pred(PatchesListView.Items.Count);
// if patch at index 0 is selected, exit
// we can't move it up!
if PatchesListView.Items[0].Selected then
exit;
// loop through patches
- for i := 0 to max do begin
+ for i := 0 to Max do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
PatchesList.Move(i, i - 1);
@@ -1840,17 +1944,18 @@ procedure TSmashForm.UpItemClick(Sender: TObject);
procedure TSmashForm.DownItemClick(Sender: TObject);
var
- i, max: Integer;
+ i, Max: Integer;
begin
- max := Pred(PatchesListView.Items.Count);
+ Max := Pred(PatchesListView.Items.Count);
// if patch at max index is selected, exit
// we can't move it down!
- if PatchesListView.Items[max].Selected then
+ if PatchesListView.Items[Max].Selected then
exit;
// loop through patches in reverse so we don't move the same patch
// multiple times
- for i := max downto 0 do begin
+ for i := Max downto 0 do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
PatchesList.Move(i, i + 1);
@@ -1864,10 +1969,10 @@ procedure TSmashForm.DownItemClick(Sender: TObject);
procedure TSmashForm.ToTopItemClick(Sender: TObject);
var
- i, max, iIndex: Integer;
+ i, Max, iIndex: Integer;
tempList: TList;
begin
- max := Pred(PatchesListView.Items.Count);
+ Max := Pred(PatchesListView.Items.Count);
// if patch at index 0 is selected, exit
// we can't move it up!
if PatchesListView.Items[0].Selected then
@@ -1878,11 +1983,14 @@ procedure TSmashForm.ToTopItemClick(Sender: TObject);
// loop through patches to build new list
iIndex := 0;
- for i := 0 to max do begin
- if not PatchesListView.Items[i].Selected then begin
+ for i := 0 to Max do
+ begin
+ if not PatchesListView.Items[i].Selected then
+ begin
tempList.Add(PatchesList[i]);
end
- else begin
+ else
+ begin
tempList.Insert(iIndex, PatchesList[i]);
Inc(iIndex);
end;
@@ -1890,11 +1998,12 @@ procedure TSmashForm.ToTopItemClick(Sender: TObject);
// set PatchesList to tempList
PatchesList.Clear;
- for i := 0 to max do PatchesList.Add(tempList[i]);
+ for i := 0 to Max do
+ PatchesList.Add(tempList[i]);
tempList.Free;
// update selection
- for i := 0 to max do
+ for i := 0 to Max do
PatchesListView.Items[i].Selected := i < iIndex;
// update gui
@@ -1903,13 +2012,13 @@ procedure TSmashForm.ToTopItemClick(Sender: TObject);
procedure TSmashForm.ToBottomItemClick(Sender: TObject);
var
- i, max, iIndex: Integer;
+ i, Max, iIndex: Integer;
tempList: TList;
begin
- max := Pred(PatchesListView.Items.Count);
+ Max := Pred(PatchesListView.Items.Count);
// if patch at max index is selected, exit
// we can't move it down!
- if PatchesListView.Items[max].Selected then
+ if PatchesListView.Items[Max].Selected then
exit;
// create tempList
@@ -1917,23 +2026,27 @@ procedure TSmashForm.ToBottomItemClick(Sender: TObject);
// loop through patches to build new list
iIndex := 0;
- for i := 0 to max do begin
- if not PatchesListView.Items[i].Selected then begin
+ for i := 0 to Max do
+ begin
+ if not PatchesListView.Items[i].Selected then
+ begin
tempList.Insert(iIndex, PatchesList[i]);
Inc(iIndex);
end
- else begin
+ else
+ begin
tempList.Add(PatchesList[i]);
end;
end;
// set PatchesList to tempList
PatchesList.Clear;
- for i := 0 to max do PatchesList.Add(tempList[i]);
+ for i := 0 to Max do
+ PatchesList.Add(tempList[i]);
tempList.Free;
// update selection
- for i := 0 to max do
+ for i := 0 to Max do
PatchesListView.Items[i].Selected := i >= iIndex;
// update gui
@@ -1943,21 +2056,25 @@ procedure TSmashForm.ToBottomItemClick(Sender: TObject);
{ Remove unloaded plugins and plugins with errors }
procedure TSmashForm.RemovePluginsItemClick(Sender: TObject);
var
- i, j: integer;
+ i, j: Integer;
plugin: TPlugin;
patch: TPatch;
begin
// loop through patches
- for i := 0 to Pred(PatchesListView.Items.Count) do begin
+ for i := 0 to Pred(PatchesListView.Items.Count) do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
patch := TPatch(PatchesList[i]);
- Logger.Write('PATCH', 'Plugins', 'Removing plugins from '+patch.name);
+ Logger.Write('PATCH', 'Plugins', 'Removing plugins from ' + patch.name);
// remove plugins that aren't loaded or have errors
- for j := Pred(patch.plugins.Count) downto 0 do begin
- plugin := PluginByFilename(patch.plugins[j]);
- if not Assigned(plugin) then begin
- Logger.Write('PATCH', 'Plugins', 'Removing '+patch.plugins[j]+', plugin not loaded');
+ for j := Pred(patch.plugins.Count) downto 0 do
+ begin
+ plugin := PluginByFileName(patch.plugins[j]);
+ if not Assigned(plugin) then
+ begin
+ Logger.Write('PATCH', 'Plugins', 'Removing ' + patch.plugins[j] +
+ ', plugin not loaded');
patch.plugins.Delete(j);
continue;
end;
@@ -1969,16 +2086,20 @@ procedure TSmashForm.RemovePluginsItemClick(Sender: TObject);
UpdateListViews;
end;
-procedure TSmashform.RemoveUnloadedPlugins(patch: TPatch);
+procedure TSmashForm.RemoveUnloadedPlugins(patch: TPatch);
var
- i: integer;
+ i: Integer;
plugin: TPlugin;
begin
- Logger.Write('PATCH', 'Plugins', 'Removing unloaded plugins from '+patch.name);
- for i := Pred(patch.plugins.Count) downto 0 do begin
- plugin := PluginByFilename(patch.plugins[i]);
- if not Assigned(plugin) then begin
- Logger.Write('PATCH', 'Plugins', 'Removing '+patch.plugins[i]+', plugin not loaded');
+ Logger.Write('PATCH', 'Plugins', 'Removing unloaded plugins from ' +
+ patch.name);
+ for i := Pred(patch.plugins.Count) downto 0 do
+ begin
+ plugin := PluginByFileName(patch.plugins[i]);
+ if not Assigned(plugin) then
+ begin
+ Logger.Write('PATCH', 'Plugins', 'Removing ' + patch.plugins[i] +
+ ', plugin not loaded');
patch.plugins.Delete(i);
end;
end;
@@ -1986,11 +2107,12 @@ procedure TSmashform.RemoveUnloadedPlugins(patch: TPatch);
procedure TSmashForm.RemoveUnloadedPluginsItemClick(Sender: TObject);
var
- i: integer;
+ i: Integer;
patch: TPatch;
begin
// loop through patches
- for i := 0 to Pred(PatchesListView.Items.Count) do begin
+ for i := 0 to Pred(PatchesListView.Items.Count) do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
patch := TPatch(PatchesList[i]);
@@ -2018,7 +2140,8 @@ procedure TSmashForm.DeletePatchItemClick(Sender: TObject);
patchesToDelete := TList.Create;
patchNames := '';
for i := 0 to Pred(PatchesListView.Items.Count) do
- if PatchesListView.Items[i].Selected then begin
+ if PatchesListView.Items[i].Selected then
+ begin
patch := TPatch(PatchesList[i]);
patchesToDelete.Add(patch);
PatchesListView.Items[i].Selected := false;
@@ -2026,7 +2149,8 @@ procedure TSmashForm.DeletePatchItemClick(Sender: TObject);
end;
// show multi-patch prompt if multiple patches selected
- if patchesToDelete.Count > 0 then begin
+ if patchesToDelete.Count > 0 then
+ begin
frmDialog := CreateMessageDialog(GetLanguageString('msMain_DeletePatches') +
patchNames, mtConfirmation, mbOKCancel, mbOk);
frmDialog.PopupParent := self;
@@ -2037,19 +2161,21 @@ procedure TSmashForm.DeletePatchItemClick(Sender: TObject);
// exit if user didn't approve deletion
if not bApproved then
- Exit;
+ exit;
// clear details grid
slDetails.Clear;
// loop through patches
- for i := Pred(patchesToDelete.Count) downto 0 do begin
+ for i := Pred(patchesToDelete.Count) downto 0 do
+ begin
patch := TPatch(patchesToDelete[i]);
- Logger.Write('PATCH', 'Delete', 'Deleting patch '+patch.name);
+ Logger.Write('PATCH', 'Delete', 'Deleting patch ' + patch.name);
PatchesListView.Items.Count := PatchesListView.Items.Count - 1;
// remove patch from plugin patch properties
- for j := 0 to Pred(PluginsList.Count) do begin
+ for j := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[j]);
if plugin.patch = patch.name then
plugin.patch := ' ';
@@ -2077,22 +2203,24 @@ procedure TSmashForm.BuildPatchItemClick(Sender: TObject);
patchesToBuild := TList.Create;
// get timecosts
- for i := 0 to Pred(PatchesListView.Items.Count) do begin
+ for i := 0 to Pred(PatchesListView.Items.Count) do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
patch := TPatch(PatchesList[i]);
- if not (patch.status in BuildStatuses) then
+ if not(patch.status in BuildStatuses) then
continue;
// else calculate time cost and build patch
- Logger.Write('PATCH', 'Build', 'Building '+patch.name);
+ Logger.Write('PATCH', 'Build', 'Building ' + patch.name);
timeCost := patch.GetTimeCost * 2;
timeCosts.Add(IntToStr(timeCost));
patchesToBuild.Add(patch);
end;
// free and exit if no patches to check for errors
- if patchesToBuild.Count = 0 then begin
+ if patchesToBuild.Count = 0 then
+ begin
timeCosts.Free;
patchesToBuild.Free;
exit;
@@ -2101,9 +2229,9 @@ procedure TSmashForm.BuildPatchItemClick(Sender: TObject);
// Show progress form
self.Enabled := false;
xEditLogGroup := 'PATCH';
- pForm := TProgressForm.Create(Self);
- pForm.pfLogPath := LogPath + 'patch\';
- pForm.PopupParent := Self;
+ pForm := TProgressForm.Create(self);
+ //pForm.pfLogPath := LogPath + 'patch\';
+ pForm.PopupParent := self;
pForm.Caption := GetLanguageString('msProg_Smashing');
pForm.SetMaxProgress(IntegerListSum(timeCosts, Pred(timeCosts.Count)));
pForm.Show;
@@ -2120,7 +2248,8 @@ procedure TSmashForm.OpenInExplorerItemClick(Sender: TObject);
patch: TPatch;
begin
// loop through patches
- for i := 0 to Pred(PatchesListView.Items.Count) do begin
+ for i := 0 to Pred(PatchesListView.Items.Count) do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
patch := TPatch(PatchesList[i]);
@@ -2138,29 +2267,30 @@ procedure TSmashForm.ToggleRebuildItemClick(Sender: TObject);
patch: TPatch;
begin
// loop through patches
- for i := 0 to Pred(PatchesListView.Items.Count) do begin
+ for i := 0 to Pred(PatchesListView.Items.Count) do
+ begin
if not PatchesListView.Items[i].Selected then
continue;
patch := TPatch(PatchesList[i]);
- Logger.Write('PATCH', 'Status', 'Toggled rebuild status on '+patch.name);
+ Logger.Write('PATCH', 'Status', 'Toggled rebuild status on ' + patch.name);
// if forced up to date, set to Ready to be rebuilt
if patch.status = psUpToDateForced then
patch.status := psRebuildReady
- // if normal up to date, set to Ready to rebuilt [forced]
+ // if normal up to date, set to Ready to rebuilt [forced]
else if patch.status = psUpToDate then
- patch.Status := psRebuildReadyForced
- // if force rebuild, set to Up to date
+ patch.status := psRebuildReadyForced
+ // if force rebuild, set to Up to date
else if patch.status = psRebuildReadyForced then
patch.status := psUpToDate
- // if normal rebuild, set to Up to date [Forced]
+ // if normal rebuild, set to Up to date [Forced]
else if patch.status = psRebuildReady then
- patch.Status := psUpToDateForced;
+ patch.status := psUpToDateForced;
end;
// update
UpdatePatches;
UpdateListViews;
- UpdateQuickBar;
+ UpdateQuickbar;
end;
{ Double click to edit patch }
@@ -2177,7 +2307,7 @@ procedure TSmashForm.PatchesListViewKeyDown(Sender: TObject; var Key: Word;
DeletePatchItemClick(nil);
end;
-{******************************************************************************}
+{ ****************************************************************************** }
{ QuickBar Button Events
Events involving buttons on the QuickBar. Events include:
- CreatePatchButtonClick
@@ -2188,7 +2318,7 @@ procedure TSmashForm.PatchesListViewKeyDown(Sender: TObject; var Key: Word;
- UpdateButtonClick
- HelpButtonClick
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure TSmashForm.UpdateQuickbar;
var
@@ -2197,7 +2327,8 @@ procedure TSmashForm.UpdateQuickbar;
sTitle: string;
begin
// DISABLE ALL BUTTONS IF INITIALIZATION EXCEPTION
- if ProgramStatus.bInitException then begin
+ if ProgramStatus.bInitException then
+ begin
QuickButton.Enabled := false;
NewButton.Enabled := false;
BuildButton.Enabled := false;
@@ -2209,7 +2340,8 @@ procedure TSmashForm.UpdateQuickbar;
// BUILD BUTTON
bPatchesToBuild := false;
bPatchesToCheck := false;
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
patch := TPatch(PatchesList[i]);
if (patch.status in BuildStatuses) then
bPatchesToBuild := true;
@@ -2231,10 +2363,11 @@ procedure TSmashForm.UpdateQuickbar;
function TSmashForm.GetSmashedPatch: TPatch;
begin
- Result := TPatchHelpers.PatchByName(PatchesList, 'Smashed Patch');
+ Result := TPatchHelpers.PatchByName(PatchesList, 'Smashed Patch');
if Assigned(Result) then
RemoveUnloadedPlugins(Result)
- else begin
+ else
+ begin
Result := TPatchHelpers.CreateNewPatch(PatchesList);
Result.name := 'Smashed Patch';
Result.filename := 'Smashed Patch.esp';
@@ -2247,10 +2380,10 @@ procedure TSmashForm.StartPatching;
// make and show progress form
self.Enabled := false;
xEditLogGroup := 'PATCH';
- pForm := TProgressForm.Create(Self);
- pForm.pfLogPath := LogPath + 'patch\';
+ pForm := TProgressForm.Create(self);
+ //pForm.pfLogPath := LogPath + 'patch\';
pForm.bDetailsVisible := false;
- pForm.PopupParent := Self;
+ pForm.PopupParent := self;
pForm.Caption := GetLanguageString('msProg_Smashing');
pForm.SetMaxProgress(IntegerListSum(timeCosts, Pred(timeCosts.Count)));
pForm.Show;
@@ -2271,14 +2404,16 @@ procedure TSmashForm.QuickButtonClick(Sender: TObject);
smashAll := TSettingHelpers.SettingByName('Smash.All');
// STEP 2: if Smash.All setting not found, exit
- if not Assigned(smashAll) then exit;
+ if not Assigned(smashAll) then
+ exit;
// STEP 3: find and clear or create smashed patch
smashedPatch := GetSmashedPatch;
// STEP 5: apply Smash.All to all loaded plugins except game ESM
// STEP 6: add all loaded plugins except game ESM to smashed patch
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
plugin := TPlugin(PluginsList[i]);
if SameText(plugin.filename, wbGameName + '.esm') then
continue;
@@ -2296,11 +2431,11 @@ procedure TSmashForm.QuickButtonClick(Sender: TObject);
// check/fix smashed patch status
if smashedPatch.status = psUpToDate then
smashedPatch.status := psRebuildReadyForced;
- if not (smashedPatch.status in BuildStatuses) then
+ if not(smashedPatch.status in BuildStatuses) then
exit;
// STEP 7: build smashed patch
- Logger.Write('PATCH', 'Build', 'Building '+smashedPatch.name);
+ Logger.Write('PATCH', 'Build', 'Building ' + smashedPatch.name);
patchesToBuild := TList.Create;
timeCosts := TStringList.Create;
patchesToBuild.Add(smashedPatch);
@@ -2319,13 +2454,15 @@ procedure TSmashForm.BuildButtonClick(Sender: TObject);
patch: TPatch;
begin
// exit if the loader isn't done
- if not wbLoaderDone then begin
+ if not wbLoaderDone then
+ begin
Logger.Write('ERROR', 'Patch', 'Loader not done, can''t patch yet!');
exit;
end;
// exit if there are no patches
- if PatchesList.Count = 0 then begin
+ if PatchesList.Count = 0 then
+ begin
Logger.Write('ERROR', 'Patch', 'There are no patches!');
exit;
end;
@@ -2333,18 +2470,20 @@ procedure TSmashForm.BuildButtonClick(Sender: TObject);
// calculate time costs, prepare patches
timeCosts := TStringList.Create;
patchesToBuild := TList.Create;
- for i := 0 to Pred(PatchesList.Count) do begin
+ for i := 0 to Pred(PatchesList.Count) do
+ begin
patch := TPatch(PatchesList[i]);
- if not (patch.status in BuildStatuses) then
+ if not(patch.status in BuildStatuses) then
continue;
- Logger.Write('PATCH', 'Build', 'Building '+patch.name);
+ Logger.Write('PATCH', 'Build', 'Building ' + patch.name);
timeCost := patch.GetTimeCost;
patchesToBuild.Add(patch);
timeCosts.Add(IntToStr(timeCost));
end;
// exit if no patches to build
- if timeCosts.Count = 0 then begin
+ if timeCosts.Count = 0 then
+ begin
Logger.Write('ERROR', 'Patch', 'No patches to build!');
timeCosts.Free;
patchesToBuild.Free;
@@ -2380,7 +2519,7 @@ procedure TSmashForm.OptionsButtonClick(Sender: TObject);
begin
prevLanguage := settings.language;
// Create and show options form
- OptionsForm := TOptionsForm.Create(Self);
+ OptionsForm := TOptionsForm.Create(self);
OptionsForm.ShowModal;
OptionsForm.Free;
@@ -2391,7 +2530,8 @@ procedure TSmashForm.OptionsButtonClick(Sender: TObject);
RebuildLog;
// if user changed language, update language displayed
- if settings.language <> prevLanguage then begin
+ if settings.language <> prevLanguage then
+ begin
LoadLanguage;
TRttiTranslation.Load(language, self);
end;
@@ -2399,7 +2539,7 @@ procedure TSmashForm.OptionsButtonClick(Sender: TObject);
// update gui
UpdatePatches;
UpdateListViews;
- UpdateQuickBar;
+ UpdateQuickbar;
UpdateStatusBar;
// if user selected to change game mode, close application
diff --git a/frontend/msSplashForm.dfm b/frontend/msSplashForm.dfm
old mode 100644
new mode 100755
index 65a3751..bde45f7
--- a/frontend/msSplashForm.dfm
+++ b/frontend/msSplashForm.dfm
@@ -14044,9 +14044,9 @@ object SplashForm: TSplashForm
object lblAuthor: TLabel
Left = 24
Top = 168
- Width = 93
+ Width = 133
Height = 13
- Caption = 'by matortheeternal'
+ Caption = 'created by matortheeternal'
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
@@ -14089,4 +14089,19 @@ object SplashForm: TSplashForm
ParentColor = False
ParentFont = False
end
+ object lblAuthor2: TLabel
+ Left = 24
+ Top = 181
+ Width = 92
+ Height = 13
+ Caption = 'v2 by chuckseven1'
+ Color = clWhite
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlack
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ ParentColor = False
+ ParentFont = False
+ end
end
diff --git a/frontend/msSplashForm.pas b/frontend/msSplashForm.pas
old mode 100644
new mode 100755
index 8382718..a077ab2
--- a/frontend/msSplashForm.pas
+++ b/frontend/msSplashForm.pas
@@ -17,6 +17,7 @@ TSplashForm = class(TForm)
lblAuthor: TLabel;
lblProgress: TLabel;
lblVersion: TLabel;
+ lblAuthor2: TLabel;
procedure ProgressMessage(const s: string);
procedure FormCreate(Sender: TObject);
private
@@ -34,14 +35,14 @@ implementation
procedure TSplashForm.ProgressMessage(const s: string);
begin
- lblProgress.Caption := ' '+s;
+ lblProgress.Caption := ' ' + s;
Application.ProcessMessages;
end;
procedure TSplashForm.FormCreate(Sender: TObject);
begin
Tracker.OnLogEvent := ProgressMessage;
- lblVersion.Caption := 'v'+GetVersionMem;
+ lblVersion.Caption := 'v' + GetVersionMem;
if settings.simpleSplash then
lblProgress.GlowSize := 0;
diff --git a/frontend/msTagHelper.dfm b/frontend/msTagHelper.dfm
old mode 100644
new mode 100755
diff --git a/frontend/msTagHelper.pas b/frontend/msTagHelper.pas
old mode 100644
new mode 100755
index bba6bf7..6b32919
--- a/frontend/msTagHelper.pas
+++ b/frontend/msTagHelper.pas
@@ -40,7 +40,8 @@ procedure TTagHelper.FormClose(Sender: TObject; var Action: TCloseAction);
begin
slTags.Clear;
if ModalResult = mrOK then
- for i := 0 to Pred(CheckList.Items.Count) do begin
+ for i := 0 to Pred(CheckList.Items.Count) do
+ begin
if CheckList.Checked[i] then
slTags.Add(CheckList.Items[i]);
end;
@@ -60,14 +61,16 @@ procedure TTagHelper.FormShow(Sender: TObject);
begin
// update lblPrompt
case iMode of
- -1: begin
- Caption := GetLanguageString('msTagH_RemoveTags');
- lblPrompt.Caption := GetLanguageString('msTagH_PromptRemove');
- end;
- 1: begin
- Caption := GetLanguageString('msTagH_AddTags');
- lblPrompt.Caption := GetLanguageString('msTagH_PromptAdd');
- end;
+ - 1:
+ begin
+ Caption := GetLanguageString('msTagH_RemoveTags');
+ lblPrompt.Caption := GetLanguageString('msTagH_PromptRemove');
+ end;
+ 1:
+ begin
+ Caption := GetLanguageString('msTagH_AddTags');
+ lblPrompt.Caption := GetLanguageString('msTagH_PromptAdd');
+ end;
end;
// populate checklist
diff --git a/frontend/msTagManager.dfm b/frontend/msTagManager.dfm
old mode 100644
new mode 100755
diff --git a/frontend/msTagManager.pas b/frontend/msTagManager.pas
old mode 100644
new mode 100755
index 97ba8e4..c873102
--- a/frontend/msTagManager.pas
+++ b/frontend/msTagManager.pas
@@ -111,7 +111,8 @@ procedure TTagManager.FormShow(Sender: TObject);
procedure TTagManager.FormClose(Sender: TObject; var Action: TCloseAction);
begin
- if ModalResult = mrOK then begin
+ if ModalResult = mrOK then
+ begin
plugin.description.Text := meDescription.Lines.Text;
if kbCombine.Checked then
plugin.GetSettingTag;
diff --git a/frontend/msThreads.pas b/frontend/msThreads.pas
old mode 100644
new mode 100755
index 24558dc..15425a8
--- a/frontend/msThreads.pas
+++ b/frontend/msThreads.pas
@@ -12,25 +12,28 @@ interface
// ms units
msCore, msConfiguration, msLoader, msSmash,
// xedit units
- wbBSA, wbInterface, wbImplementation;
-
+ wbBSA, wbHardcoded, wbInterface, wbImplementation, wbLoadOrder;
type
// THREADS AND CALLBACKS
TCallback = procedure of object;
TStatusCallback = procedure(s: string) of object;
+
TInitThread = class(TThread)
protected
procedure Execute; override;
end;
+
TLoaderThread = class(TThread)
protected
procedure Execute; override;
end;
+
TPatchThread = class(TThread)
protected
procedure Execute; override;
end;
+
TSaveThread = class(TThread)
protected
procedure Execute; override;
@@ -38,13 +41,12 @@ TSaveThread = class(TThread)
var
InitCallback, LoaderCallback, ErrorCheckCallback, ErrorFixCallback,
- PatchCallback, SaveCallback: TCallback;
+ PatchCallback, SaveCallback: TCallback;
StatusCallback: TStatusCallback;
implementation
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ THREAD METHODS
These are threads that the program will run for various large jobs which need
to be decoupled from general program operation and the GUI.
@@ -57,19 +59,21 @@ implementation
- TPatchThread.Execute
- TSaveThread.Execute
}
-{******************************************************************************}
+{ ****************************************************************************** }
{ TInitThread }
procedure TInitThread.Execute;
var
i: integer;
plugin: TPlugin;
+ b: TBytes;
aFile: IwbFile;
+ aModule: PwbModuleInfo;
begin
try
// PRINT LOAD ORDER TO LOG
for i := 0 to Pred(slPlugins.Count) do
- Logger.Write('LOAD', 'Order', '['+IntToHex(i, 2)+'] '+slPlugins[i]);
+ Logger.Write('LOAD', 'Order', '[' + IntToHex(i, 2) + '] ' + slPlugins[i]);
// LOAD RESOURCES
Tracker.Write('Loading Resources');
@@ -77,36 +81,49 @@ procedure TInitThread.Execute;
LoadBSAs;
// LOAD PLUGINS
- for i := 0 to Pred(slPlugins.Count) do begin
- Tracker.Write('Loading '+slPlugins[i]);
+ for i := 0 to Pred(slPlugins.Count) do
+ begin
+ Tracker.Write('Loading ' + slPlugins[i]);
try
plugin := TPlugin.Create;
plugin.filename := slPlugins[i];
- plugin._File := wbFile(wbDataPath + slPlugins[i], i, '', False, False);
+ // aModule := wbModuleByName(slPlugins[i]);
+ plugin._File := wbFile(slPlugins[i], i);
plugin._File._AddRef;
plugin.GetMsData;
PluginsList.Add(Pointer(plugin));
except
- on x: Exception do begin
- Logger.Write('ERROR', 'Load', 'Exception loading '+slPlugins[i]);
+ on x: Exception do
+ begin
+ Logger.Write('ERROR', 'Load', 'Exception loading ' + slPlugins[i]);
Logger.Write('ERROR', 'Load', x.Message);
ProgramStatus.bLoadException := true;
end;
end;
// load hardcoded dat
- if i = 0 then try
- aFile := wbFile(wbProgramPath + wbGameName + wbHardcodedDat, 0);
- aFile._AddRef;
- except
- on x: Exception do begin
- Logger.Write('ERROR', 'Load', 'Exception loading '+wbGameName+wbHardcodedDat);
- Logger.Write('ERROR', 'Load', 'Please download and install this dat file!');
- raise x;
+ if i = 0 then
+ try
+ b := TwbHardCodedContainer.GetHardCodedDat;
+ aFile := wbFile(wbGameExeName, 0, '', [fsIsHardcoded], b);
+ aFile._AddRef;
+ except
+ on x: Exception do
+ begin
+ Logger.Write('ERROR', 'Load', 'Exception loading ' + wbGameName +
+ ' hardcoded dat');
+ Logger.Write('ERROR', 'Load',
+ 'Please download and install this dat file!');
+ raise x;
+ end;
end;
- end;
end;
+ // LOAD RESOURCES
+ Tracker.Write('Loading Resources');
+ wbContainerHandler.AddFolder(wbDataPath);
+ LoadBSAs;
+
// LOAD PLUGIN INFORMATION
Tracker.Write('Loading plugin information');
TPatchHelpers.AssignPatchesToPlugins;
@@ -116,7 +133,8 @@ procedure TInitThread.Execute;
// CLEAN UP
slPlugins.Free;
except
- on x: Exception do begin
+ on x: Exception do
+ begin
if Assigned(slPlugins) then
slPlugins.Free;
ProgramStatus.bInitException := true;
@@ -139,7 +157,7 @@ procedure LoaderProgress(const s: string);
procedure TLoaderThread.Execute;
var
- i: Integer;
+ i: integer;
f: IwbFile;
plugin: TPlugin;
begin
@@ -147,23 +165,27 @@ procedure TLoaderThread.Execute;
StatusCallback(Format('%s (%d/%d)',
[GetLanguageString('msMain_LoaderInProgress'), 1, PluginsList.Count]));
try
- for i := 0 to Pred(PluginsList.Count) do begin
+ for i := 0 to Pred(PluginsList.Count) do
+ begin
StatusCallback(Format('%s (%d/%d)',
- [GetLanguageString('msMain_LoaderInProgress'), i + 1, PluginsList.Count]));
+ [GetLanguageString('msMain_LoaderInProgress'), i + 1,
+ PluginsList.Count]));
plugin := TPlugin(PluginsList[i]);
f := plugin._File;
if SameText(plugin.filename, wbGameName + '.esm') then
continue;
LoaderProgress('[' + plugin.filename + '] Building reference info.');
f.BuildRef;
- if ProgramStatus.bForceTerminate then begin
+ if ProgramStatus.bForceTerminate then
+ begin
LoaderProgress('Aborted.');
break;
end;
end;
except
- on E: Exception do begin
- LoaderProgress('Fatal: <' + e.ClassName + ': ' + e.Message + '>');
+ on E: Exception do
+ begin
+ LoaderProgress('Fatal: <' + E.ClassName + ': ' + E.Message + '>');
wbLoaderError := true;
ProgramStatus.bInitException := true;
end;
@@ -182,11 +204,14 @@ procedure PlaySmashSound;
PWav: Pointer;
begin
HResource := FindResource(HInstance, PChar('SMASH'), 'WAV');
- if HResource = 0 then exit;
+ if HResource = 0 then
+ exit;
HResData := LoadResource(HInstance, HResource);
- if HResData = 0 then exit;
+ if HResData = 0 then
+ exit;
PWav := LockResource(HResData);
- if not Assigned(PWav) then exit;
+ if not Assigned(PWav) then
+ exit;
sndPlaySound(nil, SND_NODEFAULT);
sndPlaySound(PWav, SND_ASYNC or SND_MEMORY);
end;
@@ -196,20 +221,25 @@ procedure TPatchThread.Execute;
i: integer;
patch: TPatch;
begin
+ Tracker.Tag := 'patch';
FreeOnTerminate := true;
// build patches
- for i := 0 to Pred(patchesToBuild.Count) do begin
- if Tracker.Cancel then break;
+ for i := 0 to Pred(patchesToBuild.Count) do
+ begin
+ if Tracker.Cancel then
+ break;
patch := TPatch(patchesToBuild[i]);
StatusCallback(Format('%s "%s" (%d/%d)',
- [GetLanguageString('msProg_Smashing'), patch.name, i + 1, patchesToBuild.Count]));
+ [GetLanguageString('msProg_Smashing'), patch.name, i + 1,
+ patchesToBuild.Count]));
try
if (patch.status in RebuildStatuses) then
RebuildPatch(patch)
else
BuildPatch(patch);
except
- on x : Exception do begin
+ on x: Exception do
+ begin
patch.status := psFailed;
Tracker.Write('Exception: ' + x.Message);
end;
@@ -223,10 +253,12 @@ procedure TPatchThread.Execute;
end;
// say thread is done if it wasn't cancelled
- if not Tracker.Cancel then begin
+ if not Tracker.Cancel then
+ begin
Tracker.Write('All done!');
try
- if settings.smashSound then PlaySmashSound;
+ if settings.smashSound then
+ PlaySmashSound;
except
on x: Exception do
Tracker.Write('Failed to play Smash sound.');
@@ -246,13 +278,15 @@ procedure TSaveThread.Execute;
FreeOnTerminate := true;
// save ESPs only if it's safe to do so
- if not ProgramStatus.bInitException then begin
+ if not ProgramStatus.bInitException then
+ begin
// Save plugin errors
try
+ Tracker.Tag := 'save';
SavePluginInfo;
except
on x: Exception do
- Tracker.Write('Exception saving plugin errors '+x.Message);
+ Tracker.Write('Exception saving plugin errors ' + x.Message);
end;
Tracker.SetProgress(PluginsList.Count + 1);
diff --git a/frontend/settings/Fallout4/Smash.All.json b/frontend/settings/Fallout4/Smash.All.json
old mode 100644
new mode 100755
index b03f935..01c7c2f
--- a/frontend/settings/Fallout4/Smash.All.json
+++ b/frontend/settings/Fallout4/Smash.All.json
@@ -1 +1 @@
-{"records":"ACHR,ACTI,ADDN,AECH,ALCH,AMDL,AMMO,ANIO,AORU,ARMA,ARMO,ARTO,ASPC,ASTP,AVIF,BNDS,BOOK,BPTD,CAMS,CELL,CLAS,CLFM,CLMT,CMPO,COBJ,COLL,CONT,CPTH,CSTY,DEBR,DFOB,DIAL,DLBR,DLVW,DMGT,DOOR,DUAL,ECZN,EFSH,ENCH,EQUP,EXPL,FACT,FLOR,FLST,FSTP,FSTS,FURN,GDRY,GLOB,GMST,GRAS,HAZD,HDPT,IDLM,IMAD,IMGS,INFO,INGR,INNR,IPCT,IPDS,KEYM,KSSM,KYWD,LAND,LAYR,LCRT,LENS,LGTM,LIGH,LSCR,LTEX,LVLI,LVLN,LVSP,MATO,MATT,MESG,MGEF,MISC,MOVT,MSTT,MSWP,MUSC,MUST,NOTE,NPC_,OMOD,OTFT,PACK,PARW,PBAR,PBEA,PCON,PERK,PFLA,PGRE,PHZD,PKIN,PMIS,PROJ,QUST,REFR,REGN,RELA,REVB,RFCT,RFGP,SCCO,SCEN,SCOL,SCSN,SMBN,SMEN,SMQN,SNCT,SNDR,SOPM,SOUN,SPEL,SPGD,STAG,STAT,TACT,TERM,TREE,TRNS,TXST,VTYP,WATR,WEAP,WRLD,WTHR,ZOOM,AACT","description":"Smashes all the things. Produced using autoset attributes on all record types found in Fallout4.esm.\r\n\r\nLast updated 05\/01\/2018.","tree":{"records":[{"t":1,"p":1,"n":"ACHR - Placed NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":6,"s":1,"p":1,"n":"Patrol Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":3,"p":1,"n":"TNAM - Topic"}]},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XCNT - Count"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":3,"p":1,"n":"XHLT - Health %"},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":8,"s":1,"p":1,"n":"Spline Connection","d":1,"c":[{"t":6,"p":1,"n":"XPLK - Link","c":[{"t":3,"p":1,"n":"Ref"},{"t":11,"n":"Unknown"}]}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIBS - Ignored By Sandbox"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"ACTI - Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"p":1,"n":"STCP - Sound"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":6,"s":1,"p":1,"n":"PNAM - Marker Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"SNAM - Sound - Looping"},{"t":3,"p":1,"n":"VNAM - Sound - Activation"},{"t":3,"p":1,"n":"WNAM - Water Type"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"},{"t":6,"s":1,"p":1,"n":"RADR - Radio Receiver","c":[{"t":3,"p":1,"n":"Sound Model"},{"t":5,"p":1,"n":"Frequency"},{"t":5,"p":1,"n":"Volume"},{"t":3,"p":1,"n":"Starts Active"},{"t":3,"p":1,"n":"No Signal Static"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]}]},{"t":1,"p":1,"n":"ADDN - Addon Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DATA - Node Index"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":3,"p":1,"n":"LNAM - Light"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Master Particle System Cap"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"AECH - Audio Effect Chain","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"KNAM - Type"},{"t":6,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Enabled"},{"t":5,"p":1,"n":"Input Gain"},{"t":5,"p":1,"n":"Center Freq"},{"t":5,"p":1,"n":"Feedback %"},{"t":5,"p":1,"n":"Output Gain"},{"t":5,"p":1,"n":"Q Value"},{"t":5,"p":1,"n":"Wet Mix %"},{"t":5,"p":1,"n":"Upper Threshold"},{"t":3,"p":1,"n":"Filter Mode"},{"t":3,"p":1,"n":"Delay MS"},{"t":5,"p":1,"n":"Lower Threshold"},{"t":11,"n":"Unused"}]}]}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"CUSD - Sound - Crafting"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Addiction"},{"t":5,"p":1,"n":"Addiction Chance"},{"t":3,"p":1,"n":"Sound - Consume"}]},{"t":2,"p":1,"n":"DNAM - Addiction Name"},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMDL - Aim Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":5,"p":1,"n":"Cone of Fire - Min Angle"},{"t":5,"p":1,"n":"Cone of Fire - Max Angle"},{"t":5,"p":1,"n":"Cone of Fire - Increase Per Shot"},{"t":5,"p":1,"n":"Cone of Fire - Decrease Per Sec"},{"t":3,"p":1,"n":"Cone of Fire - Decrease Delay MS"},{"t":5,"p":1,"n":"Cone of Fire - Sneak Mult"},{"t":5,"p":1,"n":"Recoil - Diminish Spring Force"},{"t":5,"p":1,"n":"Recoil - Diminish Sights Mult"},{"t":5,"p":1,"n":"Recoil - Max Per Shot"},{"t":5,"p":1,"n":"Recoil - Min Per Shot"},{"t":5,"p":1,"n":"Recoil - Hip Mult"},{"t":3,"p":1,"n":"Runaway - Recoil Shots"},{"t":5,"p":1,"n":"Recoil - Arc"},{"t":5,"p":1,"n":"Recoil - Arc Rotate"},{"t":5,"p":1,"n":"Cone of Fire - Iron Sights Mult"},{"t":5,"p":1,"n":"Stability - Base Stability"}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Damage"},{"t":3,"p":1,"n":"Health"}]},{"t":2,"p":1,"n":"ONAM - Short Name"},{"t":2,"p":1,"n":"NAM1 - Casing Model"},{"t":11,"n":"NAM2 - Texture Files Hashes"}]},{"t":1,"p":1,"n":"ANIO - Animated Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"BNAM - Unload Event"}]},{"t":1,"p":1,"n":"AORU - Attraction Rule","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"AOR2 - Data","c":[{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Delay"},{"t":5,"p":1,"n":"Max Delay"},{"t":3,"p":1,"n":"Requires Line of Sight"},{"t":3,"p":1,"n":"Combat Target"},{"t":11,"n":"Unused"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"}]},{"t":3,"p":1,"n":"RNAM - Race"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Male Priority"},{"t":3,"p":1,"n":"Female Priority"},{"t":3,"p":1,"n":"Weight slider - Male"},{"t":3,"p":1,"n":"Weight slider - Female"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Detection Sound Value"},{"t":5,"p":1,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO2S - Material Swap"},{"t":5,"p":1,"n":"MO2C - Color Remapping Index"},{"t":11,"n":"MO2F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO3S - Material Swap"},{"t":5,"p":1,"n":"MO3C - Color Remapping Index"},{"t":11,"n":"MO3F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"},{"t":5,"p":1,"n":"MO4C - Color Remapping Index"},{"t":11,"n":"MO4F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model Filename"},{"t":11,"p":1,"n":"MO5T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO5S - Material Swap"},{"t":5,"p":1,"n":"MO5C - Color Remapping Index"},{"t":11,"n":"MO5F - Unknown"}]},{"t":3,"p":1,"n":"NAM0 - Male Skin Texture"},{"t":3,"p":1,"n":"NAM1 - Female Skin Texture"},{"t":3,"p":1,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"p":1,"n":"NAM3 - Female Skin Texture Swap List"},{"t":8,"s":1,"p":1,"n":"Additional Races","d":1,"c":[{"t":3,"p":1,"n":"MODL - Race"}]},{"t":3,"p":1,"n":"SNDD - Footstep Sound"},{"t":3,"p":1,"n":"ONAM - Art Object"},{"t":8,"s":1,"p":1,"n":"Bone Data","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":3,"p":1,"n":"BSMP - Gender"},{"t":8,"p":1,"n":"Bones","c":[{"t":6,"p":1,"n":"Bone","c":[{"t":2,"p":1,"n":"BSMB - Name"},{"t":7,"p":1,"n":"BSMS - Values","c":[{"t":5,"p":1,"n":"Value"}]},{"t":11,"n":"BMMP - Unknown"}]}]}]}]}]},{"t":1,"p":1,"n":"ARMO - Armor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO2S - Material Swap"}]},{"t":2,"p":1,"n":"ICON - Male Inventory Image"},{"t":2,"p":1,"n":"MICO - Male Message Icon"},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"}]},{"t":2,"p":1,"n":"ICO2 - Female Inventory Image"},{"t":2,"p":1,"n":"MIC2 - Female Message Icon"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"INRD - Instance Naming"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":3,"p":1,"n":"INDX - Addon Index"},{"t":3,"p":1,"n":"MODL - Armor Addon"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Health"}]},{"t":6,"s":1,"p":1,"n":"FNAM - ","c":[{"t":3,"p":1,"n":"Armor Rating"},{"t":3,"p":1,"n":"Base Addon Index"},{"t":3,"p":1,"n":"Stagger Rating"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMA - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"TNAM - Template Armor"},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]}]},{"t":1,"p":1,"n":"ARTO - Art Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"ASPC - Acoustic Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":3,"p":1,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"p":1,"n":"BNAM - Environment Type"},{"t":3,"p":1,"n":"XTRI - Is Interior"},{"t":3,"p":1,"n":"WNAM - Weather Attenuation (dB)"}]},{"t":1,"p":1,"n":"ASTP - Association Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MPRT - Male Parent Title"},{"t":2,"p":1,"n":"FPRT - Female Parent Title"},{"t":2,"p":1,"n":"MCHT - Male Child Title"},{"t":2,"p":1,"n":"FCHT - Female Child Title"},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ANAM - Abbreviation"},{"t":5,"p":1,"n":"NAM0 - Default Value"},{"t":3,"p":1,"n":"AVFL - Flags"},{"t":3,"p":1,"n":"NAM1 - Type"}]},{"t":1,"p":1,"n":"BNDS - Bendable Spline","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":5,"p":1,"n":"Default Number of Tiles"},{"t":3,"p":1,"n":"Default Number of Slices"},{"t":3,"p":1,"n":"Default Number of Tiles - Relative to Length"},{"t":6,"p":1,"n":"Default Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Wind Settings - Sensibility"},{"t":5,"p":1,"n":"Wind Settings - Flexibility"}]},{"t":3,"p":1,"n":"TNAM - Texture"}]},{"t":1,"p":1,"n":"BOOK - Book","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FIMD - Featured Item Message"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Perk"},{"t":6,"p":1,"n":"Text Offset","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]},{"t":2,"p":1,"n":"CNAM - Description"},{"t":3,"p":1,"n":"INAM - Inventory Art"}]},{"t":1,"p":1,"n":"BPTD - Body Part Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":10,"p":1,"n":"Body Parts","d":1,"c":[{"t":6,"p":1,"n":"Body Part","c":[{"t":2,"p":1,"n":"BPTN - Part Name"},{"t":2,"p":1,"n":"BPNN - Part Node"},{"t":2,"p":1,"n":"BPNT - VATS Target"},{"t":6,"p":1,"n":"BPND - ","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":3,"p":1,"n":"Explodable - Debris"},{"t":3,"p":1,"n":"Explodable - Explosion"},{"t":5,"p":1,"n":"Explodable - Debris Scale"},{"t":3,"p":1,"n":"Severable - Debris"},{"t":3,"p":1,"n":"Severable - Explosion"},{"t":5,"p":1,"n":"Severable - Debris Scale"},{"t":5,"p":1,"n":"Cut - Min"},{"t":5,"p":1,"n":"Cut - Max"},{"t":5,"p":1,"n":"Cut - Radius"},{"t":5,"p":1,"n":"Gore Effects - Local Rotate X"},{"t":5,"p":1,"n":"Gore Effects - Local Rotate Y"},{"t":5,"p":1,"n":"Cut - Tesselation"},{"t":3,"p":1,"n":"Severable - Impact DataSet"},{"t":3,"p":1,"n":"Explodable - Impact DataSet"},{"t":5,"p":1,"n":"Explodable - Limb Replacement Scale"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Part Type"},{"t":3,"p":1,"n":"Health Percent"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"To Hit Chance"},{"t":3,"p":1,"n":"Explodable - Explosion Chance %"},{"t":3,"p":1,"n":"Non-Lethal Dismemberment Chance"},{"t":3,"p":1,"n":"Severable - Debris Count"},{"t":3,"p":1,"n":"Explodable - Debris Count"},{"t":3,"p":1,"n":"Severable - Decal Count"},{"t":3,"p":1,"n":"Explodable - Decal Count"},{"t":3,"p":1,"n":"Geometry Segment Index"},{"t":3,"p":1,"n":"On Cripple - Art Object"},{"t":3,"p":1,"n":"On Cripple - Debris"},{"t":3,"p":1,"n":"On Cripple - Explosion"},{"t":3,"p":1,"n":"On Cripple - Impact DataSet"},{"t":5,"p":1,"n":"On Cripple - Debris Scale"},{"t":3,"p":1,"n":"On Cripple - Debris Count"},{"t":3,"p":1,"n":"On Cripple - Decal Count"}]},{"t":2,"p":1,"n":"NAM1 - Limb Replacement Model"},{"t":2,"p":1,"n":"NAM4 - Gore Effects - Target Bone"},{"t":11,"p":1,"n":"NAM5 - Texture Files Hashes"},{"t":2,"p":1,"n":"ENAM - Hit Reaction - Start"},{"t":2,"p":1,"n":"FNAM - Hit Reaction - End"},{"t":3,"p":1,"n":"BNAM - Gore Effects - Dismember Blood Art"},{"t":3,"p":1,"n":"INAM - Gore Effects - Blood Impact Material Type"},{"t":3,"p":1,"n":"JNAM - On Cripple - Blood Impact Material Type"},{"t":3,"p":1,"n":"CNAM - Meat Cap TextureSet"},{"t":3,"p":1,"n":"NAM2 - Collar TextureSet"},{"t":2,"p":1,"n":"DNAM - Twist Variable Prefix"}]}]}]},{"t":1,"p":1,"n":"CAMS - Camera Shot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Action"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Time Multipliers","c":[{"t":5,"p":1,"n":"Player"},{"t":5,"p":1,"n":"Target"},{"t":5,"p":1,"n":"Global"}]},{"t":5,"p":1,"n":"Max Time"},{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Target % Between Actors"},{"t":5,"p":1,"n":"Near Target Distance"},{"t":5,"p":1,"n":"Location Spring"},{"t":5,"p":1,"n":"Target Spring"},{"t":6,"p":1,"n":"Rotation Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"}]},{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"XCLC - Grid","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Force Hide Land"}]},{"t":11,"n":"VISI - PreVis Files Timestamp"},{"t":3,"p":1,"n":"RVIS - In PreVis File Of"},{"t":11,"n":"PCMB - PreCombined Files Timestamp"},{"t":6,"s":1,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":3,"p":1,"n":"Inherits"},{"t":5,"p":1,"n":"Near Height Mid"},{"t":5,"p":1,"n":"Near Height Range"},{"t":6,"p":1,"n":"Fog Color High Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color High Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"High Density Scale"},{"t":5,"p":1,"n":"Fog Near Scale"},{"t":5,"p":1,"n":"Fog Far Scale"},{"t":5,"p":1,"n":"Fog High Near Scale"},{"t":5,"p":1,"n":"Fog High Far Scale"},{"t":5,"p":1,"n":"Far Height Mid"},{"t":5,"p":1,"n":"Far Height Range"}]},{"t":3,"p":1,"n":"CNAM - Precombined Object Level XY"},{"t":3,"p":1,"n":"ZNAM - Precombined Object Level Z"},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"p":1,"n":"LTMP - Lighting Template"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":7,"p":1,"n":"XCLR - Regions","c":[{"t":3,"p":1,"n":"Region"}]},{"t":3,"p":1,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XILL - Lock List"},{"t":6,"s":1,"p":1,"n":"XILW - Exterior LOD","c":[{"t":3,"p":1,"n":"Worldspace"},{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"}]},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"p":1,"n":"XCAS - Acoustic Space"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"},{"t":3,"p":1,"n":"XGDR - God Rays"},{"t":7,"p":1,"n":"XPRI - Physics References","c":[{"t":3,"p":1,"n":"Reference"}]},{"t":6,"s":1,"p":1,"n":"XCRI - Combined References","c":[{"t":3,"p":1,"n":"Meshes Count"},{"t":3,"p":1,"n":"References Count"},{"t":7,"p":1,"n":"Meshes","c":[{"t":3,"p":1,"n":"Combined Mesh"}]},{"t":7,"p":1,"n":"References","c":[{"t":6,"p":1,"n":"Reference","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Combined Mesh"}]}]}]}]},{"t":1,"p":1,"n":"CLAS - Class","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Bleedout Default"}]}]},{"t":1,"p":1,"n":"CLFM - Color","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"CNAM - Color\/Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"CLMT - Climate","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"WLST - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":2,"p":1,"n":"FNAM - Sun Texture"},{"t":2,"p":1,"n":"GNAM - Sun Glare Texture"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Timing","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":3,"p":1,"n":"Volatility"},{"t":3,"p":1,"n":"Moons \/ Phase Length"}]}]},{"t":1,"p":1,"n":"CMPO - Component","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"CUSD - Sound - Crafting"},{"t":3,"p":1,"n":"DATA - Auto Calc Value"},{"t":3,"p":1,"n":"MNAM - Scrap Item"},{"t":3,"p":1,"n":"GNAM - Mod Scrap Scalar"}]},{"t":1,"p":1,"n":"COBJ - Constructible Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":7,"p":1,"n":"FVPA - Components","c":[{"t":6,"p":1,"n":"Component","c":[{"t":3,"p":1,"n":"Component"},{"t":3,"p":1,"n":"Count"}]}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"CNAM - Created Object"},{"t":3,"p":1,"n":"BNAM - Workbench Keyword"},{"t":11,"n":"NAM1 - Unused"},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":3,"p":1,"n":"ANAM - Menu Art Object"},{"t":7,"p":1,"n":"FNAM - Category","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"INTV - Data","c":[{"t":3,"p":1,"n":"Created Object Count"},{"t":3,"p":1,"n":"Priority"}]}]},{"t":1,"p":1,"n":"COLL - Collision Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"BNAM - Index"},{"t":6,"s":1,"p":1,"n":"FNAM - Debug Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"GNAM - Flags"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":3,"n":"INTV - Interactables Count"},{"t":7,"p":1,"n":"CNAM - Collides With","c":[{"t":3,"p":1,"n":"Forms"}]}]},{"t":1,"p":1,"n":"CONT - Container","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"QNAM - Sound - Close"},{"t":3,"p":1,"n":"TNAM - Sound - Take All"},{"t":3,"p":1,"n":"ONAM - Filter List"}]},{"t":1,"p":1,"n":"CPTH - Camera Path","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"ANAM - Related Camera Paths","c":[{"t":3,"p":1,"n":"Related Camera Path"}]},{"t":3,"p":1,"n":"DATA - Camera Zoom \/ Flags"},{"t":8,"s":1,"p":1,"n":"Camera Shots","d":1,"c":[{"t":3,"p":1,"n":"SNAM - Camera Shot"}]}]},{"t":1,"p":1,"n":"CSTY - Combat Style","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CSGD - General","c":[{"t":5,"p":1,"n":"Offensive Mult"},{"t":5,"p":1,"n":"Defensive Mult"},{"t":5,"p":1,"n":"Group Offensive Mult"},{"t":5,"p":1,"n":"Equipment Score Mult - Melee"},{"t":5,"p":1,"n":"Equipment Score Mult - Magic"},{"t":5,"p":1,"n":"Equipment Score Mult - Ranged"},{"t":5,"p":1,"n":"Equipment Score Mult - Shout"},{"t":5,"p":1,"n":"Equipment Score Mult - Unarmed"},{"t":5,"p":1,"n":"Equipment Score Mult - Staff"},{"t":5,"p":1,"n":"Avoid Threat Chance"},{"t":5,"p":1,"n":"Dodge Threat Chance"},{"t":5,"p":1,"n":"Evade Threat Chance"}]},{"t":11,"n":"CSMD - Unknown"},{"t":6,"s":1,"p":1,"n":"CSME - Melee","c":[{"t":5,"p":1,"n":"Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Blocking Mult"},{"t":5,"p":1,"n":"Bash Mult"},{"t":5,"p":1,"n":"Bash Recoil Mult"},{"t":5,"p":1,"n":"Bash Attack Mult"},{"t":5,"p":1,"n":"Bash Power Attack Mult"},{"t":5,"p":1,"n":"Special Attack Mult"},{"t":5,"p":1,"n":"Block When Staggered Mult"},{"t":5,"p":1,"n":"Attack When Staggered Mult"}]},{"t":5,"p":1,"n":"CSRA - Ranged Accuracy Mult"},{"t":6,"s":1,"p":1,"n":"CSCR - Close Range","c":[{"t":5,"p":1,"n":"Dueling - Circle Mult"},{"t":5,"p":1,"n":"Dueling - Fallback Mult"},{"t":5,"p":1,"n":"Flanking - Flank Distance"},{"t":5,"p":1,"n":"Flanking - Stalk Time"},{"t":5,"p":1,"n":"Charging - Charge Distance"},{"t":5,"p":1,"n":"Charging - Throw Probability"},{"t":5,"p":1,"n":"Charging - Sprint Fast Probability"},{"t":5,"p":1,"n":"Charging - Sideswipe Probability"},{"t":5,"p":1,"n":"Charging - Disengane Probability"},{"t":3,"p":1,"n":"Charging - Throw Max Targets"},{"t":5,"p":1,"n":"Flanking - Flank Variance"}]},{"t":6,"s":1,"p":1,"n":"CSLR - Long Range","c":[{"t":5,"p":1,"n":"Strafe Mult"},{"t":5,"p":1,"n":"Adjust Range Mult"},{"t":5,"p":1,"n":"Crouch Mult"},{"t":5,"p":1,"n":"Wait Mult"},{"t":5,"p":1,"n":"Range Mult"}]},{"t":5,"p":1,"n":"CSCV - Cover Search Distance Mult"},{"t":6,"s":1,"p":1,"n":"CSFL - Flight","c":[{"t":5,"p":1,"n":"Hover Chance"},{"t":5,"p":1,"n":"Dive Bomb Chance"},{"t":5,"p":1,"n":"Ground Attack Chance"},{"t":5,"p":1,"n":"Hover Time"},{"t":5,"p":1,"n":"Ground Attack Time"},{"t":5,"p":1,"n":"Perch Attack Chance"},{"t":5,"p":1,"n":"Perch Attack Time"},{"t":5,"p":1,"n":"Flying Attack Chance"}]},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"DEBR - Debris","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model Filename"},{"t":3,"p":1,"n":"Flags"}]},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"DFOB - Default Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Object"}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"p":1,"n":"PNAM - Priority"},{"t":3,"p":1,"n":"BNAM - Branch"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Topic Flags"},{"t":3,"p":1,"n":"Category"},{"t":3,"p":1,"n":"Subtype"}]},{"t":2,"p":1,"n":"SNAM - Subtype Name"},{"t":3,"p":1,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DLBR - Dialog Branch","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"n":"TNAM - Unknown"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Starting Topic"}]},{"t":1,"p":1,"n":"DLVW - Dialog View","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Branches","d":1,"c":[{"t":3,"p":1,"n":"BNAM - Branch"}]},{"t":8,"n":"Unknown TNAM","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"TNAM - Unknown"}]}]},{"t":11,"n":"ENAM - Unknown"},{"t":11,"n":"DNAM - Unknown"}]},{"t":1,"p":1,"n":"DMGT - Damage Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"Damage Types","c":[{"t":3,"p":1,"n":"Actor Value Index"}]}]},{"t":1,"n":"DOBJ - Default Object Manager","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"DNAM - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Use"},{"t":3,"n":"Object ID"}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"ANAM - Sound - Close"},{"t":3,"p":1,"n":"BNAM - Sound - Loop"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":2,"p":1,"n":"ONAM - Alternate Text - Open"},{"t":2,"p":1,"n":"CNAM - Alternate Text - Close"}]},{"t":1,"p":1,"n":"DUAL - Dual Cast Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"ECZN - Encounter Zone","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Min Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Max Level"}]}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture"},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture"},{"t":11,"n":"DATA - Unknown"},{"t":6,"s":1,"p":1,"n":"Data","c":[{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Holes Animation - Start Time"},{"t":5,"p":1,"n":"Holes Animation - End Time"},{"t":5,"p":1,"n":"Holes Animation - Start Value"},{"t":5,"p":1,"n":"Holes Animation - End Value"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"}]},{"t":6,"s":1,"p":1,"n":"Data (old format)","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"ENCH - Object Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Enchantment Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Enchantment Amount"},{"t":3,"p":1,"n":"Target Type"},{"t":3,"p":1,"n":"Enchant Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Base Enchantment"},{"t":3,"p":1,"n":"Worn Restrictions"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"EQUP - Equip Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"PNAM - Slot Parents","c":[{"t":3,"p":1,"n":"Parent"}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"ANAM - Condition Actor Value"}]},{"t":1,"p":1,"n":"EXPL - Explosion","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Sound 1"},{"t":3,"p":1,"n":"Sound 2"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Placed Object"},{"t":3,"p":1,"n":"Spawn Projectile"},{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Damage"},{"t":5,"p":1,"n":"Inner Radius"},{"t":5,"p":1,"n":"Outer Radius"},{"t":5,"p":1,"n":"IS Radius"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Vertical Offset Mult"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Sound Level"},{"t":5,"p":1,"n":"Placed Object AutoFade Delay"},{"t":3,"p":1,"n":"Stagger"},{"t":6,"p":1,"n":"Spawn","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"},{"t":5,"p":1,"n":"Spread Degrees"},{"t":3,"p":1,"n":"Count"}]}]}]},{"t":1,"p":1,"n":"FACT - Faction","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"Relations","d":1,"c":[{"t":6,"p":1,"n":"XNAM - Relation","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Modifier"},{"t":3,"p":1,"n":"Group Combat Reaction"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Flags","c":[{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"JAIL - Exterior Jail Marker"},{"t":3,"p":1,"n":"WAIT - Follower Wait Marker"},{"t":3,"p":1,"n":"STOL - Stolen Goods Container"},{"t":3,"p":1,"n":"PLCN - Player Inventory Container"},{"t":3,"p":1,"n":"CRGR - Shared Crime Faction List"},{"t":3,"p":1,"n":"JOUT - Jail Outfit"},{"t":6,"s":1,"p":1,"n":"CRVA - Crime Values","c":[{"t":3,"p":1,"n":"Arrest"},{"t":3,"p":1,"n":"Attack On Sight"},{"t":3,"p":1,"n":"Murder"},{"t":3,"p":1,"n":"Assault"},{"t":3,"p":1,"n":"Trespass"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"p":1,"n":"Steal Multiplier"},{"t":3,"p":1,"n":"Escape"},{"t":3,"p":1,"n":"Werewolf (unused)"}]},{"t":10,"p":1,"n":"Ranks","d":1,"c":[{"t":6,"p":1,"n":"Rank","c":[{"t":3,"p":1,"n":"RNAM - Rank#"},{"t":2,"p":1,"n":"MNAM - Male Title"},{"t":2,"p":1,"n":"FNAM - Female Title"},{"t":2,"p":1,"n":"INAM - Insignia (unused)"}]}]},{"t":3,"p":1,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"p":1,"n":"VENC - Merchant Container"},{"t":6,"s":1,"p":1,"n":"VENV - Vendor Values","c":[{"t":3,"p":1,"n":"Start Hour"},{"t":3,"p":1,"n":"End Hour"},{"t":3,"p":1,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"p":1,"n":"Buys Stolen Items"},{"t":3,"p":1,"n":"Buy\/Sell Everything Not In List?"},{"t":3,"p":1,"n":"Buys NonStolen Items"},{"t":3,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"PLVD - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Ref Alias"},{"t":3,"p":1,"n":"Loc Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":3,"p":1,"n":"Packdata Target"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Ref Collection Alias"},{"t":3,"p":1,"n":"Radius"},{"t":3,"p":1,"n":"Collection Index"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer "},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FLST - FormID List","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"FormIDs","d":1,"c":[{"t":3,"p":1,"n":"LNAM - FormID"}]}]},{"t":1,"p":1,"n":"FSTP - Footstep","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Tag"}]},{"t":1,"p":1,"n":"FSTS - Footstep Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"n":"XCNT - Count","c":[{"t":3,"n":"Walking"},{"t":3,"n":"Running"},{"t":3,"n":"Sprinting"},{"t":3,"n":"Sneaking"},{"t":3,"n":"Swimming"}]},{"t":7,"p":1,"n":"DATA - Footstep Sets","c":[{"t":3,"p":1,"n":"Footstep"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"WNAM - Drinking Water Type"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"s":1,"p":1,"n":"WBDT - Workbench Data","c":[{"t":3,"p":1,"n":"Bench Type"},{"t":3,"p":1,"n":"Uses Skill"}]},{"t":3,"p":1,"n":"NAM1 - Associated Form"},{"t":8,"s":1,"p":1,"n":"Markers","d":1,"c":[{"t":6,"p":1,"n":"Marker","c":[{"t":3,"p":1,"n":"ENAM - Marker Index"},{"t":6,"p":1,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Disabled Points"}]}]}]},{"t":8,"s":1,"p":1,"n":"Marker Entry Points","d":1,"c":[{"t":6,"p":1,"n":"FNPR - Marker","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Entry Points"}]}]},{"t":2,"p":1,"n":"XMRK - Marker Model"},{"t":7,"p":1,"n":"SNAM - Marker Paramaters","c":[{"t":6,"p":1,"n":"Marker","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"},{"t":5,"p":1,"n":"Rotation Z"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Entry Types"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]}]},{"t":1,"p":1,"n":"GDRY - God Rays","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":6,"p":1,"n":"Back Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":6,"p":1,"n":"Fwd Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Intensity"},{"t":5,"p":1,"n":"Air Color - Scale"},{"t":5,"p":1,"n":"Back Color - Scale"},{"t":5,"p":1,"n":"Fwd Color - Scale"},{"t":5,"p":1,"n":"Back Phase"},{"t":6,"p":1,"n":"Air Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Fwd Phase"}]}]},{"t":1,"p":1,"n":"GLOB - Global","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Type"},{"t":5,"p":1,"n":"FLTV - Value"}]},{"t":1,"p":1,"n":"GMST - Game Setting","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"Name"},{"t":3,"p":1,"n":"Int"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"}]},{"t":1,"p":1,"n":"GRAS - Grass","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Units From Water"},{"t":3,"p":1,"n":"Units From Water Type"},{"t":5,"p":1,"n":"Position Range"},{"t":5,"p":1,"n":"Height Range"},{"t":5,"p":1,"n":"Color Range"},{"t":5,"p":1,"n":"Wave Period"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"HAZD - Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Limit"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Image Space Radius"},{"t":5,"p":1,"n":"Target Interval"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Effect"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Sound"},{"t":6,"p":1,"n":"Taper Effectiveness","c":[{"t":5,"p":1,"n":"Full Effect Radius"},{"t":5,"p":1,"n":"Taper Weight"},{"t":5,"p":1,"n":"Taper Curse"}]}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"PNAM - Type"},{"t":8,"s":1,"p":1,"n":"Extra Parts","d":1,"c":[{"t":3,"p":1,"n":"HNAM - Part"}]},{"t":8,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"NAM0 - Part Type"},{"t":2,"p":1,"n":"NAM1 - Filename"}]}]},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"CNAM - Color"},{"t":3,"p":1,"n":"RNAM - Valid Races"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"n":"IDLE - Idle Animation","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Conditions","d":1,"c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"DNAM - Behavior Graph"},{"t":2,"n":"ENAM - Animation Event"},{"t":7,"n":"ANAM - Related Idle Animations","c":[{"t":3,"n":"Related Idle Animation"}]},{"t":6,"n":"DATA - ","c":[{"t":6,"n":"Looping seconds (both 255 forever)","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":3,"n":"Flags"},{"t":3,"n":"Animation Group Section"},{"t":3,"n":"Replay Delay"}]},{"t":2,"n":"GNAM - Animation File"}]},{"t":1,"p":1,"n":"IDLM - Idle Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"IDLF - Flags"},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":3,"n":"QNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"IMAD - Image Space Adapter","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"n":"DNAM - Data Count","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Duration"},{"t":6,"n":"HDR","c":[{"t":3,"n":"Eye Adapt Speed Mult"},{"t":3,"n":"Eye Adapt Speed Add"},{"t":3,"n":"Bloom Blur Radius Mult"},{"t":3,"n":"Bloom Blur Radius Add"},{"t":3,"n":"Bloom Threshold Mult"},{"t":3,"n":"Bloom Threshold Add"},{"t":3,"n":"Bloom Scale Mult"},{"t":3,"n":"Bloom Scale Add"},{"t":3,"n":"Target Lum Min Mult"},{"t":3,"n":"Target Lum Min Add"},{"t":3,"n":"Target Lum Max Mult"},{"t":3,"n":"Target Lum Max Add"},{"t":3,"n":"Sunlight Scale Mult"},{"t":3,"n":"Sunlight Scale Add"},{"t":3,"n":"Sky Scale Mult"},{"t":3,"n":"Sky Scale Add"}]},{"t":3,"n":"Unknown08 Mult"},{"t":3,"n":"Unknown48 Add"},{"t":3,"n":"Unknown09 Mult"},{"t":3,"n":"Unknown49 Add"},{"t":3,"n":"Unknown0A Mult"},{"t":3,"n":"Unknown4A Add"},{"t":3,"n":"Unknown0B Mult"},{"t":3,"n":"Unknown4B Add"},{"t":3,"n":"Unknown0C Mult"},{"t":3,"n":"Unknown4C Add"},{"t":3,"n":"Unknown0D Mult"},{"t":3,"n":"Unknown4D Add"},{"t":3,"n":"Unknown0E Mult"},{"t":3,"n":"Unknown4E Add"},{"t":3,"n":"Unknown0F Mult"},{"t":3,"n":"Unknown4F Add"},{"t":3,"n":"Unknown10 Mult"},{"t":3,"n":"Unknown50 Add"},{"t":6,"n":"Cinematic","c":[{"t":3,"n":"Saturation Mult"},{"t":3,"n":"Saturation Add"},{"t":3,"n":"Brightness Mult"},{"t":3,"n":"Brightness Add"},{"t":3,"n":"Contrast Mult"},{"t":3,"n":"Contrast Add"}]},{"t":3,"n":"Unknown14 Mult"},{"t":3,"n":"Unknown54 Add"},{"t":3,"n":"Tint Color"},{"t":3,"n":"Blur Radius"},{"t":3,"n":"Double Vision Strength"},{"t":3,"n":"Radial Blur Strength"},{"t":3,"n":"Radial Blur Ramp Up"},{"t":3,"n":"Radial Blur Start"},{"t":3,"n":"Radial Blur Flags"},{"t":5,"n":"Radial Blur Center X"},{"t":5,"n":"Radial Blur Center Y"},{"t":3,"n":"DoF Strength"},{"t":3,"n":"DoF Distance"},{"t":3,"n":"DoF Range"},{"t":3,"n":"DoF Flags"},{"t":3,"n":"Radial Blur Ramp Down"},{"t":3,"n":"Radial Blur Down Start"},{"t":3,"n":"Fade Color"},{"t":3,"n":"Motion Blur Strength"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"BNAM - Blur Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"VNAM - Double Vision Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"TNAM - Tint Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"NAM3 - Fade Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":6,"s":1,"p":1,"n":"Radial Blur","c":[{"t":7,"p":1,"n":"RNAM - Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SNAM - RampUp","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"UNAM - Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM1 - RampDown","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM2 - DownStart","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":6,"s":1,"p":1,"n":"Depth of Field","c":[{"t":7,"p":1,"n":"WNAM - Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"XNAM - Distance","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"YNAM - Range","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM5 - Vignette Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM6 - Vignette Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":7,"p":1,"n":"NAM4 - Motion Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"HDR","c":[{"t":7,"p":1,"n":"aIAD - Eye Adapt Speed Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"@IAD - Eye Adapt Speed Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"bIAD - Bloom Blur Radius Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"AIAD - Bloom Blur Radius Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"cIAD - Bloom Threshold Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"BIAD - Bloom Threshold Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"dIAD - Bloom Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"CIAD - Bloom Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"eIAD - Target Lum Min Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"DIAD - Target Lum Min Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"fIAD - Target Lum Max Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"EIAD - Target Lum Max Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"gIAD - Sunlight Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"FIAD - Sunlight Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"hIAD - Sky Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"GIAD - Sky Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"iIAD - Unknown"},{"t":11,"n":"HIAD - Unknown"},{"t":11,"n":"jIAD - Unknown"},{"t":11,"n":"IIAD - Unknown"},{"t":11,"n":"kIAD - Unknown"},{"t":11,"n":"JIAD - Unknown"},{"t":11,"n":"lIAD - Unknown"},{"t":11,"n":"KIAD - Unknown"},{"t":11,"n":"mIAD - Unknown"},{"t":11,"n":"LIAD - Unknown"},{"t":11,"n":"nIAD - Unknown"},{"t":11,"n":"MIAD - Unknown"},{"t":11,"n":"oIAD - Unknown"},{"t":11,"n":"NIAD - Unknown"},{"t":11,"n":"pIAD - Unknown"},{"t":11,"n":"OIAD - Unknown"},{"t":11,"n":"qIAD - Unknown"},{"t":11,"n":"PIAD - Unknown"},{"t":6,"s":1,"p":1,"n":"Cinematic","c":[{"t":7,"p":1,"n":"rIAD - Saturation Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"QIAD - Saturation Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"sIAD - Brightness Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"RIAD - Brightness Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"tIAD - Contrast Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SIAD - Contrast Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"uIAD - Unknown"},{"t":11,"n":"TIAD - Unknown"}]},{"t":1,"p":1,"n":"IMGS - Image Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"ENAM - Unused"},{"t":6,"s":1,"p":1,"n":"HNAM - HDR","c":[{"t":5,"p":1,"n":"Eye Adapt Speed"},{"t":5,"p":1,"n":"Tonemap E"},{"t":5,"p":1,"n":"Bloom Threshold"},{"t":5,"p":1,"n":"Bloom Scale"},{"t":5,"p":1,"n":"Auto Exposure Max"},{"t":5,"p":1,"n":"Auto Exposure Min"},{"t":5,"p":1,"n":"Sunlight Scale"},{"t":5,"p":1,"n":"Sky Scale"},{"t":5,"p":1,"n":"Middle Gray"}]},{"t":6,"s":1,"p":1,"n":"CNAM - Cinematic","c":[{"t":5,"p":1,"n":"Saturation"},{"t":5,"p":1,"n":"Brightness"},{"t":5,"p":1,"n":"Contrast"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Tint","c":[{"t":5,"p":1,"n":"Amount"},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Depth of Field","c":[{"t":5,"p":1,"n":"Strength"},{"t":5,"p":1,"n":"Distance"},{"t":5,"p":1,"n":"Range"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Sky \/ Blur Radius"},{"t":5,"p":1,"n":"Vignette Radius"},{"t":5,"p":1,"n":"Vignette Strength"}]},{"t":2,"p":1,"n":"TX00 - LUT"}]},{"t":1,"p":1,"n":"INFO - Dialog response","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"ENAM - Response flags","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Reset Hours"}]},{"t":3,"p":1,"n":"TPIC - Topic"},{"t":3,"p":1,"n":"PNAM - Previous INFO"},{"t":3,"p":1,"n":"DNAM - Shared INFO"},{"t":3,"n":"GNAM - Unknown"},{"t":2,"p":1,"n":"IOVR - Override Filename"},{"t":8,"s":1,"p":1,"n":"Responses","d":1,"c":[{"t":6,"p":1,"n":"Response","c":[{"t":6,"p":1,"n":"TRDA - Response Data","c":[{"t":3,"p":1,"n":"Emotion"},{"t":3,"p":1,"n":"Response number"},{"t":11,"n":"Unused"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Percentage"},{"t":3,"p":1,"n":"Camera Target Alias"},{"t":3,"p":1,"n":"Camera Location Alias"}]},{"t":2,"p":1,"n":"NAM1 - Response Text"},{"t":2,"p":1,"n":"NAM2 - Script Notes"},{"t":2,"p":1,"n":"NAM3 - Edits"},{"t":2,"p":1,"n":"NAM4 - Alternate LIP Text"},{"t":3,"p":1,"n":"SNAM - Idle Animations: Speaker"},{"t":3,"p":1,"n":"LNAM - Idle Animations: Listener"},{"t":3,"p":1,"n":"TNAM - Interrupt Percentage"},{"t":11,"p":1,"n":"NAM9 - Text Hash"},{"t":3,"p":1,"n":"SRAF - Camera Path"},{"p":1,"n":"WZMD - Stop on Scene End"}]}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"RNAM - Prompt"},{"t":3,"p":1,"n":"ANAM - Speaker"},{"t":3,"p":1,"n":"TSCE - Start Scene"},{"t":3,"p":1,"n":"ALFA - Forced Alias"},{"t":11,"n":"INTV - Unknown"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"},{"t":3,"p":1,"n":"GREE - Greet Distance"},{"t":6,"s":1,"p":1,"n":"TIQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Begin"},{"t":3,"p":1,"n":"On End"}]},{"t":2,"p":1,"n":"NAM0 - Start Scene Phase"},{"t":3,"p":1,"n":"INCC - Challenge"},{"t":3,"p":1,"n":"MODQ - Reset Global"},{"t":3,"p":1,"n":"INAM - Subtitle Priority"}]},{"t":1,"p":1,"n":"INGR - Ingredient","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Ingredient Value"},{"t":3,"p":1,"n":"Flags"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"INNR - Instance Naming Rules","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"UNAM - Target"},{"t":8,"s":1,"p":1,"n":"Naming Rules","d":1,"c":[{"t":6,"p":1,"n":"Ruleset","c":[{"t":3,"p":1,"n":"VNAM - Count"},{"t":8,"p":1,"n":"Names","c":[{"t":6,"p":1,"n":"Name","c":[{"t":2,"p":1,"n":"WNAM - Text"},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"p":1,"n":"XNAM - Property","c":[{"t":5,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Op"}]},{"t":3,"p":1,"n":"YNAM - Index"}]}]}]}]}]},{"t":1,"p":1,"n":"IPCT - Impact","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":5,"p":1,"n":"Effect - Duration"},{"t":3,"p":1,"n":"Effect - Orientation"},{"t":5,"p":1,"n":"Angle Threshold"},{"t":5,"p":1,"n":"Placement Radius"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Impact Result"},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Alpha Threshold?"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Texture Set"},{"t":3,"p":1,"n":"ENAM - Secondary Texture Set"},{"t":3,"p":1,"n":"SNAM - Sound 1"},{"t":3,"p":1,"n":"NAM1 - Sound 2"},{"t":3,"p":1,"n":"NAM3 - Footstep Explosion"},{"t":3,"p":1,"n":"NAM2 - Hazard"},{"t":5,"p":1,"n":"FNAM - Footstep Particle Max Dist"}]},{"t":1,"p":1,"n":"IPDS - Impact Data Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Data","d":1,"c":[{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Material"},{"t":3,"p":1,"n":"Impact"}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"KSSM - Sound Keyword Mapping","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Primary Descriptor"},{"t":3,"p":1,"n":"ENAM - Exterior Tail"},{"t":3,"p":1,"n":"VNAM - VATS Descriptor"},{"t":5,"p":1,"n":"TNAM - VATS Threshold"},{"t":8,"s":1,"p":1,"n":"Keywords","d":1,"c":[{"t":3,"p":1,"n":"KNAM - Keyword"}]},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"RNAM - Sound","c":[{"t":3,"p":1,"n":"Reverb Class"},{"t":3,"p":1,"n":"Descriptor"}]}]}]},{"t":1,"p":1,"n":"KYWD - Keyword","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"DNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Type"},{"t":3,"p":1,"n":"DATA - Attraction Rule"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"NNAM - Display Name"}]},{"t":1,"p":1,"n":"LAND - Landscape","d":1,"c":[{"t":11,"n":"DATA - Unknown"},{"t":11,"n":"VNML - Vertex Normals"},{"t":11,"n":"VHGT - Vertext Height Map"},{"t":11,"n":"VCLR - Vertex Colours"},{"t":8,"s":1,"p":1,"n":"Layers","d":1,"c":[{"t":6,"p":1,"n":"Base Layer","c":[{"t":6,"p":1,"n":"BTXT - Base Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]}]},{"t":6,"p":1,"n":"Alpha Layer","c":[{"t":6,"p":1,"n":"ATXT - Alpha Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]},{"t":11,"p":1,"n":"VTXT - Alpha Layer Data"}]}]},{"t":7,"p":1,"n":"VTEX - Textures","c":[{"t":3,"p":1,"n":"Texture"}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"MPCD - Unknown"}]}]},{"t":1,"p":1,"n":"LAYR - Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent"}]},{"t":1,"p":1,"n":"LCRT - Location Reference Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"TNAM - Unknown"}]},{"t":1,"n":"LCTN - Location","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":5,"n":"ANAM - Unknown"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LENS - Lens Flare","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Color Influence"},{"t":5,"p":1,"n":"DNAM - Fade Distance Radius Scale"},{"t":3,"n":"LFSP - Count"},{"t":10,"p":1,"n":"Lens Flare Sprites","d":1,"c":[{"t":6,"p":1,"n":"Flare","c":[{"t":2,"p":1,"n":"DNAM - Lens Flare Sprite ID"},{"t":2,"p":1,"n":"FNAM - Texture"},{"t":6,"p":1,"n":"LFSD - Lens Flare Data","c":[{"t":6,"p":1,"n":"Tint","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"},{"t":5,"p":1,"n":"Position"},{"t":5,"p":1,"n":"Angular Fade"},{"t":5,"p":1,"n":"Opacity"},{"t":3,"p":1,"n":"Flags"}]}]}]}]},{"t":1,"p":1,"n":"LGTM - Lighting Template","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":5,"p":1,"n":"Near Height Mid"},{"t":5,"p":1,"n":"Near Height Range"},{"t":6,"p":1,"n":"Fog Color High Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color High Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"High Density Scale"},{"t":5,"p":1,"n":"Fog Near Scale"},{"t":5,"p":1,"n":"Fog Far Scale"},{"t":5,"p":1,"n":"Fog High Near Scale"},{"t":5,"p":1,"n":"Fog High Far Scale"},{"t":5,"p":1,"n":"Far Height Mid"},{"t":5,"p":1,"n":"Far Height Range"}]},{"t":6,"s":1,"p":1,"n":"DALC - Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"WGDR - God Rays"}]},{"t":1,"p":1,"n":"LIGH - Light","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Time"},{"t":3,"p":1,"n":"Radius"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Falloff Exponent"},{"t":5,"p":1,"n":"FOV"},{"t":5,"p":1,"n":"Near Clip"},{"t":6,"p":1,"n":"Flicker Effect","c":[{"t":5,"p":1,"n":"Period"},{"t":5,"p":1,"n":"Intensity Amplitude"},{"t":5,"p":1,"n":"Movement Amplitude"}]},{"t":5,"p":1,"n":"Constant"},{"t":5,"p":1,"n":"Scalar"},{"t":5,"p":1,"n":"Exponent"},{"t":5,"p":1,"n":"God Rays - Near Clip"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"FNAM - Fade value"},{"t":2,"p":1,"n":"NAM0 - Gobo"},{"t":3,"p":1,"n":"LNAM - Lens"},{"t":3,"p":1,"n":"WGDR - God Rays"},{"t":3,"p":1,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"NNAM - Loading Screen NIF"},{"t":3,"p":1,"n":"TNAM - Transform"},{"t":6,"s":1,"p":1,"n":"ONAM - Rotation","c":[{"t":3,"p":1,"n":"Min"},{"t":3,"p":1,"n":"Max"}]},{"t":6,"s":1,"p":1,"n":"ZNAM - Zoom","c":[{"t":5,"p":1,"n":"Min"},{"t":5,"p":1,"n":"Max"}]},{"t":2,"p":1,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"LTEX - Landscape Texture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"MNAM - Material Type"},{"t":6,"s":1,"p":1,"n":"HNAM - Havok Data","c":[{"t":3,"p":1,"n":"Friction"},{"t":3,"p":1,"n":"Restitution"}]},{"t":3,"p":1,"n":"SNAM - Texture Specular Exponent"},{"t":8,"s":1,"p":1,"n":"Grasses","d":1,"c":[{"t":3,"p":1,"n":"GNAM - Grass"}]}]},{"t":1,"p":1,"n":"LVLI - Leveled Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLM - Max Count"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Use Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"},{"t":3,"p":1,"n":"Chance None"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":7,"p":1,"n":"LLKC - Filter Keyword Chances","c":[{"t":6,"p":1,"n":"Filter","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Chance"}]}]},{"t":3,"p":1,"n":"LVSG - Epic Loot Chance"},{"t":2,"p":1,"n":"ONAM - Override Name"}]},{"t":1,"p":1,"n":"LVLN - Leveled NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLM - Max Count"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Use Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"},{"t":3,"p":1,"n":"Chance None"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":7,"p":1,"n":"LLKC - Filter Keyword Chances","c":[{"t":6,"p":1,"n":"Filter","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Chance"}]}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"LVSP - Leveled Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"MATO - Material Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":8,"s":1,"p":1,"n":"Property Data","d":1,"c":[{"t":11,"p":1,"n":"DNAM - Data"}]},{"t":6,"s":1,"p":1,"n":"DATA - Directional Material Data","c":[{"t":5,"p":1,"n":"Falloff Scale"},{"t":5,"p":1,"n":"Falloff Bias"},{"t":5,"p":1,"n":"Noise UV Scale"},{"t":5,"p":1,"n":"Material UV Scale"},{"t":6,"p":1,"n":"Projection Vector","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Normal Dampener"},{"t":6,"p":1,"n":"Single Pass Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"MATT - Material Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Material Parent"},{"t":2,"p":1,"n":"MNAM - Material Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Havok Display Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"BNAM - Buoyancy"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"HNAM - Havok Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Breakable FX"},{"t":11,"n":"MODT - Texture Files Hashes"}]},{"t":1,"p":1,"n":"MESG - Message","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"INAM - Icon (unused)"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"TNAM - Display Time"},{"t":2,"p":1,"n":"SNAM - SWF"},{"t":2,"p":1,"n":"NNAM - Short Title"},{"t":8,"s":1,"p":1,"n":"Menu Buttons","d":1,"c":[{"t":6,"p":1,"n":"Menu Button","c":[{"t":2,"p":1,"n":"ITXT - Button Text"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Assoc. Item"},{"t":11,"p":1,"n":"Magic Skill (unused)"},{"t":3,"p":1,"n":"Resist Value"},{"t":3,"p":1,"n":"Counter Effect count"},{"t":3,"p":1,"n":"Casting Light"},{"t":5,"p":1,"n":"Taper Weight"},{"t":3,"p":1,"n":"Hit Shader"},{"t":3,"p":1,"n":"Enchant Shader"},{"t":3,"p":1,"n":"Minimum Skill Level"},{"t":6,"p":1,"n":"Spellmaking","c":[{"t":3,"p":1,"n":"Area"},{"t":5,"p":1,"n":"Casting Time"}]},{"t":5,"p":1,"n":"Taper Curve"},{"t":5,"p":1,"n":"Taper Duration"},{"t":5,"p":1,"n":"Second AV Weight"},{"t":3,"p":1,"n":"Archetype"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Delivery"},{"t":3,"p":1,"n":"Casting Art"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data"},{"t":5,"p":1,"n":"Skill Usage Multiplier"},{"t":6,"p":1,"n":"Dual Casting","c":[{"t":3,"p":1,"n":"Art"},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Equip Ability"},{"t":3,"p":1,"n":"Image Space Modifier"},{"t":3,"p":1,"n":"Perk to Apply"},{"t":3,"p":1,"n":"Casting Sound Level"},{"t":6,"p":1,"n":"Script Effect AI","c":[{"t":5,"p":1,"n":"Score"},{"t":5,"p":1,"n":"Delay Time"}]}]}]},{"t":8,"s":1,"n":"Counter Effects","d":1,"c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"p":1,"n":"SNDD - Sounds","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":2,"p":1,"n":"DNAM - Magic Item Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FIMD - Featured Item Message"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":7,"p":1,"n":"CVPA - Components","c":[{"t":6,"p":1,"n":"Component","c":[{"t":3,"p":1,"n":"Component"},{"t":3,"p":1,"n":"Count"}]}]},{"t":7,"p":1,"n":"CDIX - Component Display Indices","c":[{"t":3,"p":1,"n":"Display Index"}]}]},{"t":1,"p":1,"n":"MOVT - Movement Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":6,"s":1,"p":1,"n":"SPED - Movement Data","c":[{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Walk - Left"},{"t":5,"p":1,"n":"Run - Left"},{"t":5,"p":1,"n":"Walk - Right"},{"t":5,"p":1,"n":"Run - Right"},{"t":5,"p":1,"n":"Walk - Forward"},{"t":5,"p":1,"n":"Run - Forward"},{"t":5,"p":1,"n":"Sprint - Forward"},{"t":5,"p":1,"n":"Walk - Back"},{"t":5,"p":1,"n":"Run - Back"},{"t":5,"p":1,"n":"Standing - Pitch"},{"t":5,"p":1,"n":"Walk - Pitch"},{"t":5,"p":1,"n":"Run - Pitch"},{"t":5,"p":1,"n":"Sprint - Pitch"},{"t":5,"p":1,"n":"Standing - Yaw"},{"t":5,"p":1,"n":"Walk - Yaw"},{"t":5,"p":1,"n":"Run - Yaw"},{"t":5,"p":1,"n":"Sprint - Yaw"}]},{"t":6,"s":1,"p":1,"n":"INAM - Anim Change Thresholds (unused)","c":[{"t":5,"p":1,"n":"Directional"},{"t":5,"p":1,"n":"Movement Speed"},{"t":5,"p":1,"n":"Rotation Speed"}]},{"t":5,"p":1,"n":"JNAM - Float Height"},{"t":5,"p":1,"n":"LNAM - Flight - Angle Gain"}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"DATA - On Local Map"},{"t":3,"p":1,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"MSWP - Material Swap","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FNAM - Tree Folder"},{"t":10,"p":1,"n":"Material Substitutions","d":1,"c":[{"t":6,"p":1,"n":"Substitution","c":[{"t":2,"p":1,"n":"BNAM - Original Material"},{"t":2,"p":1,"n":"SNAM - Replacement Material"},{"t":2,"p":1,"n":"FNAM - Tree Folder (obsolete)"},{"t":5,"p":1,"n":"CNAM - Color Remapping Index"}]}]}]},{"t":1,"p":1,"n":"MUSC - Music Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":6,"s":1,"p":1,"n":"PNAM - Data","c":[{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Ducking (dB)"}]},{"t":5,"p":1,"n":"WNAM - Fade Duration"},{"t":7,"p":1,"n":"TNAM - Music Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"p":1,"n":"MUST - Music Track","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"CNAM - Track Type"},{"t":5,"p":1,"n":"FLTV - Duration"},{"t":5,"p":1,"n":"DNAM - Fade-Out"},{"t":2,"p":1,"n":"ANAM - Track Filename"},{"t":2,"p":1,"n":"BNAM - Finale Filename"},{"t":6,"s":1,"p":1,"n":"LNAM - Loop Data","c":[{"t":5,"p":1,"n":"Loop Begins"},{"t":5,"p":1,"n":"Loop Ends"},{"t":3,"p":1,"n":"Loop Count"}]},{"t":7,"p":1,"n":"FNAM - Cue Points","c":[{"t":5,"p":1,"n":"Point"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"SNAM - Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"n":"NAVI - Navigation Mesh Info Map","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"NVER - Version"},{"t":8,"n":"Navigation Map Infos","c":[{"t":6,"n":"NVMI - Navigation Map Info","c":[{"t":3,"n":"Navigation Mesh"},{"t":11,"n":"Data"},{"t":7,"n":"Merged To","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Preferred Merges","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Linked Doors","c":[{"t":6,"n":"Door","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Door Ref"}]}]},{"t":3,"n":"Is Island"},{"t":11,"n":"Unused"},{"t":6,"n":"Island Data","c":[{"t":11,"n":"Unknown"},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]}]},{"t":11,"n":"Unknown"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"}]}]},{"t":6,"n":"NVPP - Preferred Pathing","c":[{"t":7,"n":"NavMeshes","c":[{"t":7,"n":"Set","c":[{"t":3,"n":""}]}]},{"t":7,"n":"NavMesh Tree?","c":[{"t":6,"n":"","c":[{"t":3,"n":"NavMesh"},{"t":3,"n":"Index\/Node"}]}]}]},{"t":11,"n":"NVSI - Unknown"}]},{"t":1,"n":"NAVM - Navigation Mesh","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"n":"Version"},{"t":11,"n":"Magic"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"},{"t":11,"n":"Vertices and Triangles"}]},{"t":11,"n":"ONAM - Unknown"},{"t":11,"n":"NNAM - Unknown"},{"t":11,"n":"MNAM - Unknown"}]},{"t":1,"n":"NOCM - Navigation Mesh Obstacle Manager","d":1,"c":[{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":3,"n":"INDX - Index"},{"t":8,"n":"Unknown","c":[{"t":11,"n":"DATA - Unknown"}]},{"t":11,"n":"INTV - Unknown"},{"t":2,"n":"NAM1 - Model"}]}]}]},{"t":1,"p":1,"n":"NOTE - Note","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"DNAM - Type"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Terminal"},{"t":2,"p":1,"n":"PNAM - Program File"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"n":"STCP - Unknown"},{"t":6,"s":1,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"XP Value Offset"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Level Mult"},{"t":3,"p":1,"n":"Calc min level"},{"t":3,"p":1,"n":"Calc max level"},{"t":3,"p":1,"n":"Disposition Base"},{"t":3,"p":1,"n":"Use Template Actors"},{"t":3,"p":1,"n":"Bleedout Override"},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Factions","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Faction","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Rank"}]}]},{"t":3,"p":1,"n":"INAM - Death item"},{"t":3,"p":1,"n":"VTCK - Voice"},{"t":3,"p":1,"n":"TPLT - Default Template"},{"t":3,"p":1,"n":"LTPT - Legendary Template"},{"t":3,"p":1,"n":"LTPC - Legendary Chance"},{"t":6,"s":1,"p":1,"n":"TPTA - Template Actors","c":[{"t":3,"p":1,"n":"Traits"},{"t":3,"p":1,"n":"Stats"},{"t":3,"p":1,"n":"Factions"},{"t":3,"p":1,"n":"Spell List"},{"t":3,"p":1,"n":"AI Data"},{"t":3,"p":1,"n":"AI Packages"},{"t":3,"p":1,"n":"Model\/Animation"},{"t":3,"p":1,"n":"Base Data"},{"t":3,"p":1,"n":"Inventory"},{"t":3,"p":1,"n":"Script"},{"t":3,"p":1,"n":"Def Pack List"},{"t":3,"p":1,"n":"Attack Data"},{"t":3,"p":1,"n":"Keywords"}]},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","d":1,"c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"WNAM - Skin"},{"t":3,"p":1,"n":"ANAM - Far away model"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","d":1,"c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags"},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Action Points Mult"},{"t":3,"p":1,"n":"Stagger Offset"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"},{"t":3,"p":1,"n":"ATKW - Weapon Slot"},{"t":3,"p":1,"n":"ATKS - Required Slot"},{"t":2,"p":1,"n":"ATKT - Description"}]}]},{"t":3,"p":1,"n":"SPOR - Spectator Override Package List"},{"t":3,"p":1,"n":"OCOR - Observe Dead Body Override Package List"},{"t":3,"p":1,"n":"GWOR - Guard Warn Override Package List"},{"t":3,"p":1,"n":"ECOR - Combat Override Package List"},{"t":3,"p":1,"n":"FCPL - Follower Command Package List"},{"t":3,"p":1,"n":"RCLR - Follower Elevator Package List"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"s":1,"p":1,"n":"Perks","d":1,"c":[{"t":6,"p":1,"n":"PRKR - Perk","c":[{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Rank"}]}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Packages","d":1,"c":[{"t":3,"p":1,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]},{"t":3,"p":1,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Far Away Model Distance"},{"t":3,"p":1,"n":"Geared Up Weapons"}]},{"t":8,"s":1,"p":1,"n":"Head Parts","d":1,"c":[{"t":3,"p":1,"n":"PNAM - Head Part"}]},{"t":3,"p":1,"n":"HCLF - Hair Color"},{"t":3,"p":1,"n":"BCLF - Facial Hair Color"},{"t":3,"p":1,"n":"ZNAM - Combat Style"},{"t":3,"p":1,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"p":1,"n":"NAM6 - Height Min"},{"t":5,"n":"NAM7 - Unused"},{"t":5,"p":1,"n":"NAM4 - Height Max"},{"t":6,"s":1,"p":1,"n":"MWGT - Weight","c":[{"t":5,"p":1,"n":"Thin"},{"t":5,"p":1,"n":"Muscular"},{"t":5,"p":1,"n":"Fat"}]},{"t":3,"p":1,"n":"NAM8 - Sound Level"},{"t":6,"s":1,"p":1,"n":"Actor Sounds","c":[{"t":3,"p":1,"n":"CS2H - Count"},{"t":10,"p":1,"n":"Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"CS2K - Keyword"},{"t":3,"p":1,"n":"CS2D - Sound"}]}]},{"p":1,"n":"CS2E - End Marker"},{"t":11,"p":1,"n":"CS2F - Finalize"}]},{"t":3,"p":1,"n":"CSCR - Inherits Sounds From"},{"t":3,"p":1,"n":"PFRN - Power Armor Stand"},{"t":3,"p":1,"n":"DOFT - Default Outfit"},{"t":3,"p":1,"n":"SOFT - Sleeping Outfit"},{"t":3,"p":1,"n":"DPLT - Default Package List"},{"t":3,"p":1,"n":"CRIF - Crime Faction"},{"t":3,"p":1,"n":"FTST - Head Texture"},{"t":6,"s":1,"p":1,"n":"QNAM - Texture lighting","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]},{"t":7,"p":1,"n":"MSDK - Morph Keys","c":[{"t":3,"p":1,"n":"Key"}]},{"t":7,"p":1,"n":"MSDV - Morph Values","c":[{"t":5,"p":1,"n":"Value"}]},{"t":10,"p":1,"n":"Face Tinting Layers","d":1,"c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"TETI - Index","c":[{"t":3,"p":1,"n":"Data Type"},{"t":3,"p":1,"n":"Index"}]},{"t":6,"p":1,"n":"TEND - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Template Color Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"MRSV - Body Morph Region Values","c":[{"t":5,"p":1,"n":"Head"},{"t":5,"p":1,"n":"Upper Torso"},{"t":5,"p":1,"n":"Arms"},{"t":5,"p":1,"n":"Lower Torso"},{"t":5,"p":1,"n":"Legs"}]},{"t":10,"p":1,"n":"Face Morphs","d":1,"c":[{"t":6,"p":1,"n":"Face Morph","c":[{"t":3,"p":1,"n":"FMRI - Index"},{"t":6,"p":1,"n":"FMRS - Values","c":[{"t":5,"p":1,"n":"Position - X"},{"t":5,"p":1,"n":"Position - Y"},{"t":5,"p":1,"n":"Position - Z"},{"t":5,"p":1,"n":"Rotation - X"},{"t":5,"p":1,"n":"Rotation - Y"},{"t":5,"p":1,"n":"Rotation - Z"},{"t":5,"p":1,"n":"Scale"},{"t":11,"n":"Unknown"}]}]}]},{"t":5,"p":1,"n":"FMIN - Facial Morph Intensity"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"}]},{"t":1,"p":1,"n":"OMOD - Object Modification","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Attach Point"},{"t":7,"p":1,"n":"Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":11,"p":1,"n":"Value 1"},{"t":11,"p":1,"n":"Value 2"}]}]},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Minimum Level"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]},{"t":7,"p":1,"n":"MNAM - Target OMOD Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"FNAM - Filter Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"LNAM - Loose Mod"},{"t":3,"p":1,"n":"NAM1 - Priority"},{"t":2,"p":1,"n":"FLTR - Filter"}]},{"t":1,"p":1,"n":"OTFT - Outfit","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"INAM - Items","c":[{"t":3,"p":1,"n":"Item"}]}]},{"t":1,"n":"OVIS - Object Visibility Manager","d":1,"c":[{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":3,"n":"INDX - Object"},{"t":6,"n":"DATA - Object Bounds","c":[{"t":5,"n":"X1"},{"t":5,"n":"Y1"},{"t":5,"n":"Z1"},{"t":5,"n":"X2"},{"t":5,"n":"Y2"},{"t":5,"n":"Z2"}]}]}]}]},{"t":1,"p":1,"n":"PACK - Package","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"PKDT - Pack Data","c":[{"t":3,"p":1,"n":"General Flags"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Interrupt Override"},{"t":3,"p":1,"n":"Preferred Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Flags"}]},{"t":6,"s":1,"p":1,"n":"PSDT - Schedule","c":[{"t":3,"p":1,"n":"Month"},{"t":3,"p":1,"n":"Day of week"},{"t":3,"p":1,"n":"Date"},{"t":3,"p":1,"n":"Hour"},{"t":3,"p":1,"n":"Minute"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Duration (minutes)"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"Idle Animations","c":[{"t":3,"p":1,"n":"IDLF - Flags"},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":11,"n":"IDLB - Unknown"}]},{"t":3,"p":1,"n":"CNAM - Combat Style"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":6,"s":1,"p":1,"n":"PKCU - Counter","c":[{"t":3,"p":1,"n":"Data Input Count"},{"t":3,"p":1,"n":"Package Template"},{"t":3,"p":1,"n":"Version Counter (autoincremented)"}]},{"t":6,"s":1,"p":1,"n":"Package Data","c":[{"t":8,"p":1,"n":"Data Input Values","c":[{"t":6,"p":1,"n":"Value","c":[{"t":2,"p":1,"n":"ANAM - Type"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Bool"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"n":"BNAM - Unknown"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":6,"p":1,"n":"PLDT - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Ref Alias"},{"t":3,"p":1,"n":"Loc Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":3,"p":1,"n":"Packdata Target"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Ref Collection Alias"},{"t":3,"p":1,"n":"Radius"},{"t":3,"p":1,"n":"Collection Index"}]},{"t":6,"p":1,"n":"PTDA - Target","c":[{"t":6,"p":1,"n":"Target Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Count \/ Distance"}]}]},{"t":11,"n":"TPIC - Unknown"}]}]},{"t":8,"p":1,"n":"Data Inputs","c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]}]},{"t":11,"n":"XNAM - Marker"},{"t":6,"s":1,"p":1,"n":"Procedure Tree","c":[{"t":8,"p":1,"n":"Branches","c":[{"t":6,"p":1,"n":"Branch","c":[{"t":2,"p":1,"n":"ANAM - Branch Type"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"p":1,"n":"PRCB - Root","c":[{"t":3,"p":1,"n":"Branch Count"},{"t":3,"p":1,"n":"Flags"}]},{"t":2,"p":1,"n":"PNAM - Procedure Type"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"p":1,"n":"Data Input Indexes","c":[{"t":3,"p":1,"n":"PKC2 - Index"}]},{"t":8,"p":1,"n":"Flags Override","c":[{"t":6,"p":1,"n":"PFO2 - Data","c":[{"t":3,"p":1,"n":"Set General Flags"},{"t":3,"p":1,"n":"Clear General Flags"},{"t":3,"p":1,"n":"Set Interrupt Flags"},{"t":3,"p":1,"n":"Clear Interrupt Flags"},{"t":3,"p":1,"n":"Preferred Speed Override"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"PFOR - Unknown"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Data Inputs","d":1,"c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]},{"t":6,"s":1,"p":1,"n":"OnBegin","c":[{"p":1,"n":"POBA - OnBegin Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnEnd","c":[{"p":1,"n":"POEA - OnEnd Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnChange","c":[{"p":1,"n":"POCA - OnChange Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":1,"p":1,"n":"PARW - Placed Arrow","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PBAR - Placed Barrier","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PBEA - Placed Beam","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PCON - Placed Cone\/Voice","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PERK - Perk","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ICON - Image"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Trait"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Num Ranks"},{"t":3,"p":1,"n":"Playable"},{"t":3,"p":1,"n":"Hidden"}]},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":3,"p":1,"n":"NNAM - Next Perk"},{"t":2,"p":1,"n":"FNAM - SWF"},{"t":10,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":6,"p":1,"n":"PRKE - Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Priority"}]},{"t":6,"p":1,"n":"Quest + Stage","c":[{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Ability"},{"t":6,"p":1,"n":"Entry Point","c":[{"t":3,"p":1,"n":"Entry Point"},{"t":3,"p":1,"n":"Function"},{"t":3,"p":1,"n":"Perk Condition Tab Count"}]},{"t":10,"p":1,"n":"Perk Conditions","c":[{"t":6,"p":1,"n":"Perk Condition","c":[{"t":3,"p":1,"n":"PRKC - Run On (Tab Index)"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":6,"p":1,"n":"Function Parameters","c":[{"t":3,"p":1,"n":"EPFT - Type"},{"t":3,"p":1,"n":"EPFB - Perk Entry ID (unique)"},{"t":2,"p":1,"n":"EPF2 - Button Label"},{"t":6,"p":1,"n":"EPF3 - Script Flags","c":[{"t":3,"p":1,"n":"Script Flags"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Float"},{"t":6,"p":1,"n":"Float, Float","c":[{"t":5,"p":1,"n":"Float 1"},{"t":5,"p":1,"n":"Float 2"}]},{"t":3,"p":1,"n":"Leveled Item"},{"t":3,"p":1,"n":"Spell"},{"t":2,"p":1,"n":"Text"},{"t":6,"p":1,"n":"Actor Value, Float","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Float"}]}]},{"p":1,"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PFLA - Placed Flame","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PGRE - Placed Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PHZD - Placed Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PKIN - Pack-In","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":3,"p":1,"n":"CNAM - Cell"},{"t":3,"p":1,"n":"VNAM - Version"}]},{"t":1,"p":1,"n":"PMIS - Placed Missile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PROJ - Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":11,"n":"DATA - Unused"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Gravity"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Muzzle Flash - Light"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Sound"},{"t":5,"p":1,"n":"Muzzle Flash - Duration"},{"t":5,"p":1,"n":"Fade Duration"},{"t":5,"p":1,"n":"Impact Force"},{"t":3,"p":1,"n":"Sound - Countdown"},{"t":3,"p":1,"n":"Sound - Disable"},{"t":3,"p":1,"n":"Default Weapon Source"},{"t":5,"p":1,"n":"Cone Spread"},{"t":5,"p":1,"n":"Collision Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Relaunch Interval"},{"t":3,"p":1,"n":"Decal Data"},{"t":3,"p":1,"n":"Collision Layer"},{"t":3,"p":1,"n":"Tracer Frequency"},{"t":3,"p":1,"n":"VATS Projectile"}]},{"t":6,"s":1,"p":1,"n":"Muzzle Flash Model","c":[{"t":2,"p":1,"n":"NAM1 - Model Filename"},{"t":11,"p":1,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"p":1,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"QUST - Quest","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"fragmentCount"},{"t":2,"p":1,"n":"scriptName"},{"t":6,"p":1,"n":"Script Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":11,"n":"Unused"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Quest Stage Index"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]},{"t":7,"p":1,"n":"Aliases","c":[{"t":6,"p":1,"n":"Alias","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Alias Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - General","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":2,"p":1,"n":"ENAM - Event"},{"t":3,"p":1,"n":"LNAM - Location"},{"t":3,"p":1,"n":"XNAM - Quest Completion XP"},{"t":8,"s":1,"p":1,"n":"Text Display Globals","d":1,"c":[{"t":3,"p":1,"n":"QTGL - Global"}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":6,"s":1,"p":1,"n":"Quest Dialogue Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":10,"p":1,"n":"Stages","d":1,"c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"INDX - Stage Index","c":[{"t":3,"p":1,"n":"Stage Index"},{"t":3,"p":1,"n":"Flags"},{"t":3,"n":"Unknown"}]},{"t":8,"p":1,"n":"Log Entries","c":[{"t":6,"p":1,"n":"Log Entry","c":[{"t":3,"p":1,"n":"QSDT - Stage Flags"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"NAM2 - Note"},{"t":2,"p":1,"n":"CNAM - Log Entry"},{"t":3,"p":1,"n":"NAM0 - Next Quest"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Objectives","d":1,"c":[{"t":6,"p":1,"n":"Objective","c":[{"t":3,"p":1,"n":"QOBJ - Objective Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":2,"p":1,"n":"NNAM - Display Text"},{"t":8,"p":1,"n":"Targets","c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Keyword"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},{"t":11,"n":"ANAM - Aliases Marker"},{"t":8,"s":1,"p":1,"n":"Aliases","d":1,"c":[{"t":6,"p":1,"n":"Alias","c":[{"t":3,"p":1,"n":"ALST - Reference Alias ID"},{"t":2,"p":1,"n":"ALID - Alias Name"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"p":1,"n":"ALFR - Forced Reference"},{"t":3,"p":1,"n":"ALUA - Unique Actor"},{"t":6,"p":1,"n":"Location Alias Reference","c":[{"t":3,"p":1,"n":"ALFA - Alias"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":3,"p":1,"n":"ALRT - Ref Type"}]},{"t":6,"p":1,"n":"External Alias Reference","c":[{"t":3,"p":1,"n":"ALEQ - Quest"},{"t":3,"p":1,"n":"ALEA - Alias"}]},{"t":6,"p":1,"n":"Create Reference to Object","c":[{"t":3,"p":1,"n":"ALCO - Object"},{"t":6,"p":1,"n":"ALCA - Alias","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Create"}]},{"t":3,"p":1,"n":"ALCL - Level"}]},{"t":6,"p":1,"n":"Find Matching Reference Near Alias","c":[{"t":3,"p":1,"n":"ALNA - Alias"},{"t":3,"p":1,"n":"ALNT - Type"}]},{"t":6,"p":1,"n":"Find Matching Reference From Event","c":[{"t":2,"p":1,"n":"ALFE - From Event"},{"t":11,"p":1,"n":"ALFD - Event Data"}]},{"t":3,"p":1,"n":"ALCC - Closest To Alias"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":7,"p":1,"n":"ALLA - Linked Aliases","c":[{"t":6,"p":1,"n":"Linked Alias","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Alias"}]}]},{"t":3,"p":1,"n":"ALDN - Display Name"},{"t":3,"p":1,"n":"ALFV - Forced Voice"},{"t":3,"p":1,"n":"ALDI - Death Item"},{"t":8,"p":1,"n":"Alias Spells","c":[{"t":3,"p":1,"n":"ALSP - Spell"}]},{"t":8,"p":1,"n":"Alias Factions","c":[{"t":3,"p":1,"n":"ALFC - Faction"}]},{"t":8,"p":1,"n":"Alias Package Data","c":[{"t":3,"p":1,"n":"ALPC - Package"}]},{"t":3,"p":1,"n":"VTCK - Voice Types"},{"p":1,"n":"ALED - Alias End"}]}]},{"t":2,"p":1,"n":"NNAM - Description"},{"t":3,"p":1,"n":"GNAM - Quest Group"},{"t":2,"p":1,"n":"SNAM - SWF File"}]},{"t":1,"n":"RACE - Race","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"STCP - Sound"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":3,"n":"WNAM - Skin"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":7,"n":"PRPS - Properties","c":[{"t":6,"n":"Property","c":[{"t":3,"n":"Actor Value"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"APPR - Attach Parent Slots","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":5,"n":"Male Height"},{"t":5,"n":"Female Height"},{"t":6,"n":"Male Default Weight","c":[{"t":5,"n":"Thin"},{"t":5,"n":"Muscular"},{"t":5,"n":"Fat"}]},{"t":6,"n":"Female Default Weight","c":[{"t":5,"n":"Thin"},{"t":5,"n":"Muscular"},{"t":5,"n":"Fat"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Acceleration Rate"},{"t":5,"n":"Deceleration Rate"},{"t":3,"n":"Size"},{"t":11,"n":"Unknown"},{"t":5,"n":"Injured Health Pct"},{"t":3,"n":"Shield Biped Object"},{"t":3,"n":"Beard Biped Object"},{"t":3,"n":"Body Biped Object"},{"t":5,"n":"Aim Angle Tolerance"},{"t":5,"n":"Flight Radius"},{"t":5,"n":"Angular Acceleration Rate"},{"t":5,"n":"Angular Tolerance"},{"t":3,"n":"Flags 2"},{"t":3,"n":"Pipboy Biped Object"},{"t":3,"n":"XP Value"},{"t":5,"n":"Severable - Debris Scale"},{"t":3,"n":"Severable - Debris Count"},{"t":3,"n":"Severable - Decal Count"},{"t":5,"n":"Explodable - Debris Scale"},{"t":3,"n":"Explodable - Debris Count"},{"t":3,"n":"Explodable - Decal Count"},{"t":3,"n":"Severable - Explosion"},{"t":3,"n":"Severable - Debris"},{"t":3,"n":"Severable - Impact DataSet"},{"t":3,"n":"Explodable - Explosion"},{"t":3,"n":"Explodable - Debris"},{"t":3,"n":"Explodable - Impact DataSet"},{"t":5,"n":"OnCripple - Debris Scale"},{"t":3,"n":"OnCripple - Debris Count"},{"t":3,"n":"OnCripple - Decal Count"},{"t":3,"n":"OnCripple - Explosion"},{"t":3,"n":"OnCripple - Debris"},{"t":3,"n":"OnCripple - Impact DataSet"},{"t":3,"n":"Explodable - Subsegment Explosion"},{"t":5,"n":"Orientation Limits - Pitch"},{"t":5,"n":"Orientation Limits - Roll"}]},{"n":"MNAM - Male Marker"},{"t":2,"n":"ANAM - Male Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"FNAM - Female Marker"},{"t":2,"n":"ANAM - Female Skeletal Model"},{"n":"NAM2 - Marker NAM2 #1"},{"t":8,"n":"Movement Type Names","c":[{"t":2,"n":"MTNM - Name"}]},{"t":7,"n":"VTCK - Voices","c":[{"t":3,"n":"Voice"}]},{"t":7,"n":"HCLF - Default Hair Colors","c":[{"t":3,"n":"Default Hair Color"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Action Points Mult"},{"t":3,"n":"Stagger Offset"}]},{"t":2,"n":"ATKE - Attack Event"},{"t":3,"n":"ATKW - Weapon Slot"},{"t":3,"n":"ATKS - Required Slot"},{"t":2,"n":"ATKT - Description"}]}]},{"t":6,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]}]}]},{"t":6,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]}]}]}]},{"t":3,"n":"GNAM - Body Part Data"},{"n":"NAM2 - Marker NAM2 #2"},{"n":"NAM3 - Marker NAM3 #3"},{"t":6,"n":"Male Behavior Graph","c":[{"n":"MNAM - Male Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":6,"n":"Female Behavior Graph","c":[{"n":"FNAM - Female Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":3,"n":"NAM4 - Impact Material Type"},{"t":3,"n":"NAM5 - Impact Data Set"},{"t":3,"n":"NAM7 - Dismember Blood Art"},{"t":3,"n":"CNAM - Meat Cap TextureSet"},{"t":3,"n":"NAM2 - Collar TextureSet"},{"t":3,"n":"ONAM - Sound - Open Corpse"},{"t":3,"n":"LNAM - Sound - Close Corpse"},{"t":8,"n":"Biped Object Names","c":[{"t":2,"n":"NAME - Name"}]},{"t":7,"n":"RBPC - Biped Object Conditions","c":[{"t":3,"n":"Slot 30+"}]},{"t":10,"n":"Movement Data Overrides","c":[{"t":6,"n":"Override","c":[{"t":3,"n":"MTYP - Movement Type"},{"t":6,"n":"SPED - Movement Data","c":[{"t":5,"n":"Unknown"},{"t":5,"n":"Walk - Left"},{"t":5,"n":"Run - Left"},{"t":5,"n":"Walk - Right"},{"t":5,"n":"Run - Right"},{"t":5,"n":"Walk - Forward"},{"t":5,"n":"Run - Forward"},{"t":5,"n":"Sprint - Forward"},{"t":5,"n":"Walk - Back"},{"t":5,"n":"Run - Back"},{"t":5,"n":"Standing - Pitch"},{"t":5,"n":"Walk - Pitch"},{"t":5,"n":"Run - Pitch"},{"t":5,"n":"Sprint - Pitch"},{"t":5,"n":"Standing - Yaw"},{"t":5,"n":"Walk - Yaw"},{"t":5,"n":"Run - Yaw"},{"t":5,"n":"Sprint - Yaw"}]}]}]},{"t":3,"n":"VNAM - Equipment Flags"},{"t":8,"n":"Equip Slots","c":[{"t":6,"n":"Equip Slot","c":[{"t":3,"n":"QNAM - Equip Slot"},{"t":2,"n":"ZNAM - Node"}]}]},{"t":3,"n":"UNWP - Unarmed Weapon"},{"t":8,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"IH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"EH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"EY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AE","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AA","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AO","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"OY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"OW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"UH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"UW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"ER","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AX","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"S","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Z","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"ZH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"F","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"TH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"V","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"M","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"N","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"NG","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"L","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"R","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"W","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Y","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"HH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"B","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"D","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"JH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"G","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"P","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"T","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"K","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"CH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SHOTSIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"FLAP","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]}]},{"t":3,"n":"WKMV - Base Movement Defaults - Default"},{"t":3,"n":"SWMV - Base Movement Defaults - Swim"},{"t":3,"n":"FLMV - Base Movement Defaults - Fly"},{"t":3,"n":"SNMV - Base Movement Defaults - Sneak"},{"n":"NAM0 - Head Data Marker"},{"n":"MNAM - Male Data Marker"},{"t":6,"n":"NNAM - Male Neck Fat Adjustments Scale","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":10,"n":"Male Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":8,"n":"Male Race Presets","c":[{"t":3,"n":"RPRM - Preset NPC"}]},{"t":8,"n":"Male Hair Colors","c":[{"t":3,"n":"AHCM - Hair Color"}]},{"t":8,"n":"Male Face Details","c":[{"t":3,"n":"FTSM - Texture Set"}]},{"t":3,"n":"DFTM - Male Default Face Texture"},{"t":8,"n":"Male Tint Layers","c":[{"t":6,"n":"Group","c":[{"t":2,"n":"TTGP - Group Name"},{"t":8,"n":"Options","c":[{"t":6,"n":"Option","c":[{"t":6,"n":"TETI - Index","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Index"}]},{"t":2,"n":"TTGP - Name"},{"t":11,"n":"TTEF - Unknown"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Textures","c":[{"t":2,"n":"TTET - Texture"}]},{"t":11,"n":"TTEB - Unknown"},{"t":7,"n":"TTEC - Template Colors","c":[{"t":6,"n":"Template Color","c":[{"t":3,"n":"Color"},{"t":5,"n":"Alpha"},{"t":3,"n":"Template Index"},{"t":11,"n":"Unknown"}]}]},{"t":5,"n":"TTED - Unknown"}]}]},{"t":11,"n":"TTGE - Group End"}]}]},{"t":8,"n":"Male Morph Groups","c":[{"t":6,"n":"Morph Group","c":[{"t":2,"n":"MPGN - Name"},{"t":3,"n":"MPPC - Count"},{"t":8,"n":"Morph Presets","c":[{"t":6,"n":"Morph Preset","c":[{"t":3,"n":"MPPI - Index"},{"t":2,"n":"MPPN - Name"},{"t":2,"n":"MPPM - Unknown"},{"t":3,"n":"MPPT - Texture"},{"t":11,"n":"MPPF - Unknown"}]}]},{"t":11,"n":"MPPK - Unknown"},{"t":11,"n":"MPGS - Unknown"}]}]},{"t":8,"n":"Male Face Morphs","c":[{"t":6,"n":"Face Morph","c":[{"t":3,"n":"FMRI - Index"},{"t":2,"n":"FMRN - Name"}]}]},{"t":2,"n":"WMAP - Male Wrinkle Map Path"},{"n":"FNAM - Female Data Marker"},{"t":6,"n":"NNAM - Female Neck Fat Adjustments Scale","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":10,"n":"Female Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":8,"n":"Female Race Presets","c":[{"t":3,"n":"RPRF - Preset NPC"}]},{"t":8,"n":"Female Hair Colors","c":[{"t":3,"n":"AHCF - Hair Color"}]},{"t":8,"n":"Female Face Details","c":[{"t":3,"n":"FTSF - Texture Set"}]},{"t":3,"n":"DFTF - Female Default Face Texture"},{"t":8,"n":"Female Tint Layers","c":[{"t":6,"n":"Group","c":[{"t":2,"n":"TTGP - Group Name"},{"t":8,"n":"Options","c":[{"t":6,"n":"Option","c":[{"t":6,"n":"TETI - Index","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Index"}]},{"t":2,"n":"TTGP - Name"},{"t":11,"n":"TTEF - Unknown"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Textures","c":[{"t":2,"n":"TTET - Texture"}]},{"t":11,"n":"TTEB - Unknown"},{"t":7,"n":"TTEC - Template Colors","c":[{"t":6,"n":"Template Color","c":[{"t":3,"n":"Color"},{"t":5,"n":"Alpha"},{"t":3,"n":"Template Index"},{"t":11,"n":"Unknown"}]}]},{"t":5,"n":"TTED - Unknown"}]}]},{"t":11,"n":"TTGE - Group End"}]}]},{"t":8,"n":"Female Morph Groups","c":[{"t":6,"n":"Morph Group","c":[{"t":2,"n":"MPGN - Name"},{"t":3,"n":"MPPC - Count"},{"t":8,"n":"Morph Presets","c":[{"t":6,"n":"Morph Preset","c":[{"t":3,"n":"MPPI - Index"},{"t":2,"n":"MPPN - Name"},{"t":2,"n":"MPPM - Unknown"},{"t":3,"n":"MPPT - Texture"},{"t":11,"n":"MPPF - Unknown"}]}]},{"t":11,"n":"MPPK - Unknown"},{"t":11,"n":"MPGS - Unknown"}]}]},{"t":8,"n":"Female Face Morphs","c":[{"t":6,"n":"Face Morph","c":[{"t":3,"n":"FMRI - Index"},{"t":2,"n":"FMRN - Name"}]}]},{"t":2,"n":"WMAP - Female Wrinkle Map Path"},{"t":3,"n":"NAM8 - Morph Race"},{"t":3,"n":"RNAM - Armor Race"},{"t":3,"n":"SRAC - Subgraph Template Race"},{"t":3,"n":"SADD - Subgraph Additive Race"},{"t":8,"n":"Subgraph Data","c":[{"t":6,"n":"Data","c":[{"t":2,"n":"SGNM - Behaviour Graph"},{"t":8,"n":"Actor Keywords","c":[{"t":3,"n":"SAKD - Keyword"}]},{"t":8,"n":"Target Keywords","c":[{"t":3,"n":"STKD - Keyword"}]},{"t":8,"n":"Animation Paths","c":[{"t":2,"n":"SAPT - Path"}]},{"t":6,"n":"SRAF - Flags","c":[{"t":3,"n":"Role"},{"t":3,"n":"Perspective"}]}]}]},{"t":5,"n":"PTOP - Idle Chatter Time Min"},{"t":5,"n":"NTOP - Idle Chatter Time Max"},{"t":8,"n":"Morph Values","c":[{"t":6,"n":"Value","c":[{"t":3,"n":"MSID - Index"},{"t":2,"n":"MSM0 - Min Name"},{"t":2,"n":"MSM1 - Max Name"}]}]},{"t":11,"n":"MLSI - Unknown"},{"t":2,"n":"HNAM - Hair Color Lookup Texture"},{"t":2,"n":"HLTX - Hair Color Extended Lookup Texture"},{"t":3,"n":"QSTI - Dialogue Quest"},{"t":8,"n":"Bone Data","c":[{"t":6,"n":"Data","c":[{"t":3,"n":"BSMP - Gender"},{"t":8,"n":"Bones","c":[{"t":6,"n":"Bone","c":[{"t":2,"n":"BSMB - Name"},{"t":7,"n":"BSMS - Values","c":[{"t":5,"n":"Value"}]},{"t":11,"n":"BMMP - Unknown"}]}]}]}]}]},{"t":1,"p":1,"n":"REFR - Placed Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":6,"s":1,"p":1,"n":"XMBO - Bound Half Extents","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"XPRM - Primitive","c":[{"t":6,"p":1,"n":"Bounds","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":7,"p":1,"n":"XPOD - Portal Data","c":[{"t":6,"p":1,"n":"References","c":[{"t":3,"p":1,"n":"Origin"},{"t":3,"p":1,"n":"Destination"}]}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"s":1,"p":1,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":6,"s":1,"p":1,"n":"Bound Data","c":[{"t":6,"p":1,"n":"XRMR - Header","c":[{"t":3,"p":1,"n":"Linked Rooms Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"LNAM - Lighting Template"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":8,"p":1,"n":"Linked Rooms","c":[{"t":3,"p":1,"n":"XLRM - Linked Room"}]}]},{"p":1,"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":6,"s":1,"p":1,"n":"XLIG - Light Data","c":[{"t":5,"p":1,"n":"FOV 90+\/-"},{"t":5,"p":1,"n":"Fade 1.0+\/-"},{"t":5,"p":1,"n":"End Distance Cap"},{"t":5,"p":1,"n":"Shadow Depth Bias"},{"t":5,"p":1,"n":"Near Clip"},{"t":5,"p":1,"n":"Volumetric Intensity"}]},{"t":6,"s":1,"p":1,"n":"XALP - Alpha","c":[{"t":3,"p":1,"n":"Cutoff"},{"t":3,"p":1,"n":"Base"}]},{"t":6,"s":1,"p":1,"n":"XTEL - Teleport Destination","c":[{"t":3,"p":1,"n":"Door"},{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Transition Interior"}]},{"t":3,"p":1,"n":"XTNM - Teleport Loc Name"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XASP - Acoustic Restriction"},{"p":1,"n":"XATP - Activation Point"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":6,"s":1,"p":1,"n":"XRDO - Radio","c":[{"t":5,"p":1,"n":"Frequency"},{"t":5,"p":1,"n":"Min Weak Distance"},{"t":5,"p":1,"n":"Max Weak Distance"},{"t":3,"p":1,"n":"Flags"}]},{"t":6,"s":1,"p":1,"n":"XBSD - Spline","c":[{"t":5,"p":1,"n":"Slack"},{"t":5,"p":1,"n":"Thickness"},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Wind - Detached End"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XPDD - Projected Decal","c":[{"t":5,"p":1,"n":"Width Scale"},{"t":5,"p":1,"n":"Height Scale"}]},{"t":3,"p":1,"n":"XSPC - Spawn Container"},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"p":1,"n":"XLIB - Leveled Item Base Object"},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XTRI - Collision Layer"},{"t":6,"s":1,"p":1,"n":"XLOC - Lock Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Key"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"XNDP - Navigation Door Link","c":[{"t":3,"p":1,"n":"Navigation Mesh"},{"t":3,"p":1,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XCNT - Item Count"},{"t":3,"p":1,"n":"XHLT - Health %"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":8,"s":1,"p":1,"n":"Patrol","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":3,"p":1,"n":"XACT - Action Flag"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"p":1,"n":"ONAM - Open by Default"},{"t":6,"s":1,"p":1,"n":"Map Marker","c":[{"p":1,"n":"XMRK - Map Marker Data"},{"t":3,"p":1,"n":"FNAM - Map Flags"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"TNAM - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XATR - Attach Ref"},{"t":8,"s":1,"p":1,"n":"Spline Connection","d":1,"c":[{"t":6,"p":1,"n":"XPLK - Link","c":[{"t":3,"p":1,"n":"Ref"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"Power Grid","c":[{"t":3,"p":1,"n":"XWPG - Count"},{"t":8,"p":1,"n":"Connections","c":[{"t":6,"p":1,"n":"XWPN - Connection","c":[{"t":3,"p":1,"n":"Node 1"},{"t":3,"p":1,"n":"Node 2"},{"t":3,"p":1,"n":"Line"}]}]}]},{"t":11,"n":"XCVR - Unknown"},{"t":11,"n":"XCVL - Unknown"},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"REGN - Region","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"RCLR - Map Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":8,"s":1,"p":1,"n":"Region Areas","d":1,"c":[{"t":6,"p":1,"n":"Region Area","c":[{"t":3,"p":1,"n":"RPLI - Edge Fall-off"},{"t":7,"p":1,"n":"RPLD - Region Point List Data","c":[{"t":6,"p":1,"n":"Point","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":11,"n":"ANAM - Unknown"}]}]},{"t":10,"p":1,"n":"Region Data Entries","d":1,"c":[{"t":6,"p":1,"n":"Region Data Entry","c":[{"t":6,"p":1,"n":"RDAT - Data Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":3,"p":1,"n":"RDMO - Music"},{"t":7,"p":1,"n":"RDSA - Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Chance"}]}]},{"t":2,"p":1,"n":"RDMP - Map Name"},{"t":7,"p":1,"n":"RDOT - Objects","c":[{"t":6,"p":1,"n":"Object","c":[{"t":3,"p":1,"n":"Object"},{"t":3,"p":1,"n":"Parent Index"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Clustering"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Radius wrt Parent"},{"t":3,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Sink"},{"t":5,"p":1,"n":"Sink Variance"},{"t":5,"p":1,"n":"Size Variance"},{"t":6,"p":1,"n":"Angle Variance","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]}]}]},{"t":7,"p":1,"n":"RDGS - Grasses","c":[{"t":6,"p":1,"n":"Grass","c":[{"t":3,"p":1,"n":"Grass"},{"t":11,"n":"Unknown"}]}]},{"t":7,"p":1,"n":"RDWT - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":5,"p":1,"n":"RLDM - LOD Display Distance Multiplier"},{"t":5,"p":1,"n":"ANAM - Occlusion Accuracy Dist"}]}]}]},{"t":1,"p":1,"n":"RELA - Relationship","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Child"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Association Type"}]}]},{"t":1,"p":1,"n":"REVB - Reverb Parameters","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Decay Time (ms)"},{"t":3,"p":1,"n":"HF Reference (Hz)"},{"t":3,"p":1,"n":"Room Filter"},{"t":3,"p":1,"n":"Room HF Filter"},{"t":3,"p":1,"n":"Reflections"},{"t":3,"p":1,"n":"Reverb Amp"},{"t":3,"p":1,"n":"Decay HF Ratio"},{"t":3,"p":1,"n":"Reflect Delay (ms), scaled"},{"t":3,"p":1,"n":"Reverb Delay (ms)"},{"t":3,"p":1,"n":"Diffusion %"},{"t":3,"p":1,"n":"Density %"},{"t":3,"n":"Unknown"}]},{"t":3,"p":1,"n":"ANAM - Reverb Class"}]},{"t":1,"p":1,"n":"RFCT - Visual Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Effect Data","c":[{"t":3,"p":1,"n":"Effect Art"},{"t":3,"p":1,"n":"Shader"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"RFGP - Reference Group","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"NNAM - Name"},{"t":3,"p":1,"n":"RNAM - Reference"},{"t":11,"n":"PNAM - Unknown"}]},{"t":1,"p":1,"n":"SCCO - Scene Collection","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Scenes","d":1,"c":[{"t":6,"p":1,"n":"Scene","c":[{"t":3,"p":1,"n":"SNAM - Scene"},{"t":6,"n":"XNAM - Unknown","c":[{"t":3,"n":"Unknown"}]}]}]},{"t":11,"n":"VNAM - Unknown"},{"t":8,"n":"Unknown","c":[{"t":6,"n":"XNAM - Unknown","c":[{"t":3,"n":"Unknown"}]}]}]},{"t":1,"p":1,"n":"SCEN - Scene","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]},{"t":7,"p":1,"n":"Phase Fragments","c":[{"t":6,"p":1,"n":"Phase Fragment","c":[{"t":3,"p":1,"n":"Phase Flag"},{"t":3,"p":1,"n":"Phase Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"s":1,"p":1,"n":"Phases","d":1,"c":[{"t":6,"p":1,"n":"Phase","c":[{"p":1,"n":"HNAM - Marker Phase Start"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":6,"p":1,"n":"Start Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker Start Conditions"},{"t":6,"p":1,"n":"Completion Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker Completion Conditions"},{"t":3,"p":1,"n":"WNAM - Editor Width"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":6,"p":1,"n":"SCQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Start"},{"t":3,"p":1,"n":"On Completion"}]},{"p":1,"n":"HNAM - Marker Phase End"}]}]},{"t":8,"s":1,"p":1,"n":"Actors","d":1,"c":[{"t":6,"p":1,"n":"Actor","c":[{"t":3,"p":1,"n":"ALID - Alias ID"},{"t":3,"p":1,"n":"LNAM - Flags"},{"t":3,"p":1,"n":"DNAM - Behaviour Flags"}]}]},{"t":8,"s":1,"p":1,"n":"Actions","d":1,"c":[{"t":6,"p":1,"n":"Action","c":[{"t":3,"p":1,"n":"ANAM - Type"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":3,"p":1,"n":"ALID - Alias ID"},{"t":3,"p":1,"n":"INAM - Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Start Phase"},{"t":3,"p":1,"n":"ENAM - End Phase"},{"t":5,"p":1,"n":"SNAM - Timer - Max Seconds"},{"t":3,"p":1,"n":"SCQS - Set Parent Quest Stage"},{"t":5,"p":1,"n":"TNAM - Timer - Min Seconds"},{"t":11,"n":"STSC - Unknown"},{"t":8,"p":1,"n":"Start Scenes","c":[{"t":6,"p":1,"n":"Start Scene","c":[{"t":3,"p":1,"n":"LCEP - Scene"},{"t":3,"p":1,"n":"INTT - Phase Index"},{"t":2,"p":1,"n":"SSPN - Start Phase for Scene"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":3,"p":1,"n":"PTOP - Player Positive Response"},{"t":3,"p":1,"n":"NTOP - Player Negative Response"},{"t":3,"p":1,"n":"NETO - Player Neutral Response"},{"t":3,"p":1,"n":"QTOP - Player Question Response"},{"t":3,"p":1,"n":"VENC - Player Positive Dialogue Subtype"},{"t":3,"p":1,"n":"PLVD - Player Negative Dialogue Subtype"},{"t":3,"p":1,"n":"JOUT - Player Neutral Dialogue Subtype"},{"t":3,"p":1,"n":"DALC - Player Question Dialogue Subtype"},{"t":7,"p":1,"n":"DTID - NPC Headtracking","c":[{"t":3,"p":1,"n":"Actor ID"}]},{"t":3,"p":1,"n":"NPOT - NPC Positive Response"},{"t":3,"p":1,"n":"NNGT - NPC Negative Response"},{"t":3,"p":1,"n":"NNUT - NPC Neutral Response"},{"t":3,"p":1,"n":"NQUT - NPC Question Response"},{"t":3,"p":1,"n":"NPOS - NPC Positive Dialogue Subtype"},{"t":3,"p":1,"n":"NNGS - NPC Negative Dialogue Subtype"},{"t":3,"p":1,"n":"NNUS - NPC Neutral Dialogue Subtype"},{"t":3,"p":1,"n":"NQUS - NPC Question Dialogue Subtype"},{"t":3,"p":1,"n":"DTGT - Dialogue Target Actor"},{"t":8,"p":1,"n":"Packages","c":[{"t":3,"p":1,"n":"PNAM - Package"}]},{"t":3,"p":1,"n":"DATA - Topic"},{"p":1,"n":"End Scene Say Greeting"},{"t":3,"p":1,"n":"Play Sound"},{"t":5,"p":1,"n":"DMAX - Looping - Max"},{"t":5,"p":1,"n":"DMIN - Looping - Min"},{"t":6,"p":1,"n":"CRIS - Camera","c":[{"t":5,"p":1,"n":"FOV On Player Camera"},{"t":5,"p":1,"n":"Rate Of Camera Change"}]},{"t":3,"p":1,"n":"DEMO - Emotion Type"},{"t":3,"p":1,"n":"DEVA - Emotion Value"},{"t":7,"p":1,"n":"HTID - Player Headtracking","c":[{"t":3,"p":1,"n":"Actor ID"}]},{"t":3,"p":1,"n":"VENC - Dialogue Subtype"},{"t":3,"p":1,"n":"PNAM - AnimArchType"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"},{"p":1,"n":"ANAM - End Marker"}]}]},{"t":3,"p":1,"n":"PNAM - Quest"},{"t":3,"p":1,"n":"INAM - Last Action Index"},{"t":11,"n":"VNAM - Unknown"},{"t":5,"p":1,"n":"CNAM - Camera Distance Override"},{"t":5,"p":1,"n":"ACTV - Dialogue Distance Override"},{"t":5,"p":1,"n":"CRIS - FOV Override"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"SCQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Begin"},{"t":3,"p":1,"n":"On End"}]},{"t":2,"p":1,"n":"NNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Template Scene"},{"t":3,"p":1,"n":"XNAM - Index"}]},{"t":1,"p":1,"n":"SCOL - Static Collection","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":10,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"ONAM - Static"},{"t":7,"p":1,"n":"DATA - Placements","c":[{"t":6,"p":1,"n":"Placement","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Scale"}]}]}]}]}]},{"t":1,"p":1,"n":"SCSN - Audio Category Snapshot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Priority"},{"t":8,"s":1,"p":1,"n":"Category Multipliers","d":1,"c":[{"t":6,"p":1,"n":"CNAM - Category Multiplier","c":[{"t":3,"p":1,"n":"Categoty"},{"t":5,"p":1,"n":"Multiplier"}]}]}]},{"t":1,"p":1,"n":"SMBN - Story Manager Branch Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"}]},{"t":1,"p":1,"n":"SMEN - Story Manager Event Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"},{"t":2,"p":1,"n":"ENAM - Type"}]},{"t":1,"p":1,"n":"SMQN - Story Manager Quest Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Flags","c":[{"t":3,"p":1,"n":"Node Flags"},{"t":3,"p":1,"n":"Quest Flags"}]},{"t":3,"p":1,"n":"XNAM - Max concurrent quests"},{"t":3,"p":1,"n":"MNAM - Num quests to run"},{"t":5,"p":1,"n":"HNAM - Hours until reset"},{"t":3,"n":"QNAM - Quest Count"},{"t":10,"p":1,"n":"Quests","d":1,"c":[{"t":6,"p":1,"n":"Quest","c":[{"t":3,"p":1,"n":"NNAM - Quest"},{"t":11,"n":"FNAM - Unknown"},{"t":5,"p":1,"n":"RNAM - Hours until reset"}]}]}]},{"t":1,"p":1,"n":"SNCT - Sound Category","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"PNAM - Parent Category"},{"t":3,"p":1,"n":"ONAM - Menu Slider Category"},{"t":3,"p":1,"n":"VNAM - Static Volume Multiplier"},{"t":3,"p":1,"n":"UNAM - Default Menu Value"},{"t":5,"p":1,"n":"MNAM - Min Frequency Multiplier"},{"t":5,"p":1,"n":"CNAM - Sidechain Target Multiplier"}]},{"t":1,"p":1,"n":"SNDR - Sound Descriptor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"NNAM - Notes"},{"t":3,"p":1,"n":"CNAM - Descriptor Type"},{"t":3,"p":1,"n":"GNAM - Category"},{"t":3,"p":1,"n":"SNAM - Alternate Sound For"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"Sound Files","c":[{"t":2,"p":1,"n":"ANAM - File Name"}]}]},{"t":3,"p":1,"n":"ONAM - Output Model"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"LNAM - Values","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Looping"},{"t":3,"p":1,"n":"Sidechain"},{"t":3,"p":1,"n":"Rumble Send Value = (Small \/ 7) + ((Big \/ 7) * 16)"}]},{"t":6,"s":1,"p":1,"n":"Values","c":[{"t":3,"p":1,"n":"% Frequency Shift"},{"t":3,"p":1,"n":"% Frequency Variance"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"db Variance"},{"t":3,"p":1,"n":"Static Attenuation (db)"}]},{"t":3,"p":1,"n":"Base Descriptor"},{"t":8,"s":1,"p":1,"n":"Descriptors","d":1,"c":[{"t":3,"p":1,"n":"DNAM - Descriptor"}]},{"t":3,"n":"ITMC - Count"},{"t":10,"p":1,"n":"Rates of Fire","d":1,"c":[{"t":6,"p":1,"n":"Sound","c":[{"p":1,"n":"ITMS - Marker Start"},{"t":3,"p":1,"n":"INTV - RoF (RPM)"},{"t":2,"p":1,"n":"FNAM - File"},{"p":1,"n":"ITME - Marker End"}]}]}]},{"t":1,"p":1,"n":"SOPM - Sound Output Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"NAM1 - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reverb Send %"}]},{"t":3,"p":1,"n":"MNAM - Type"},{"t":3,"p":1,"n":"VNAM - Static Attenuation"},{"t":6,"s":1,"p":1,"n":"ONAM - Output Values","c":[{"t":7,"p":1,"n":"Channels","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"FL"},{"t":3,"p":1,"n":"FR"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"SL"},{"t":3,"p":1,"n":"SR"}]}]}]},{"t":6,"s":1,"p":1,"n":"ATTN - Attenuation Values","c":[{"t":5,"p":1,"n":"Fade In Distance - Start"},{"t":5,"p":1,"n":"Fade In Distance - End"},{"t":5,"p":1,"n":"Fade Out Distance - Start"},{"t":5,"p":1,"n":"Fade Out Distance - End"},{"t":6,"p":1,"n":"Fade In Curve","c":[{"t":3,"p":1,"n":"Value 1"},{"t":3,"p":1,"n":"Value 2"},{"t":3,"p":1,"n":"Value 3"},{"t":3,"p":1,"n":"Value 4"}]},{"t":6,"p":1,"n":"Fade Out Curve","c":[{"t":3,"p":1,"n":"Value 1"},{"t":3,"p":1,"n":"Value 2"},{"t":3,"p":1,"n":"Value 3"},{"t":3,"p":1,"n":"Value 4"}]}]},{"t":3,"p":1,"n":"ENAM - Effect Chain"}]},{"t":1,"p":1,"n":"SOUN - Sound Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SDSC - Sound Descriptor"},{"t":6,"s":1,"p":1,"n":"REPT - Repeat","c":[{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Max Time"},{"t":3,"p":1,"n":"Stackable"}]}]},{"t":1,"p":1,"n":"SPEL - Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Casting Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SPGD - Shader Particle Geometry","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":5,"p":1,"n":"Gravity Velocity"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Rotation Velocity"},{"t":5,"p":1,"n":"Particle Size X"},{"t":5,"p":1,"n":"Center Offset Min"},{"t":5,"p":1,"n":"Particle Size Y"},{"t":5,"p":1,"n":"Center Offset Max"},{"t":5,"p":1,"n":"Initial Rotation"},{"t":3,"p":1,"n":"# of Subtextures X"},{"t":3,"p":1,"n":"# of Subtextures Y"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Box Size"},{"t":5,"p":1,"n":"Particle Density"}]},{"t":2,"p":1,"n":"MNAM - Particle Texture"}]},{"t":1,"p":1,"n":"STAG - Animation Sound Tag Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"TNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":2,"p":1,"n":"Action"}]}]}]},{"t":1,"p":1,"n":"STAT - Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - Direction Material","c":[{"t":5,"p":1,"n":"Max Angle (30-120)"},{"t":3,"p":1,"n":"Material"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]},{"t":7,"p":1,"n":"MNAM - Distant LOD","c":[{"t":6,"p":1,"n":"LOD","c":[{"t":2,"p":1,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"TERM - Terminal","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"NAM0 - Header Text"},{"t":2,"p":1,"n":"WNAM - Welcome Text"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags"},{"t":11,"n":"WBDT - Workbench Data (unused)"},{"t":2,"p":1,"n":"XMRK - Marker Model"},{"t":7,"p":1,"n":"SNAM - Marker Paramaters","c":[{"t":6,"p":1,"n":"Marker","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"},{"t":5,"p":1,"n":"Rotation Z"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Entry Types"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"BSIZ - Count"},{"t":8,"s":1,"p":1,"n":"Body Text","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":2,"p":1,"n":"BTXT - Text"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":3,"n":"ISIZ - Count"},{"t":8,"s":1,"p":1,"n":"Menu Items","d":1,"c":[{"t":6,"p":1,"n":"Menu Item","c":[{"t":2,"p":1,"n":"ITXT - Item Text"},{"t":2,"p":1,"n":"RNAM - Response Text"},{"t":3,"p":1,"n":"ANAM - Type"},{"t":3,"p":1,"n":"ITID - Item ID"},{"t":2,"p":1,"n":"UNAM - Display Text"},{"t":2,"p":1,"n":"VNAM - Show Image"},{"t":3,"p":1,"n":"TNAM - Submenu"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"TREE - Tree","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer"},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Tree Data","c":[{"t":5,"p":1,"n":"Trunk Flexibility"},{"t":5,"p":1,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"TRNS - Transform","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":5,"p":1,"n":"Scale"},{"t":5,"p":1,"n":"Zoom Min"},{"t":5,"p":1,"n":"Zoom Max"}]}]},{"t":1,"p":1,"n":"TXST - Texture Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Textures (RGB\/A)","c":[{"t":2,"p":1,"n":"TX00 - Difuse"},{"t":2,"p":1,"n":"TX01 - Normal\/Gloss"},{"t":2,"p":1,"n":"TX03 - Glow"},{"t":2,"p":1,"n":"TX04 - Height"},{"t":2,"p":1,"n":"TX05 - Environment"},{"t":2,"p":1,"n":"TX02 - Wrinkles"},{"t":2,"p":1,"n":"TX06 - Multilayer"},{"t":2,"p":1,"n":"TX07 - Smooth Spec"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Alpha Threshold?"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":2,"p":1,"n":"MNAM - Material"}]},{"t":1,"p":1,"n":"VTYP - Voice Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Flags"}]},{"t":1,"p":1,"n":"WATR - Water","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"ANAM - Opacity (unused)"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"TNAM - Material (unused)"},{"t":3,"p":1,"n":"SNAM - Open Sound"},{"t":3,"p":1,"n":"XNAM - Consume Spell"},{"t":3,"p":1,"n":"YNAM - Contact Spell"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":11,"n":"DATA - Unused"},{"t":6,"s":1,"p":1,"n":"DNAM - Visual Data","c":[{"t":6,"p":1,"n":"Fog Properties","c":[{"t":5,"p":1,"n":"Depth Amount"},{"t":6,"p":1,"n":"Shallow Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Deep Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Shallow Range"},{"t":5,"p":1,"n":"Color Deep Range"},{"t":5,"p":1,"n":"Shallow Alpha"},{"t":5,"p":1,"n":"Deep Alpha"},{"t":5,"p":1,"n":"Alpha Shallow Range"},{"t":5,"p":1,"n":"Alpha Deep Range"},{"t":6,"p":1,"n":"Underwater Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Underwater Fog Amount"},{"t":5,"p":1,"n":"Underwater Near Fog"},{"t":5,"p":1,"n":"Underwater Far Fog"}]},{"t":6,"p":1,"n":"Physical Properties","c":[{"t":5,"p":1,"n":"Normal Magnitude"},{"t":5,"p":1,"n":"Shallow Normal Falloff"},{"t":5,"p":1,"n":"Deep Normal Falloff"},{"t":5,"p":1,"n":"Reflectivity Amount"},{"t":5,"p":1,"n":"Fresnel Amount"},{"t":5,"p":1,"n":"Surface Effect Falloff"},{"t":6,"p":1,"n":"Displacement Simulator","c":[{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Velocity"},{"t":5,"p":1,"n":"Falloff"},{"t":5,"p":1,"n":"Dampener"},{"t":5,"p":1,"n":"Starting Size"}]},{"t":6,"p":1,"n":"Reflection Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular Properties","c":[{"t":5,"p":1,"n":"Sun Specular Power"},{"t":5,"p":1,"n":"Sun Specular Magnitude"},{"t":5,"p":1,"n":"Sun Sparkle Power"},{"t":5,"p":1,"n":"Sun Sparkle Magnitude"},{"t":5,"p":1,"n":"Interior Specular Radius"},{"t":5,"p":1,"n":"Interior Specular Brightness"},{"t":5,"p":1,"n":"Interior Specular Power"}]},{"t":6,"p":1,"n":"Noise Properties","c":[{"t":5,"p":1,"n":"Layer 1 - Wind Direction"},{"t":5,"p":1,"n":"Layer 2 - Wind Direction"},{"t":5,"p":1,"n":"Layer 3 - Wind Direction"},{"t":5,"p":1,"n":"Layer 1 - Wind Speed"},{"t":5,"p":1,"n":"Layer 2 - Wind Speed"},{"t":5,"p":1,"n":"Layer 3 - Wind Speed"},{"t":5,"p":1,"n":"Layer 1 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 2 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 3 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 1 - UV Scale"},{"t":5,"p":1,"n":"Layer 2 - UV Scale"},{"t":5,"p":1,"n":"Layer 3 - UV Scale"},{"t":5,"p":1,"n":"Layer 1 - Noise Falloff"},{"t":5,"p":1,"n":"Layer 2 - Noise Falloff"},{"t":5,"p":1,"n":"Layer 3 - Noise Falloff"}]},{"t":6,"p":1,"n":"Silt Properties","c":[{"t":5,"p":1,"n":"Silt Amount"},{"t":6,"p":1,"n":"Light Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Dark Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"Screen Space Reflections"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"s":1,"p":1,"n":"NAM0 - Linear Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"NAM1 - Angular Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"NAM2 - Layer 1 Noise Texture"},{"t":2,"p":1,"n":"NAM3 - Layer 2 Noise Texture"},{"t":2,"p":1,"n":"NAM4 - Layer 3 Noise Texture"}]},{"t":1,"p":1,"n":"WEAP - Weapon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"INRD - Instance Naming"},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]},{"t":3,"p":1,"n":"NNAM - Embedded Weapon Mod"},{"t":6,"s":1,"p":1,"n":"1st Person Model","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"},{"t":5,"p":1,"n":"MO4C - Color Remapping Index"},{"t":11,"n":"MO4F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Ammo"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Reload Speed"},{"t":5,"p":1,"n":"Reach"},{"t":5,"p":1,"n":"Min Range"},{"t":5,"p":1,"n":"Max Range"},{"t":5,"p":1,"n":"Attack Delay"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Damage - OutOfRange Mult"},{"t":3,"p":1,"n":"On Hit"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Resist"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Capacity"},{"t":3,"p":1,"n":"Animation Type"},{"t":5,"p":1,"n":"Damage - Secondary"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Damage - Base"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Sound - Attack"},{"t":3,"p":1,"n":"Sound - Attack 2D"},{"t":3,"p":1,"n":"Sound - Attack Loop"},{"t":3,"p":1,"n":"Sound - Attack Fail"},{"t":3,"p":1,"n":"Sound - Idle"},{"t":3,"p":1,"n":"Sound - Equip Sound"},{"t":3,"p":1,"n":"Sound - UnEquip Sound"},{"t":3,"p":1,"n":"Sound - Fast Equip Sound"},{"t":3,"p":1,"n":"Accuracy Bonus"},{"t":5,"p":1,"n":"Animation Attack Seconds"},{"t":5,"p":1,"n":"Action Point Cost"},{"t":5,"p":1,"n":"Full Power Seconds"},{"t":5,"p":1,"n":"Min Power Per Shot"},{"t":3,"p":1,"n":"Stagger"}]},{"t":6,"s":1,"p":1,"n":"FNAM - ","c":[{"t":5,"p":1,"n":"Animation Fire Seconds"},{"t":5,"p":1,"n":"Rumble - Left Motor Strength"},{"t":5,"p":1,"n":"Rumble - Right Motor Strength"},{"t":5,"p":1,"n":"Rumble - Duration"},{"t":5,"p":1,"n":"Animation Reload Seconds"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Sighted Transition Seconds"},{"t":3,"p":1,"n":"# Projectiles"},{"t":3,"p":1,"n":"Override Projectile"},{"t":3,"p":1,"n":"Pattern"},{"t":3,"p":1,"n":"Rumble - Peroid (ms)"}]},{"t":6,"s":1,"p":1,"n":"CRDT - Critical Data","c":[{"t":5,"p":1,"n":"Crit Damage Mult"},{"t":5,"p":1,"n":"Crit Charge Bonus"},{"t":3,"p":1,"n":"Crit Effect"}]},{"t":3,"p":1,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"LNAM - NPC Add Ammo List"},{"t":3,"p":1,"n":"WAMD - Aim Model"},{"t":3,"p":1,"n":"WZMD - Zoom"},{"t":3,"p":1,"n":"CNAM - Template"},{"t":7,"p":1,"n":"DAMA - Damage Types","c":[{"t":6,"p":1,"n":"Damage Type","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Amount"}]}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":3,"p":1,"n":"MASE - Melee Speed"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"n":"Unused RNAM","c":[{"t":11,"n":"RNAM - Unknown"}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":3,"p":1,"n":"LTMP - Interior Lighting"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XLCN - Location"},{"t":6,"s":1,"p":1,"n":"Parent","c":[{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":3,"p":1,"n":"CNAM - Climate"},{"t":3,"p":1,"n":"NAM2 - Water"},{"t":3,"p":1,"n":"NAM3 - LOD Water Type"},{"t":5,"p":1,"n":"NAM4 - LOD Water Height"},{"t":6,"s":1,"p":1,"n":"DNAM - Land Data","c":[{"t":5,"p":1,"n":"Default Land Height"},{"t":5,"p":1,"n":"Default Water Height"}]},{"t":2,"p":1,"n":"ICON - Map Image"},{"t":6,"s":1,"p":1,"n":"Cloud Model","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"MNAM - Map Data","c":[{"t":6,"p":1,"n":"Usable Dimensions","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Cell Coordinates","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"SE Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]}]},{"t":6,"s":1,"p":1,"n":"ONAM - World Map Offset Data","c":[{"t":5,"p":1,"n":"World Map Scale"},{"t":5,"p":1,"n":"Cell X Offset"},{"t":5,"p":1,"n":"Cell Y Offset"},{"t":5,"p":1,"n":"Cell Z Offset"}]},{"t":5,"p":1,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"Object Bounds","c":[{"t":6,"p":1,"n":"NAM0 - Min","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"NAM9 - Max","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":3,"p":1,"n":"ZNAM - Music"},{"t":2,"p":1,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":2,"p":1,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"p":1,"n":"UNAM - HD LOD Normal Texture"},{"t":6,"s":1,"p":1,"n":"World Default Level Data","c":[{"t":6,"p":1,"n":"WLEV - Dimension","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Size","c":[{"t":3,"p":1,"n":"Width"},{"t":3,"p":1,"n":"Height"}]}]},{"t":11,"p":1,"n":"WLEV - Data"}]},{"t":11,"n":"OFST - Offset Data"},{"t":11,"n":"CLSZ - Unknown"}]},{"t":1,"p":1,"n":"WTHR - Weather","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"p":1,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"p":1,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"p":1,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"p":1,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"p":1,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"p":1,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"p":1,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"p":1,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"p":1,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"p":1,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"p":1,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"p":1,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"p":1,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"p":1,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"p":1,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"p":1,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"p":1,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"p":1,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"p":1,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"p":1,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"p":1,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"p":1,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"p":1,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"p":1,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"p":1,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"p":1,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"p":1,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"p":1,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Precipitation Type"},{"t":3,"p":1,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"s":1,"p":1,"n":"Cloud Speed","c":[{"t":7,"p":1,"n":"RNAM - Y Speed","c":[{"t":3,"p":1,"n":"Layer"}]},{"t":7,"p":1,"n":"QNAM - X Speed","c":[{"t":3,"p":1,"n":"Layer"}]}]},{"t":7,"p":1,"n":"PNAM - Cloud Colors","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"p":1,"n":"JNAM - Cloud Alphas","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":5,"p":1,"n":"Sunrise"},{"t":5,"p":1,"n":"Day"},{"t":5,"p":1,"n":"Sunset"},{"t":5,"p":1,"n":"Night"},{"t":5,"p":1,"n":"EarlySunrise"},{"t":5,"p":1,"n":"LateSunrise"},{"t":5,"p":1,"n":"EarlySunset"},{"t":5,"p":1,"n":"LateSunset"}]}]},{"t":6,"s":1,"p":1,"n":"NAM0 - Weather Colors","c":[{"t":6,"p":1,"n":"Sky-Upper","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"EarlySunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"LateSunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"EarlySunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"LateSunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sunlight","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Stars","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky-Lower","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Horizon","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Effect Lighting","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Diffuse","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky Statics","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Water Multiplier","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Moon Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near High","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far High","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"n":"NAM4 - Unknown","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"FNAM - Fog Distance","c":[{"t":5,"p":1,"n":"Day - Near"},{"t":5,"p":1,"n":"Day - Far"},{"t":5,"p":1,"n":"Night - Near"},{"t":5,"p":1,"n":"Night - Far"},{"t":5,"p":1,"n":"Day - Power"},{"t":5,"p":1,"n":"Night - Power"},{"t":5,"p":1,"n":"Day - Max"},{"t":5,"p":1,"n":"Night - Max"},{"t":5,"p":1,"n":"Day - Near Height Mid"},{"t":5,"p":1,"n":"Day - Near Height Range"},{"t":5,"p":1,"n":"Night - Near Height Mid"},{"t":5,"p":1,"n":"Night - Near Height Range"},{"t":5,"p":1,"n":"Day - High Density Scale"},{"t":5,"p":1,"n":"Night - High Density Scale"},{"t":5,"p":1,"n":"Day - Far Height Mid"},{"t":5,"p":1,"n":"Day - Far Height Range"},{"t":5,"p":1,"n":"Night - Far Height Mid"},{"t":5,"p":1,"n":"Night - Far Height Range"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Trans Delta"},{"t":3,"p":1,"n":"Sun Glare"},{"t":3,"p":1,"n":"Sun Damage"},{"t":3,"p":1,"n":"Precipitation - Begin Fade In"},{"t":3,"p":1,"n":"Precipitation - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"p":1,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Frequency"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Lightning Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Visual Effect - Begin"},{"t":3,"p":1,"n":"Visual Effect - End"},{"t":3,"p":1,"n":"Wind Direction"},{"t":3,"p":1,"n":"Wind Direction Range"}]},{"t":3,"p":1,"n":"NAM1 - Disabled Cloud Layers"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Sky Statics","d":1,"c":[{"t":3,"p":1,"n":"TNAM - Static"}]},{"t":6,"s":1,"p":1,"n":"IMSP - Image Spaces","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"},{"t":3,"p":1,"n":"EarlySunrise"},{"t":3,"p":1,"n":"LateSunrise"},{"t":3,"p":1,"n":"EarlySunset"},{"t":3,"p":1,"n":"LateSunset"}]},{"t":6,"s":1,"p":1,"n":"WGDR - God Rays","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"},{"t":3,"p":1,"n":"EarlySunrise"},{"t":3,"p":1,"n":"LateSunrise"},{"t":3,"p":1,"n":"EarlySunset"},{"t":3,"p":1,"n":"LateSunset"}]},{"t":6,"s":1,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"DALC - Sunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Day","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Sunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Night","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - EarlySunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - LateSunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - EarlySunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - LateSunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":6,"s":1,"p":1,"n":"Aurora","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":3,"p":1,"n":"GNAM - Sun Glare Lens Flare"},{"t":6,"s":1,"p":1,"n":"UNAM - Magic","c":[{"t":3,"p":1,"n":"On Lightning Strike - Spell"},{"t":5,"p":1,"n":"On Lightning Strike - Threshold"},{"t":3,"p":1,"n":"On Weather Activate - Spell"},{"t":5,"p":1,"n":"On Weather Activate - Threshold"},{"t":11,"n":"Unknown"}]},{"t":5,"p":1,"n":"VNAM - Volatility Mult"},{"t":5,"p":1,"n":"WNAM - Visibility Mult"}]},{"t":1,"p":1,"n":"ZOOM - Zoom","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"GNAM - Data","c":[{"t":5,"p":1,"n":"FOV Mult"},{"t":3,"p":1,"n":"Overlay"},{"t":3,"p":1,"n":"Imagespace Modifier"},{"t":6,"p":1,"n":"Camera Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"AACT - Action","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"DNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Type"},{"t":3,"p":1,"n":"DATA - Attraction Rule"},{"t":2,"p":1,"n":"FULL - Name"}]}]},"name":"Smash.All","hash":"A4B4931B","color":128}
\ No newline at end of file
+{"records":"AACT,ACTI,ADDN,AECH,ALCH,AMDL,AMMO,ANIO,AORU,ARMA,ARMO,ARTO,ASPC,ASTP,AVIF,BNDS,BOOK,BPTD,CAMS,CELL,CLAS,CLFM,CLMT,CMPO,COBJ,COLL,CONT,CPTH,CSTY,DEBR,DFOB,DIAL,DLBR,DLVW,DMGT,DOOR,DUAL,ECZN,EFSH,ENCH,EQUP,EXPL,FACT,FLOR,FLST,FSTP,FSTS,FURN,GDRY,GLOB,GMST,GRAS,HAZD,HDPT,IDLE,IDLM,IMAD,IMGS,INFO,INGR,INNR,IPCT,IPDS,KEYM,KSSM,KYWD,LAND,LAYR,LCRT,LENS,LGTM,LIGH,LSCR,LTEX,LVLI,LVLN,LVSP,MATO,MATT,MESG,MGEF,MISC,MOVT,MSTT,MSWP,MUSC,MUST,NOTE,NPC_,OMOD,OTFT,PACK,PARW,PBAR,PBEA,PCON,PERK,PFLA,PGRE,PHZD,PKIN,PMIS,PROJ,QUST,RACE,REFR,REGN,RELA,REVB,RFCT,RFGP,SCCO,SCEN,SCOL,SCSN,SMBN,SMEN,SMQN,SNCT,SNDR,SOPM,SOUN,SPEL,SPGD,STAG,STAT,TACT,TERM,TREE,TRNS,TXST,VTYP,WATR,WEAP,WRLD,WTHR,ZOOM,ACHR","description":"Smashes all the things. Produced using autoset attributes on all record types found in Fallout4.esm and DLC.\r\n\r\nLast updated 01\/07\/2021.","tree":{"records":[{"t":1,"p":1,"n":"AACT - Action","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"DNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Type"},{"t":3,"p":1,"n":"DATA - Attraction Rule"},{"t":2,"p":1,"n":"FULL - Name"}]},{"t":1,"p":1,"n":"ACTI - Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"p":1,"n":"STCP - Sound"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":6,"s":1,"p":1,"n":"PNAM - Marker Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"SNAM - Sound - Looping"},{"t":3,"p":1,"n":"VNAM - Sound - Activation"},{"t":3,"p":1,"n":"WNAM - Water Type"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"No Displacement"},{"t":4,"p":1,"n":"Ignored by Sandbox"}]},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"},{"t":6,"s":1,"p":1,"n":"RADR - Radio Receiver","c":[{"t":3,"p":1,"n":"Sound Model"},{"t":5,"p":1,"n":"Frequency"},{"t":5,"p":1,"n":"Volume"},{"t":3,"p":1,"n":"Starts Active"},{"t":3,"p":1,"n":"No Signal Static"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]}]},{"t":1,"p":1,"n":"ADDN - Addon Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DATA - Node Index"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":3,"p":1,"n":"LNAM - Light"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Master Particle System Cap"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"AECH - Audio Effect Chain","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"KNAM - Type"},{"t":6,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Enabled"},{"t":5,"p":1,"n":"Input Gain"},{"t":5,"p":1,"n":"Center Freq"},{"t":5,"p":1,"n":"Feedback %"},{"t":5,"p":1,"n":"Output Gain"},{"t":5,"p":1,"n":"Q Value"},{"t":5,"p":1,"n":"Wet Mix %"},{"t":5,"p":1,"n":"Upper Threshold"},{"t":3,"p":1,"n":"Filter Mode"},{"t":3,"p":1,"n":"Delay MS"},{"t":5,"p":1,"n":"Lower Threshold"},{"t":11,"n":"Unused"}]}]}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"CUSD - Sound - Crafting"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Auto-Calc"},{"t":4,"p":1,"n":"Food Item"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"p":1,"n":"Medicine"},{"t":4,"p":1,"n":"Poison"}]},{"t":3,"p":1,"n":"Addiction"},{"t":5,"p":1,"n":"Addiction Chance"},{"t":3,"p":1,"n":"Sound - Consume"}]},{"t":2,"p":1,"n":"DNAM - Addiction Name"},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMDL - Aim Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":5,"p":1,"n":"Cone of Fire - Min Angle"},{"t":5,"p":1,"n":"Cone of Fire - Max Angle"},{"t":5,"p":1,"n":"Cone of Fire - Increase Per Shot"},{"t":5,"p":1,"n":"Cone of Fire - Decrease Per Sec"},{"t":3,"p":1,"n":"Cone of Fire - Decrease Delay MS"},{"t":5,"p":1,"n":"Cone of Fire - Sneak Mult"},{"t":5,"p":1,"n":"Recoil - Diminish Spring Force"},{"t":5,"p":1,"n":"Recoil - Diminish Sights Mult"},{"t":5,"p":1,"n":"Recoil - Max Per Shot"},{"t":5,"p":1,"n":"Recoil - Min Per Shot"},{"t":5,"p":1,"n":"Recoil - Hip Mult"},{"t":3,"p":1,"n":"Runaway - Recoil Shots"},{"t":5,"p":1,"n":"Recoil - Arc"},{"t":5,"p":1,"n":"Recoil - Arc Rotate"},{"t":5,"p":1,"n":"Cone of Fire - Iron Sights Mult"},{"t":5,"p":1,"n":"Stability - Base Stability"}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Damage"},{"t":3,"p":1,"n":"Health"}]},{"t":2,"p":1,"n":"ONAM - Short Name"},{"t":2,"p":1,"n":"NAM1 - Casing Model"},{"t":11,"n":"NAM2 - Texture Files Hashes"}]},{"t":1,"p":1,"n":"ANIO - Animated Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"BNAM - Unload Event"}]},{"t":1,"p":1,"n":"AORU - Attraction Rule","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"AOR2 - Data","c":[{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Delay"},{"t":5,"p":1,"n":"Max Delay"},{"t":3,"p":1,"n":"Requires Line of Sight"},{"t":3,"p":1,"n":"Combat Target"},{"t":11,"n":"Unused"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"p":1,"n":"30 - Head"},{"t":4,"p":1,"n":"31 - Hair"},{"t":4,"p":1,"n":"32 - Body"},{"t":4,"p":1,"n":"33 - Hands"},{"t":4,"p":1,"n":"34 - Forearms"},{"t":4,"p":1,"n":"35 - Amulet"},{"t":4,"p":1,"n":"36 - Ring"},{"t":4,"p":1,"n":"37 - Feet"},{"t":4,"p":1,"n":"38 - Calves"},{"t":4,"p":1,"n":"39 - Shield"},{"t":4,"p":1,"n":"40 - Tail"},{"t":4,"p":1,"n":"41 - LongHair"},{"t":4,"p":1,"n":"42 - Circlet"},{"t":4,"p":1,"n":"43 - Ears"},{"t":4,"p":1,"n":"44 - Unnamed"},{"t":4,"p":1,"n":"45 - Unnamed"},{"t":4,"p":1,"n":"46 - Unnamed"},{"t":4,"p":1,"n":"47 - Unnamed"},{"t":4,"p":1,"n":"48 - Unnamed"},{"t":4,"p":1,"n":"49 - Unnamed"},{"t":4,"p":1,"n":"50 - DecapitateHead"},{"t":4,"p":1,"n":"51 - Decapitate"},{"t":4,"p":1,"n":"52 - Unnamed"},{"t":4,"p":1,"n":"53 - Unnamed"},{"t":4,"p":1,"n":"54 - Unnamed"},{"t":4,"p":1,"n":"55 - Unnamed"},{"t":4,"p":1,"n":"56 - Unnamed"},{"t":4,"p":1,"n":"57 - Unnamed"},{"t":4,"p":1,"n":"58 - Unnamed"},{"t":4,"p":1,"n":"59 - Unnamed"},{"t":4,"p":1,"n":"60 - Unnamed"},{"t":4,"p":1,"n":"61 - FX01"}]}]},{"t":3,"p":1,"n":"RNAM - Race"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Male Priority"},{"t":3,"p":1,"n":"Female Priority"},{"t":3,"p":1,"n":"Weight slider - Male","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Enabled"}]},{"t":3,"p":1,"n":"Weight slider - Female","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Enabled"}]},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Detection Sound Value"},{"t":5,"p":1,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model FileName"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO2S - Material Swap"},{"t":5,"p":1,"n":"MO2C - Color Remapping Index"},{"t":11,"n":"MO2F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model FileName"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO3S - Material Swap"},{"t":5,"p":1,"n":"MO3C - Color Remapping Index"},{"t":11,"n":"MO3F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model FileName"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"},{"t":5,"p":1,"n":"MO4C - Color Remapping Index"},{"t":11,"n":"MO4F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model FileName"},{"t":11,"p":1,"n":"MO5T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO5S - Material Swap"},{"t":5,"p":1,"n":"MO5C - Color Remapping Index"},{"t":11,"n":"MO5F - Unknown"}]},{"t":3,"p":1,"n":"NAM0 - Male Skin Texture"},{"t":3,"p":1,"n":"NAM1 - Female Skin Texture"},{"t":3,"p":1,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"p":1,"n":"NAM3 - Female Skin Texture Swap List"},{"t":8,"s":1,"p":1,"n":"Additional Races","d":1,"c":[{"t":3,"p":1,"n":"MODL - Race"}]},{"t":3,"p":1,"n":"SNDD - Footstep Sound"},{"t":3,"p":1,"n":"ONAM - Art Object"},{"t":8,"s":1,"p":1,"n":"Bone Data","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":3,"p":1,"n":"BSMP - Gender"},{"t":8,"p":1,"n":"Bones","c":[{"t":6,"p":1,"n":"Bone","c":[{"t":2,"p":1,"n":"BSMB - Name"},{"t":7,"p":1,"n":"BSMS - Values","c":[{"t":5,"p":1,"n":"Value"}]},{"t":11,"n":"BMMP - Unknown"}]}]}]}]}]},{"t":1,"p":1,"n":"ARMO - Armor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model FileName"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO2S - Material Swap"}]},{"t":2,"p":1,"n":"ICON - Male Inventory Image"},{"t":2,"p":1,"n":"MICO - Male Message Icon"},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD4 - Model FileName"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"}]},{"t":2,"p":1,"n":"ICO2 - Female Inventory Image"},{"t":2,"p":1,"n":"MIC2 - Female Message Icon"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"p":1,"n":"30 - Head"},{"t":4,"p":1,"n":"31 - Hair"},{"t":4,"p":1,"n":"32 - Body"},{"t":4,"p":1,"n":"33 - Hands"},{"t":4,"p":1,"n":"34 - Forearms"},{"t":4,"p":1,"n":"35 - Amulet"},{"t":4,"p":1,"n":"36 - Ring"},{"t":4,"p":1,"n":"37 - Feet"},{"t":4,"p":1,"n":"38 - Calves"},{"t":4,"p":1,"n":"39 - Shield"},{"t":4,"p":1,"n":"40 - Tail"},{"t":4,"p":1,"n":"41 - LongHair"},{"t":4,"p":1,"n":"42 - Circlet"},{"t":4,"p":1,"n":"43 - Ears"},{"t":4,"p":1,"n":"44 - Unnamed"},{"t":4,"p":1,"n":"45 - Unnamed"},{"t":4,"p":1,"n":"46 - Unnamed"},{"t":4,"p":1,"n":"47 - Unnamed"},{"t":4,"p":1,"n":"48 - Unnamed"},{"t":4,"p":1,"n":"49 - Unnamed"},{"t":4,"p":1,"n":"50 - DecapitateHead"},{"t":4,"p":1,"n":"51 - Decapitate"},{"t":4,"p":1,"n":"52 - Unnamed"},{"t":4,"p":1,"n":"53 - Unnamed"},{"t":4,"p":1,"n":"54 - Unnamed"},{"t":4,"p":1,"n":"55 - Unnamed"},{"t":4,"p":1,"n":"56 - Unnamed"},{"t":4,"p":1,"n":"57 - Unnamed"},{"t":4,"p":1,"n":"58 - Unnamed"},{"t":4,"p":1,"n":"59 - Unnamed"},{"t":4,"p":1,"n":"60 - Unnamed"},{"t":4,"p":1,"n":"61 - FX01"}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"INRD - Instance Naming"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":3,"p":1,"n":"INDX - Addon Index"},{"t":3,"p":1,"n":"MODL - Armor Addon"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Health"}]},{"t":6,"s":1,"p":1,"n":"FNAM - ","c":[{"t":3,"p":1,"n":"Armor Rating"},{"t":3,"p":1,"n":"Base Addon Index"},{"t":3,"p":1,"n":"Stagger Rating"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMA - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"TNAM - Template Armor"},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]}]},{"t":1,"p":1,"n":"ARTO - Art Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"ASPC - Acoustic Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":3,"p":1,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"p":1,"n":"BNAM - Environment Type"},{"t":3,"p":1,"n":"XTRI - Is Interior"},{"t":3,"p":1,"n":"WNAM - Weather Attenuation (dB)"}]},{"t":1,"p":1,"n":"ASTP - Association Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MPRT - Male Parent Title"},{"t":2,"p":1,"n":"FPRT - Female Parent Title"},{"t":2,"p":1,"n":"MCHT - Male Child Title"},{"t":2,"p":1,"n":"FCHT - Female Child Title"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Family Association"}]}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ANAM - Abbreviation"},{"t":5,"p":1,"n":"NAM0 - Default Value"},{"t":3,"p":1,"n":"AVFL - Flags"},{"t":3,"p":1,"n":"NAM1 - Type"}]},{"t":1,"p":1,"n":"BNDS - Bendable Spline","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":5,"p":1,"n":"Default Number of Tiles"},{"t":3,"p":1,"n":"Default Number of Slices"},{"t":3,"p":1,"n":"Default Number of Tiles - Relative to Length"},{"t":6,"p":1,"n":"Default Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Wind Settings - Sensibility"},{"t":5,"p":1,"n":"Wind Settings - Flexibility"}]},{"t":3,"p":1,"n":"TNAM - Texture"}]},{"t":1,"p":1,"n":"BOOK - Book","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FIMD - Featured Item Message"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Perk"},{"t":6,"p":1,"n":"Text Offset","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]},{"t":2,"p":1,"n":"CNAM - Description"},{"t":3,"p":1,"n":"INAM - Inventory Art"}]},{"t":1,"p":1,"n":"BPTD - Body Part Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":10,"p":1,"n":"Body Parts","d":1,"c":[{"t":6,"p":1,"n":"Body Part","c":[{"t":2,"p":1,"n":"BPTN - Part Name"},{"t":2,"p":1,"n":"BPNN - Part Node"},{"t":2,"p":1,"n":"BPNT - VATS Target"},{"t":6,"p":1,"n":"BPND - BPND","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":3,"p":1,"n":"Explodable - Debris"},{"t":3,"p":1,"n":"Explodable - Explosion"},{"t":5,"p":1,"n":"Explodable - Debris Scale"},{"t":3,"p":1,"n":"Severable - Debris"},{"t":3,"p":1,"n":"Severable - Explosion"},{"t":5,"p":1,"n":"Severable - Debris Scale"},{"t":5,"p":1,"n":"Cut - Min"},{"t":5,"p":1,"n":"Cut - Max"},{"t":5,"p":1,"n":"Cut - Radius"},{"t":5,"p":1,"n":"Gore Effects - Local Rotate X"},{"t":5,"p":1,"n":"Gore Effects - Local Rotate Y"},{"t":5,"p":1,"n":"Cut - Tesselation"},{"t":3,"p":1,"n":"Severable - Impact DataSet"},{"t":3,"p":1,"n":"Explodable - Impact DataSet"},{"t":5,"p":1,"n":"Explodable - Limb Replacement Scale"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Severable"},{"t":4,"p":1,"n":"IK Data"},{"t":4,"p":1,"n":"IK Data - Biped Data"},{"t":4,"p":1,"n":"Explodable"},{"t":4,"p":1,"n":"IK Data - Is Head"},{"t":4,"p":1,"n":"IK Data - Headtracking"},{"t":4,"p":1,"n":"To Hit Chance - Absolute"}]},{"t":3,"p":1,"n":"Part Type"},{"t":3,"p":1,"n":"Health Percent"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"To Hit Chance"},{"t":3,"p":1,"n":"Explodable - Explosion Chance %"},{"t":3,"p":1,"n":"Non-Lethal Dismemberment Chance"},{"t":3,"p":1,"n":"Severable - Debris Count"},{"t":3,"p":1,"n":"Explodable - Debris Count"},{"t":3,"p":1,"n":"Severable - Decal Count"},{"t":3,"p":1,"n":"Explodable - Decal Count"},{"t":3,"p":1,"n":"Geometry Segment Index"},{"t":3,"p":1,"n":"On Cripple - Art Object"},{"t":3,"p":1,"n":"On Cripple - Debris"},{"t":3,"p":1,"n":"On Cripple - Explosion"},{"t":3,"p":1,"n":"On Cripple - Impact DataSet"},{"t":5,"p":1,"n":"On Cripple - Debris Scale"},{"t":3,"p":1,"n":"On Cripple - Debris Count"},{"t":3,"p":1,"n":"On Cripple - Decal Count"}]},{"t":2,"p":1,"n":"NAM1 - Limb Replacement Model"},{"t":2,"p":1,"n":"NAM4 - Gore Effects - Target Bone"},{"t":11,"p":1,"n":"NAM5 - Texture Files Hashes"},{"t":2,"p":1,"n":"ENAM - Hit Reaction - Start"},{"t":2,"p":1,"n":"FNAM - Hit Reaction - End"},{"t":3,"p":1,"n":"BNAM - Gore Effects - Dismember Blood Art"},{"t":3,"p":1,"n":"INAM - Gore Effects - Blood Impact Material Type"},{"t":3,"p":1,"n":"JNAM - On Cripple - Blood Impact Material Type"},{"t":3,"p":1,"n":"CNAM - Meat Cap TextureSet"},{"t":3,"p":1,"n":"NAM2 - Collar TextureSet"},{"t":2,"p":1,"n":"DNAM - Twist Variable Prefix"}]}]}]},{"t":1,"p":1,"n":"CAMS - Camera Shot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Action"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Position Follows Location"},{"t":4,"p":1,"n":"Rotation Follows Target"},{"t":4,"p":1,"n":"Don't Follow Bone"},{"t":4,"p":1,"n":"First Person Camera"},{"t":4,"p":1,"n":"No Tracer"},{"t":4,"p":1,"n":"Start At Time Zero"}]},{"t":6,"p":1,"n":"Time Multipliers","c":[{"t":5,"p":1,"n":"Player"},{"t":5,"p":1,"n":"Target"},{"t":5,"p":1,"n":"Global"}]},{"t":5,"p":1,"n":"Max Time"},{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Target % Between Actors"},{"t":5,"p":1,"n":"Near Target Distance"},{"t":5,"p":1,"n":"Location Spring"},{"t":5,"p":1,"n":"Target Spring"},{"t":6,"p":1,"n":"Rotation Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"}]},{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Is Interior Cell"},{"t":4,"p":1,"n":"Has Water"},{"t":4,"p":1,"n":"Can't Travel From Here"},{"t":4,"p":1,"n":"No LOD Water"},{"t":4,"n":"Unknown 5"},{"t":4,"p":1,"n":"Public Area"},{"t":4,"p":1,"n":"Hand Changed"},{"t":4,"p":1,"n":"Show Sky"},{"t":4,"p":1,"n":"Use Sky Lighting"}]},{"t":6,"s":1,"p":1,"n":"XCLC - Grid","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Force Hide Land","c":[{"t":4,"p":1,"n":"Quad 1"},{"t":4,"p":1,"n":"Quad 2"},{"t":4,"p":1,"n":"Quad 3"},{"t":4,"p":1,"n":"Quad 4"}]}]},{"t":11,"n":"VISI - PreVis Files Timestamp"},{"t":3,"p":1,"n":"RVIS - In PreVis File Of"},{"t":11,"n":"PCMB - PreCombined Files Timestamp"},{"t":6,"s":1,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":3,"p":1,"n":"Inherits","c":[{"t":4,"p":1,"n":"Ambient Color"},{"t":4,"p":1,"n":"Directional Color"},{"t":4,"p":1,"n":"Fog Color"},{"t":4,"p":1,"n":"Fog Near"},{"t":4,"p":1,"n":"Fog Far"},{"t":4,"p":1,"n":"Directional Rotation"},{"t":4,"p":1,"n":"Directional Fade"},{"t":4,"p":1,"n":"Clip Distance"},{"t":4,"p":1,"n":"Fog Power"},{"t":4,"p":1,"n":"Fog Max"},{"t":4,"p":1,"n":"Light Fade Distances"}]},{"t":5,"p":1,"n":"Near Height Mid"},{"t":5,"p":1,"n":"Near Height Range"},{"t":6,"p":1,"n":"Fog Color High Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color High Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"High Density Scale"},{"t":5,"p":1,"n":"Fog Near Scale"},{"t":5,"p":1,"n":"Fog Far Scale"},{"t":5,"p":1,"n":"Fog High Near Scale"},{"t":5,"p":1,"n":"Fog High Far Scale"},{"t":5,"p":1,"n":"Far Height Mid"},{"t":5,"p":1,"n":"Far Height Range"}]},{"t":3,"p":1,"n":"CNAM - Precombined Object Level XY"},{"t":3,"p":1,"n":"ZNAM - Precombined Object Level Z"},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"p":1,"n":"LTMP - Lighting Template"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":7,"p":1,"n":"XCLR - Regions","c":[{"t":3,"p":1,"n":"Region"}]},{"t":3,"p":1,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XILL - Lock List"},{"t":6,"s":1,"p":1,"n":"XILW - Exterior LOD","c":[{"t":3,"p":1,"n":"Worldspace"},{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"}]},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"p":1,"n":"XCAS - Acoustic Space"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"},{"t":3,"p":1,"n":"XGDR - God Rays"},{"t":7,"p":1,"n":"XPRI - Physics References","c":[{"t":3,"p":1,"n":"Reference"}]},{"t":6,"s":1,"p":1,"n":"XCRI - Combined References","c":[{"t":3,"p":1,"n":"Meshes Count"},{"t":3,"p":1,"n":"References Count"},{"t":7,"p":1,"n":"Meshes","c":[{"t":3,"p":1,"n":"Combined Mesh"}]},{"t":7,"p":1,"n":"References","c":[{"t":6,"p":1,"n":"Reference","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Combined Mesh"}]}]}]}]},{"t":1,"p":1,"n":"CLAS - Class","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Bleedout Default"}]}]},{"t":1,"p":1,"n":"CLFM - Color","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"CNAM - Color\/Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"CLMT - Climate","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"WLST - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":2,"p":1,"n":"FNAM - Sun Texture"},{"t":2,"p":1,"n":"GNAM - Sun Glare Texture"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Timing","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":3,"p":1,"n":"Volatility"},{"t":3,"p":1,"n":"Moons \/ Phase Length"}]}]},{"t":1,"p":1,"n":"CMPO - Component","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"CUSD - Sound - Crafting"},{"t":3,"p":1,"n":"DATA - Auto Calc Value"},{"t":3,"p":1,"n":"MNAM - Scrap Item"},{"t":3,"p":1,"n":"GNAM - Mod Scrap Scalar"}]},{"t":1,"p":1,"n":"COBJ - Constructible Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":7,"p":1,"n":"FVPA - Components","c":[{"t":6,"p":1,"n":"Component","c":[{"t":3,"p":1,"n":"Component"},{"t":3,"p":1,"n":"Count"}]}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"CNAM - Created Object"},{"t":3,"p":1,"n":"BNAM - Workbench Keyword"},{"t":11,"n":"NAM1 - Unused"},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":3,"p":1,"n":"ANAM - Menu Art Object"},{"t":7,"p":1,"n":"FNAM - Category","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"INTV - Data","c":[{"t":3,"p":1,"n":"Created Object Count"},{"t":3,"p":1,"n":"Priority"}]}]},{"t":1,"p":1,"n":"COLL - Collision Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"BNAM - Index"},{"t":6,"s":1,"p":1,"n":"FNAM - Debug Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"GNAM - Flags","c":[{"t":4,"p":1,"n":"Trigger Volume"},{"t":4,"p":1,"n":"Sensor"},{"t":4,"p":1,"n":"Navmesh Obstacle"}]},{"t":2,"p":1,"n":"MNAM - Name"},{"t":3,"n":"INTV - Interactables Count"},{"t":7,"p":1,"n":"CNAM - Collides With","c":[{"t":3,"p":1,"n":"Forms"}]}]},{"t":1,"p":1,"n":"CONT - Container","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Allow Sounds When Animation"},{"t":4,"p":1,"n":"Respawns"},{"t":4,"p":1,"n":"Show Owner"}]},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"QNAM - Sound - Close"},{"t":3,"p":1,"n":"TNAM - Sound - Take All"},{"t":3,"p":1,"n":"ONAM - Filter List"}]},{"t":1,"p":1,"n":"CPTH - Camera Path","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"ANAM - Related Camera Paths","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Previous Sibling"}]},{"t":3,"p":1,"n":"DATA - Camera Zoom \/ Flags"},{"t":8,"s":1,"p":1,"n":"Camera Shots","d":1,"c":[{"t":3,"p":1,"n":"SNAM - Camera Shot"}]}]},{"t":1,"p":1,"n":"CSTY - Combat Style","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CSGD - General","c":[{"t":5,"p":1,"n":"Offensive Mult"},{"t":5,"p":1,"n":"Defensive Mult"},{"t":5,"p":1,"n":"Group Offensive Mult"},{"t":5,"p":1,"n":"Equipment Score Mult - Melee"},{"t":5,"p":1,"n":"Equipment Score Mult - Magic"},{"t":5,"p":1,"n":"Equipment Score Mult - Ranged"},{"t":5,"p":1,"n":"Equipment Score Mult - Shout"},{"t":5,"p":1,"n":"Equipment Score Mult - Unarmed"},{"t":5,"p":1,"n":"Equipment Score Mult - Staff"},{"t":5,"p":1,"n":"Avoid Threat Chance"},{"t":5,"p":1,"n":"Dodge Threat Chance"},{"t":5,"p":1,"n":"Evade Threat Chance"}]},{"t":11,"n":"CSMD - Unknown"},{"t":6,"s":1,"p":1,"n":"CSME - Melee","c":[{"t":5,"p":1,"n":"Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Blocking Mult"},{"t":5,"p":1,"n":"Bash Mult"},{"t":5,"p":1,"n":"Bash Recoil Mult"},{"t":5,"p":1,"n":"Bash Attack Mult"},{"t":5,"p":1,"n":"Bash Power Attack Mult"},{"t":5,"p":1,"n":"Special Attack Mult"},{"t":5,"p":1,"n":"Block When Staggered Mult"},{"t":5,"p":1,"n":"Attack When Staggered Mult"}]},{"t":5,"p":1,"n":"CSRA - Ranged Accuracy Mult"},{"t":6,"s":1,"p":1,"n":"CSCR - Close Range","c":[{"t":5,"p":1,"n":"Dueling - Circle Mult"},{"t":5,"p":1,"n":"Dueling - Fallback Mult"},{"t":5,"p":1,"n":"Flanking - Flank Distance"},{"t":5,"p":1,"n":"Flanking - Stalk Time"},{"t":5,"p":1,"n":"Charging - Charge Distance"},{"t":5,"p":1,"n":"Charging - Throw Probability"},{"t":5,"p":1,"n":"Charging - Sprint Fast Probability"},{"t":5,"p":1,"n":"Charging - Sideswipe Probability"},{"t":5,"p":1,"n":"Charging - Disengane Probability"},{"t":3,"p":1,"n":"Charging - Throw Max Targets"},{"t":5,"p":1,"n":"Flanking - Flank Variance"}]},{"t":6,"s":1,"p":1,"n":"CSLR - Long Range","c":[{"t":5,"p":1,"n":"Strafe Mult"},{"t":5,"p":1,"n":"Adjust Range Mult"},{"t":5,"p":1,"n":"Crouch Mult"},{"t":5,"p":1,"n":"Wait Mult"},{"t":5,"p":1,"n":"Range Mult"}]},{"t":5,"p":1,"n":"CSCV - Cover Search Distance Mult"},{"t":6,"s":1,"p":1,"n":"CSFL - Flight","c":[{"t":5,"p":1,"n":"Hover Chance"},{"t":5,"p":1,"n":"Dive Bomb Chance"},{"t":5,"p":1,"n":"Ground Attack Chance"},{"t":5,"p":1,"n":"Hover Time"},{"t":5,"p":1,"n":"Ground Attack Time"},{"t":5,"p":1,"n":"Perch Attack Chance"},{"t":5,"p":1,"n":"Perch Attack Time"},{"t":5,"p":1,"n":"Flying Attack Chance"}]},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Dueling"},{"t":4,"p":1,"n":"Flanking"},{"t":4,"p":1,"n":"Allow Dual Wielding"}]}]},{"t":1,"p":1,"n":"DEBR - Debris","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model FileName"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Has Collision Data"}]}]},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"DFOB - Default Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Object"}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"p":1,"n":"PNAM - Priority"},{"t":3,"p":1,"n":"BNAM - Branch"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Topic Flags","c":[{"t":4,"p":1,"n":"Do All Before Repeating"}]},{"t":3,"p":1,"n":"Category"},{"t":3,"p":1,"n":"Subtype"}]},{"t":2,"p":1,"n":"SNAM - Subtype Name"},{"t":3,"p":1,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DLBR - Dialog Branch","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"n":"TNAM - Unknown"},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Top-Level"},{"t":4,"p":1,"n":"Blocking"},{"t":4,"p":1,"n":"Exclusive"}]},{"t":3,"p":1,"n":"SNAM - Starting Topic"}]},{"t":1,"p":1,"n":"DLVW - Dialog View","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Branches","d":1,"c":[{"t":3,"p":1,"n":"BNAM - Branch"}]},{"t":8,"n":"Unknown TNAM","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"TNAM - Unknown"}]}]},{"t":11,"n":"ENAM - Unknown"},{"t":11,"n":"DNAM - Unknown"}]},{"t":1,"p":1,"n":"DMGT - Damage Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"Damage Types","c":[{"t":3,"p":1,"n":"Actor Value Index"}]}]},{"t":1,"n":"DOBJ - Default Object Manager","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"DNAM - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Use"},{"t":3,"n":"Object ID"}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"ANAM - Sound - Close"},{"t":3,"p":1,"n":"BNAM - Sound - Loop"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Automatic"},{"t":4,"p":1,"n":"Hidden"},{"t":4,"p":1,"n":"Minimal Use"},{"t":4,"p":1,"n":"Sliding"},{"t":4,"p":1,"n":"Do Not Open in Combat Search"}]},{"t":2,"p":1,"n":"ONAM - Alternate Text - Open"},{"t":2,"p":1,"n":"CNAM - Alternate Text - Close"}]},{"t":1,"p":1,"n":"DUAL - Dual Cast Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"ECZN - Encounter Zone","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Min Level"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Never Resets"},{"t":4,"p":1,"n":"Match PC Below Minimum Level"},{"t":4,"p":1,"n":"Disable Combat Boundary"}]},{"t":3,"p":1,"n":"Max Level"}]}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture"},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture"},{"t":11,"n":"DATA - Unknown"},{"t":6,"s":1,"p":1,"n":"Data","c":[{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Holes Animation - Start Time"},{"t":5,"p":1,"n":"Holes Animation - End Time"},{"t":5,"p":1,"n":"Holes Animation - Start Value"},{"t":5,"p":1,"n":"Holes Animation - End Value"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"}]},{"t":6,"s":1,"p":1,"n":"Data (old format)","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"ENCH - Object Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Enchantment Cost"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Auto-Calc"},{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Extend Duration On Recast"}]},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Enchantment Amount"},{"t":3,"p":1,"n":"Target Type"},{"t":3,"p":1,"n":"Enchant Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Base Enchantment"},{"t":3,"p":1,"n":"Worn Restrictions"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"EQUP - Equip Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"PNAM - Slot Parents","c":[{"t":3,"p":1,"n":"Parent"}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"ANAM - Condition Actor Value"}]},{"t":1,"p":1,"n":"EXPL - Explosion","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Sound 1"},{"t":3,"p":1,"n":"Sound 2"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Placed Object"},{"t":3,"p":1,"n":"Spawn Projectile"},{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Damage"},{"t":5,"p":1,"n":"Inner Radius"},{"t":5,"p":1,"n":"Outer Radius"},{"t":5,"p":1,"n":"IS Radius"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Vertical Offset Mult"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Always Uses World Orientation"},{"t":4,"p":1,"n":"Knock Down - Always"},{"t":4,"p":1,"n":"Knock Down - By Formula"},{"t":4,"p":1,"n":"Ignore LOS Check"},{"t":4,"p":1,"n":"Push Explosion Source Ref Only"},{"t":4,"p":1,"n":"Ignore Image Space Swap"},{"t":4,"p":1,"n":"Chain"},{"t":4,"p":1,"n":"No Controller Vibration"}]},{"t":3,"p":1,"n":"Sound Level"},{"t":5,"p":1,"n":"Placed Object AutoFade Delay"},{"t":3,"p":1,"n":"Stagger"},{"t":6,"p":1,"n":"Spawn","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"},{"t":5,"p":1,"n":"Spread Degrees"},{"t":3,"p":1,"n":"Count"}]}]}]},{"t":1,"p":1,"n":"FACT - Faction","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"Relations","d":1,"c":[{"t":6,"p":1,"n":"XNAM - Relation","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Modifier"},{"t":3,"p":1,"n":"Group Combat Reaction"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Flags","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Hidden From NPC"},{"t":4,"p":1,"n":"Special Combat"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Track Crime"},{"t":4,"p":1,"n":"Ignore Crimes: Murder"},{"t":4,"p":1,"n":"Ignore Crimes: Assault"},{"t":4,"p":1,"n":"Ignore Crimes: Stealing"},{"t":4,"p":1,"n":"Ignore Crimes: Trespass"},{"t":4,"p":1,"n":"Do Not Report Crimes Against Members"},{"t":4,"p":1,"n":"Crime Gold - Use Defaults"},{"t":4,"p":1,"n":"Ignore Crimes: Pickpocket"},{"t":4,"p":1,"n":"Vendor"},{"t":4,"p":1,"n":"Can Be Owner"},{"t":4,"p":1,"n":"Ignore Crimes: Werewolf"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]}]},{"t":3,"p":1,"n":"JAIL - Exterior Jail Marker"},{"t":3,"p":1,"n":"WAIT - Follower Wait Marker"},{"t":3,"p":1,"n":"STOL - Stolen Goods Container"},{"t":3,"p":1,"n":"PLCN - Player Inventory Container"},{"t":3,"p":1,"n":"CRGR - Shared Crime Faction List"},{"t":3,"p":1,"n":"JOUT - Jail Outfit"},{"t":6,"s":1,"p":1,"n":"CRVA - Crime Values","c":[{"t":3,"p":1,"n":"Arrest"},{"t":3,"p":1,"n":"Attack On Sight"},{"t":3,"p":1,"n":"Murder"},{"t":3,"p":1,"n":"Assault"},{"t":3,"p":1,"n":"Trespass"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"p":1,"n":"Steal Multiplier"},{"t":3,"p":1,"n":"Escape"},{"t":3,"p":1,"n":"Werewolf (unused)"}]},{"t":10,"p":1,"n":"Ranks","d":1,"c":[{"t":6,"p":1,"n":"Rank","c":[{"t":3,"p":1,"n":"RNAM - Rank#"},{"t":2,"p":1,"n":"MNAM - Male Title"},{"t":2,"p":1,"n":"FNAM - Female Title"},{"t":2,"p":1,"n":"INAM - Insignia (unused)"}]}]},{"t":3,"p":1,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"p":1,"n":"VENC - Merchant Container"},{"t":6,"s":1,"p":1,"n":"VENV - Vendor Values","c":[{"t":3,"p":1,"n":"Start Hour"},{"t":3,"p":1,"n":"End Hour"},{"t":3,"p":1,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"p":1,"n":"Buys Stolen Items"},{"t":3,"p":1,"n":"Buy\/Sell Everything Not In List?"},{"t":3,"p":1,"n":"Buys NonStolen Items"},{"t":3,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"PLVD - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Ref Alias"},{"t":3,"p":1,"n":"Loc Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":3,"p":1,"n":"Packdata Target"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Ref Collection Alias"},{"t":3,"p":1,"n":"Radius"},{"t":3,"p":1,"n":"Collection Index"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer "},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FLST - FormID List","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"FormIDs","d":1,"c":[{"t":3,"p":1,"n":"LNAM - FormID"}]}]},{"t":1,"p":1,"n":"FSTP - Footstep","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Tag"}]},{"t":1,"p":1,"n":"FSTS - Footstep Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"XCNT - Count","c":[{"t":3,"n":"Walking"},{"t":3,"n":"Running"},{"t":3,"n":"Sprinting"},{"t":3,"n":"Sneaking"},{"t":3,"n":"Swimming"}]},{"t":7,"p":1,"n":"DATA - Footstep Sets","c":[{"t":3,"p":1,"n":"Footstep"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"WNAM - Drinking Water Type"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Ignored By Sandbox"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags","c":[{"t":4,"p":1,"n":"Sit 0"},{"t":4,"p":1,"n":"Sit 1"},{"t":4,"p":1,"n":"Sit 2"},{"t":4,"p":1,"n":"Sit 3"},{"t":4,"p":1,"n":"Sit 4"},{"t":4,"p":1,"n":"Sit 5"},{"t":4,"p":1,"n":"Sit 6"},{"t":4,"p":1,"n":"Sit 7"},{"t":4,"p":1,"n":"Sit 8"},{"t":4,"p":1,"n":"Sit 9"},{"t":4,"p":1,"n":"Sit 10"},{"t":4,"p":1,"n":"Sit 11"},{"t":4,"p":1,"n":"Sit 12"},{"t":4,"p":1,"n":"Sit 13"},{"t":4,"p":1,"n":"Sit 14"},{"t":4,"p":1,"n":"Sit 15"},{"t":4,"p":1,"n":"Sit 16"},{"t":4,"p":1,"n":"Sit 17"},{"t":4,"p":1,"n":"Sit 18"},{"t":4,"p":1,"n":"Sit 19"},{"t":4,"p":1,"n":"Sit 20"},{"t":4,"p":1,"n":"Sit 21"},{"t":4,"p":1,"n":"Sit 22"},{"t":4,"p":1,"n":"Sit 23"},{"t":4,"n":"Unknown 25"},{"t":4,"p":1,"n":"Disables Activation"},{"t":4,"p":1,"n":"Is Perch"},{"t":4,"p":1,"n":"Must Exit to Talk"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":6,"s":1,"p":1,"n":"WBDT - Workbench Data","c":[{"t":3,"p":1,"n":"Bench Type"},{"t":3,"p":1,"n":"Uses Skill"}]},{"t":3,"p":1,"n":"NAM1 - Associated Form"},{"t":8,"s":1,"p":1,"n":"Markers","d":1,"c":[{"t":6,"p":1,"n":"Marker","c":[{"t":3,"p":1,"n":"ENAM - Marker Index"},{"t":6,"p":1,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Disabled Points","c":[{"t":4,"p":1,"n":"Front"},{"t":4,"p":1,"n":"Behind"},{"t":4,"p":1,"n":"Right"},{"t":4,"p":1,"n":"Left"},{"t":4,"p":1,"n":"Up"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Marker Entry Points","d":1,"c":[{"t":6,"p":1,"n":"FNPR - Marker","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Entry Points","c":[{"t":4,"p":1,"n":"Front"},{"t":4,"p":1,"n":"Behind"},{"t":4,"p":1,"n":"Right"},{"t":4,"p":1,"n":"Left"},{"t":4,"p":1,"n":"Up"}]}]}]},{"t":2,"p":1,"n":"XMRK - Marker Model"},{"t":7,"p":1,"n":"SNAM - Marker Paramaters","c":[{"t":6,"p":1,"n":"Marker","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"},{"t":5,"p":1,"n":"Rotation Z"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Entry Types"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]}]},{"t":1,"p":1,"n":"GDRY - God Rays","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":6,"p":1,"n":"Back Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":6,"p":1,"n":"Fwd Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Intensity"},{"t":5,"p":1,"n":"Air Color - Scale"},{"t":5,"p":1,"n":"Back Color - Scale"},{"t":5,"p":1,"n":"Fwd Color - Scale"},{"t":5,"p":1,"n":"Back Phase"},{"t":6,"p":1,"n":"Air Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Fwd Phase"}]}]},{"t":1,"p":1,"n":"GLOB - Global","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Type"},{"t":5,"p":1,"n":"FLTV - Value"}]},{"t":1,"p":1,"n":"GMST - Game Setting","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"Name"},{"t":3,"p":1,"n":"Int"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"}]},{"t":1,"p":1,"n":"GRAS - Grass","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Units From Water"},{"t":3,"p":1,"n":"Units From Water Type"},{"t":5,"p":1,"n":"Position Range"},{"t":5,"p":1,"n":"Height Range"},{"t":5,"p":1,"n":"Color Range"},{"t":5,"p":1,"n":"Wave Period"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Vertex Lighting"},{"t":4,"p":1,"n":"Uniform Scaling"},{"t":4,"p":1,"n":"Fit to Slope"}]}]}]},{"t":1,"p":1,"n":"HAZD - Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Limit"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Image Space Radius"},{"t":5,"p":1,"n":"Target Interval"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Effect"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Sound"},{"t":6,"p":1,"n":"Taper Effectiveness","c":[{"t":5,"p":1,"n":"Full Effect Radius"},{"t":5,"p":1,"n":"Taper Weight"},{"t":5,"p":1,"n":"Taper Curse"}]}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Playable"},{"t":4,"p":1,"n":"Male"},{"t":4,"p":1,"n":"Female"},{"t":4,"p":1,"n":"Is Extra Part"},{"t":4,"p":1,"n":"Use Solid Tint"}]},{"t":3,"p":1,"n":"PNAM - Type"},{"t":8,"s":1,"p":1,"n":"Extra Parts","d":1,"c":[{"t":3,"p":1,"n":"HNAM - Part"}]},{"t":8,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"NAM0 - Part Type"},{"t":2,"p":1,"n":"NAM1 - FileName"}]}]},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"CNAM - Color"},{"t":3,"p":1,"n":"RNAM - Valid Races"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"IDLE - Idle Animation","c":[{"t":2,"n":"EDID - Editor ID"},{"t":10,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":3,"n":"Variable Name"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"DNAM - Behavior Graph"},{"t":2,"n":"ENAM - Animation Event"},{"t":7,"n":"ANAM - Related Idle Animations","c":[{"t":3,"n":"Parent"},{"t":3,"n":"Previous Sibling"}]},{"t":6,"n":"DATA - DATA","c":[{"t":6,"n":"Looping seconds (both 255 forever)","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":3,"n":"Flags"},{"t":3,"n":"Animation Group Section"},{"t":3,"n":"Replay Delay"}]},{"t":2,"n":"GNAM - Animation File"}]},{"t":1,"p":1,"n":"IDLM - Idle Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"IDLF - Flags","c":[{"t":4,"p":1,"n":"Run in Sequence"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Do Once"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"Ignored by Sandbox"}]},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":3,"n":"QNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"IMAD - Image Space Adapter","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DNAM - Data Count","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Animatable"}]},{"t":5,"n":"Duration"},{"t":6,"n":"HDR","c":[{"t":3,"n":"Eye Adapt Speed Mult"},{"t":3,"n":"Eye Adapt Speed Add"},{"t":3,"n":"Bloom Blur Radius Mult"},{"t":3,"n":"Bloom Blur Radius Add"},{"t":3,"n":"Bloom Threshold Mult"},{"t":3,"n":"Bloom Threshold Add"},{"t":3,"n":"Bloom Scale Mult"},{"t":3,"n":"Bloom Scale Add"},{"t":3,"n":"Target Lum Min Mult"},{"t":3,"n":"Target Lum Min Add"},{"t":3,"n":"Target Lum Max Mult"},{"t":3,"n":"Target Lum Max Add"},{"t":3,"n":"Sunlight Scale Mult"},{"t":3,"n":"Sunlight Scale Add"},{"t":3,"n":"Sky Scale Mult"},{"t":3,"n":"Sky Scale Add"}]},{"t":3,"n":"Unknown08 Mult"},{"t":3,"n":"Unknown48 Add"},{"t":3,"n":"Unknown09 Mult"},{"t":3,"n":"Unknown49 Add"},{"t":3,"n":"Unknown0A Mult"},{"t":3,"n":"Unknown4A Add"},{"t":3,"n":"Unknown0B Mult"},{"t":3,"n":"Unknown4B Add"},{"t":3,"n":"Unknown0C Mult"},{"t":3,"n":"Unknown4C Add"},{"t":3,"n":"Unknown0D Mult"},{"t":3,"n":"Unknown4D Add"},{"t":3,"n":"Unknown0E Mult"},{"t":3,"n":"Unknown4E Add"},{"t":3,"n":"Unknown0F Mult"},{"t":3,"n":"Unknown4F Add"},{"t":3,"n":"Unknown10 Mult"},{"t":3,"n":"Unknown50 Add"},{"t":6,"n":"Cinematic","c":[{"t":3,"n":"Saturation Mult"},{"t":3,"n":"Saturation Add"},{"t":3,"n":"Brightness Mult"},{"t":3,"n":"Brightness Add"},{"t":3,"n":"Contrast Mult"},{"t":3,"n":"Contrast Add"}]},{"t":3,"n":"Unknown14 Mult"},{"t":3,"n":"Unknown54 Add"},{"t":3,"n":"Tint Color"},{"t":3,"n":"Blur Radius"},{"t":3,"n":"Double Vision Strength"},{"t":3,"n":"Radial Blur Strength"},{"t":3,"n":"Radial Blur Ramp Up"},{"t":3,"n":"Radial Blur Start"},{"t":3,"n":"Radial Blur Flags","c":[{"t":4,"n":"Use Target"}]},{"t":5,"n":"Radial Blur Center X"},{"t":5,"n":"Radial Blur Center Y"},{"t":3,"n":"DoF Strength"},{"t":3,"n":"DoF Distance"},{"t":3,"n":"DoF Range"},{"t":3,"n":"DoF Flags","c":[{"t":4,"n":"Use Target"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Mode - Front"},{"t":4,"n":"Mode - Back"},{"t":4,"n":"No Sky"},{"t":4,"n":"Blur Radius Bit 2"},{"t":4,"n":"Blur Radius Bit 1"},{"t":4,"n":"Blur Radius Bit 0"}]},{"t":3,"n":"Radial Blur Ramp Down"},{"t":3,"n":"Radial Blur Down Start"},{"t":3,"n":"Fade Color"},{"t":3,"n":"Motion Blur Strength"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"BNAM - Blur Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"VNAM - Double Vision Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"TNAM - Tint Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"NAM3 - Fade Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":6,"s":1,"p":1,"n":"Radial Blur","c":[{"t":7,"p":1,"n":"RNAM - Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SNAM - RampUp","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"UNAM - Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM1 - RampDown","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM2 - DownStart","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":6,"s":1,"p":1,"n":"Depth of Field","c":[{"t":7,"p":1,"n":"WNAM - Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"XNAM - Distance","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"YNAM - Range","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM5 - Vignette Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM6 - Vignette Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":7,"p":1,"n":"NAM4 - Motion Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"HDR","c":[{"t":7,"p":1,"n":"aIAD - Eye Adapt Speed Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"@IAD - Eye Adapt Speed Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"bIAD - Bloom Blur Radius Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"AIAD - Bloom Blur Radius Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"cIAD - Bloom Threshold Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"BIAD - Bloom Threshold Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"dIAD - Bloom Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"CIAD - Bloom Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"eIAD - Target Lum Min Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"DIAD - Target Lum Min Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"fIAD - Target Lum Max Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"EIAD - Target Lum Max Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"gIAD - Sunlight Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"FIAD - Sunlight Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"hIAD - Sky Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"GIAD - Sky Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"iIAD - Unknown"},{"t":11,"n":"HIAD - Unknown"},{"t":11,"n":"jIAD - Unknown"},{"t":11,"n":"IIAD - Unknown"},{"t":11,"n":"kIAD - Unknown"},{"t":11,"n":"JIAD - Unknown"},{"t":11,"n":"lIAD - Unknown"},{"t":11,"n":"KIAD - Unknown"},{"t":11,"n":"mIAD - Unknown"},{"t":11,"n":"LIAD - Unknown"},{"t":11,"n":"nIAD - Unknown"},{"t":11,"n":"MIAD - Unknown"},{"t":11,"n":"oIAD - Unknown"},{"t":11,"n":"NIAD - Unknown"},{"t":11,"n":"pIAD - Unknown"},{"t":11,"n":"OIAD - Unknown"},{"t":11,"n":"qIAD - Unknown"},{"t":11,"n":"PIAD - Unknown"},{"t":6,"s":1,"p":1,"n":"Cinematic","c":[{"t":7,"p":1,"n":"rIAD - Saturation Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"QIAD - Saturation Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"sIAD - Brightness Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"RIAD - Brightness Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"tIAD - Contrast Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SIAD - Contrast Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"uIAD - Unknown"},{"t":11,"n":"TIAD - Unknown"}]},{"t":1,"p":1,"n":"IMGS - Image Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"ENAM - Unused"},{"t":6,"s":1,"p":1,"n":"HNAM - HDR","c":[{"t":5,"p":1,"n":"Eye Adapt Speed"},{"t":5,"p":1,"n":"Tonemap E"},{"t":5,"p":1,"n":"Bloom Threshold"},{"t":5,"p":1,"n":"Bloom Scale"},{"t":5,"p":1,"n":"Auto Exposure Max"},{"t":5,"p":1,"n":"Auto Exposure Min"},{"t":5,"p":1,"n":"Sunlight Scale"},{"t":5,"p":1,"n":"Sky Scale"},{"t":5,"p":1,"n":"Middle Gray"}]},{"t":6,"s":1,"p":1,"n":"CNAM - Cinematic","c":[{"t":5,"p":1,"n":"Saturation"},{"t":5,"p":1,"n":"Brightness"},{"t":5,"p":1,"n":"Contrast"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Tint","c":[{"t":5,"p":1,"n":"Amount"},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Depth of Field","c":[{"t":5,"p":1,"n":"Strength"},{"t":5,"p":1,"n":"Distance"},{"t":5,"p":1,"n":"Range"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Sky \/ Blur Radius"},{"t":5,"p":1,"n":"Vignette Radius"},{"t":5,"p":1,"n":"Vignette Strength"}]},{"t":2,"p":1,"n":"TX00 - LUT"}]},{"t":1,"p":1,"n":"INFO - Dialog response","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"OnBegin"},{"t":4,"p":1,"n":"OnEnd"}]},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"ENAM - Response flags","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Goodbye"},{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Say once"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"p":1,"n":"Random end"},{"t":4,"p":1,"n":"Invisible continue"},{"t":4,"p":1,"n":"Walk Away"},{"t":4,"p":1,"n":"Walk Away Invisible in Menu"},{"t":4,"p":1,"n":"Force subtitle"},{"t":4,"p":1,"n":"Can move while greeting"},{"t":4,"p":1,"n":"No LIP File"},{"t":4,"p":1,"n":"Requires post-processing"},{"t":4,"p":1,"n":"Audio Output Override"},{"t":4,"p":1,"n":"Spends favor points"},{"t":4,"n":"Unknown 16"}]},{"t":3,"p":1,"n":"Reset Hours"}]},{"t":3,"p":1,"n":"TPIC - Topic"},{"t":3,"p":1,"n":"PNAM - Previous INFO"},{"t":3,"p":1,"n":"DNAM - Shared INFO"},{"t":3,"n":"GNAM - Unknown"},{"t":2,"p":1,"n":"IOVR - Override Filename"},{"t":8,"s":1,"p":1,"n":"Responses","d":1,"c":[{"t":6,"p":1,"n":"Response","c":[{"t":6,"p":1,"n":"TRDA - Response Data","c":[{"t":3,"p":1,"n":"Emotion"},{"t":3,"p":1,"n":"Response number"},{"t":11,"n":"Unused"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Percentage"},{"t":3,"p":1,"n":"Camera Target Alias"},{"t":3,"p":1,"n":"Camera Location Alias"}]},{"t":2,"p":1,"n":"NAM1 - Response Text"},{"t":2,"p":1,"n":"NAM2 - Script Notes"},{"t":2,"p":1,"n":"NAM3 - Edits"},{"t":2,"p":1,"n":"NAM4 - Alternate LIP Text"},{"t":3,"p":1,"n":"SNAM - Idle Animations: Speaker"},{"t":3,"p":1,"n":"LNAM - Idle Animations: Listener"},{"t":3,"p":1,"n":"TNAM - Interrupt Percentage"},{"t":11,"p":1,"n":"NAM9 - Text Hash"},{"t":3,"p":1,"n":"SRAF - Camera Path"},{"p":1,"n":"WZMD - Stop on Scene End"}]}]},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"RNAM - Prompt"},{"t":3,"p":1,"n":"ANAM - Speaker"},{"t":3,"p":1,"n":"TSCE - Start Scene"},{"t":3,"p":1,"n":"ALFA - Forced Alias"},{"t":11,"n":"INTV - Unknown"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"},{"t":3,"p":1,"n":"GREE - Greet Distance"},{"t":6,"s":1,"p":1,"n":"TIQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Begin"},{"t":3,"p":1,"n":"On End"}]},{"t":2,"p":1,"n":"NAM0 - Start Scene Phase"},{"t":3,"p":1,"n":"INCC - Challenge"},{"t":3,"p":1,"n":"MODQ - Reset Global"},{"t":3,"p":1,"n":"INAM - Subtitle Priority"}]},{"t":1,"p":1,"n":"INGR - Ingredient","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Ingredient Value"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No auto-calculation"},{"t":4,"p":1,"n":"Food item"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"References Persist"}]}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"INNR - Instance Naming Rules","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"UNAM - Target"},{"t":8,"s":1,"p":1,"n":"Naming Rules","d":1,"c":[{"t":6,"p":1,"n":"Ruleset","c":[{"t":3,"p":1,"n":"VNAM - Count"},{"t":8,"p":1,"n":"Names","c":[{"t":6,"p":1,"n":"Name","c":[{"t":2,"p":1,"n":"WNAM - Text"},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"p":1,"n":"XNAM - Property","c":[{"t":5,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Op"}]},{"t":3,"p":1,"n":"YNAM - Index"}]}]}]}]}]},{"t":1,"p":1,"n":"IPCT - Impact","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":5,"p":1,"n":"Effect - Duration"},{"t":3,"p":1,"n":"Effect - Orientation"},{"t":5,"p":1,"n":"Angle Threshold"},{"t":5,"p":1,"n":"Placement Radius"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Decal Data"}]},{"t":3,"p":1,"n":"Impact Result"},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Parallax"},{"t":4,"p":1,"n":"Alpha - Blending"},{"t":4,"p":1,"n":"Alpha - Testing"},{"t":4,"p":1,"n":"No Subtextures"}]},{"t":3,"p":1,"n":"Alpha Threshold?"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Texture Set"},{"t":3,"p":1,"n":"ENAM - Secondary Texture Set"},{"t":3,"p":1,"n":"SNAM - Sound 1"},{"t":3,"p":1,"n":"NAM1 - Sound 2"},{"t":3,"p":1,"n":"NAM3 - Footstep Explosion"},{"t":3,"p":1,"n":"NAM2 - Hazard"},{"t":5,"p":1,"n":"FNAM - Footstep Particle Max Dist"}]},{"t":1,"p":1,"n":"IPDS - Impact Data Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Data","d":1,"c":[{"t":6,"p":1,"n":"PNAM - PNAM","c":[{"t":3,"p":1,"n":"Material"},{"t":3,"p":1,"n":"Impact"}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"KSSM - Sound Keyword Mapping","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Primary Descriptor"},{"t":3,"p":1,"n":"ENAM - Exterior Tail"},{"t":3,"p":1,"n":"VNAM - VATS Descriptor"},{"t":5,"p":1,"n":"TNAM - VATS Threshold"},{"t":8,"s":1,"p":1,"n":"Keywords","d":1,"c":[{"t":3,"p":1,"n":"KNAM - Keyword"}]},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"RNAM - Sound","c":[{"t":3,"p":1,"n":"Reverb Class"},{"t":3,"p":1,"n":"Descriptor"}]}]}]},{"t":1,"p":1,"n":"KYWD - Keyword","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"DNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Type"},{"t":3,"p":1,"n":"DATA - Attraction Rule"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"NNAM - Display Name"}]},{"t":1,"p":1,"n":"LAND - Landscape","d":1,"c":[{"t":11,"n":"DATA - Unknown"},{"t":11,"n":"VNML - Vertex Normals"},{"t":11,"n":"VHGT - Vertext Height Map"},{"t":11,"n":"VCLR - Vertex Colours"},{"t":8,"s":1,"p":1,"n":"Layers","d":1,"c":[{"t":6,"p":1,"n":"Base Layer","c":[{"t":6,"p":1,"n":"BTXT - Base Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]}]},{"t":6,"p":1,"n":"Alpha Layer","c":[{"t":6,"p":1,"n":"ATXT - Alpha Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]},{"t":11,"p":1,"n":"VTXT - Alpha Layer Data"}]}]},{"t":7,"p":1,"n":"VTEX - Textures","c":[{"t":3,"p":1,"n":"Texture"}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"MPCD - Unknown"}]}]},{"t":1,"p":1,"n":"LAYR - Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent"}]},{"t":1,"p":1,"n":"LCRT - Location Reference Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"TNAM - Unknown"}]},{"t":1,"n":"LCTN - Location","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":5,"n":"ANAM - Unknown"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LENS - Lens Flare","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Color Influence"},{"t":5,"p":1,"n":"DNAM - Fade Distance Radius Scale"},{"t":3,"n":"LFSP - Count"},{"t":10,"p":1,"n":"Lens Flare Sprites","d":1,"c":[{"t":6,"p":1,"n":"Flare","c":[{"t":2,"p":1,"n":"DNAM - Lens Flare Sprite ID"},{"t":2,"p":1,"n":"FNAM - Texture"},{"t":6,"p":1,"n":"LFSD - Lens Flare Data","c":[{"t":6,"p":1,"n":"Tint","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"},{"t":5,"p":1,"n":"Position"},{"t":5,"p":1,"n":"Angular Fade"},{"t":5,"p":1,"n":"Opacity"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Rotates"},{"t":4,"p":1,"n":"Shrinks When Occluded"}]}]}]}]}]},{"t":1,"p":1,"n":"LGTM - Lighting Template","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":5,"p":1,"n":"Near Height Mid"},{"t":5,"p":1,"n":"Near Height Range"},{"t":6,"p":1,"n":"Fog Color High Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color High Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"High Density Scale"},{"t":5,"p":1,"n":"Fog Near Scale"},{"t":5,"p":1,"n":"Fog Far Scale"},{"t":5,"p":1,"n":"Fog High Near Scale"},{"t":5,"p":1,"n":"Fog High Far Scale"},{"t":5,"p":1,"n":"Far Height Mid"},{"t":5,"p":1,"n":"Far Height Range"}]},{"t":6,"s":1,"p":1,"n":"DALC - Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"WGDR - God Rays"}]},{"t":1,"p":1,"n":"LIGH - Light","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Time"},{"t":3,"p":1,"n":"Radius"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Dynamic"},{"t":4,"p":1,"n":"Can be Carried"},{"t":4,"p":1,"n":"Negative"},{"t":4,"p":1,"n":"Flicker"},{"t":4,"n":"Unknown"},{"t":4,"p":1,"n":"Off By Default"},{"t":4,"p":1,"n":"Flicker Slow"},{"t":4,"p":1,"n":"Pulse"},{"t":4,"p":1,"n":"Pulse Slow"},{"t":4,"p":1,"n":"Spot Light"},{"t":4,"p":1,"n":"Shadow Spotlight"},{"t":4,"p":1,"n":"Shadow Hemisphere"},{"t":4,"p":1,"n":"Shadow Omnidirectional"},{"t":4,"p":1,"n":"Portal-strict"}]},{"t":5,"p":1,"n":"Falloff Exponent"},{"t":5,"p":1,"n":"FOV"},{"t":5,"p":1,"n":"Near Clip"},{"t":6,"p":1,"n":"Flicker Effect","c":[{"t":5,"p":1,"n":"Period"},{"t":5,"p":1,"n":"Intensity Amplitude"},{"t":5,"p":1,"n":"Movement Amplitude"}]},{"t":5,"p":1,"n":"Constant"},{"t":5,"p":1,"n":"Scalar"},{"t":5,"p":1,"n":"Exponent"},{"t":5,"p":1,"n":"God Rays - Near Clip"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"FNAM - Fade value"},{"t":2,"p":1,"n":"NAM0 - Gobo"},{"t":3,"p":1,"n":"LNAM - Lens"},{"t":3,"p":1,"n":"WGDR - God Rays"},{"t":3,"p":1,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"NNAM - Loading Screen NIF"},{"t":3,"p":1,"n":"TNAM - Transform"},{"t":6,"s":1,"p":1,"n":"ONAM - Rotation","c":[{"t":3,"p":1,"n":"Min"},{"t":3,"p":1,"n":"Max"}]},{"t":6,"s":1,"p":1,"n":"ZNAM - Zoom","c":[{"t":5,"p":1,"n":"Min"},{"t":5,"p":1,"n":"Max"}]},{"t":2,"p":1,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"LTEX - Landscape Texture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"MNAM - Material Type"},{"t":6,"s":1,"p":1,"n":"HNAM - Havok Data","c":[{"t":3,"p":1,"n":"Friction"},{"t":3,"p":1,"n":"Restitution"}]},{"t":3,"p":1,"n":"SNAM - Texture Specular Exponent"},{"t":8,"s":1,"p":1,"n":"Grasses","d":1,"c":[{"t":3,"p":1,"n":"GNAM - Grass"}]}]},{"t":1,"p":1,"n":"LVLI - Leveled Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLM - Max Count"},{"t":3,"p":1,"n":"LVLF - Flags","c":[{"t":4,"p":1,"n":"Calculate from all levels <= player's level"},{"t":4,"p":1,"n":"Calculate for each item in count"},{"t":4,"p":1,"n":"Use All"},{"t":4,"p":1,"n":"Special Loot"}]},{"t":3,"p":1,"n":"LVLG - Use Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"},{"t":3,"p":1,"n":"Chance None"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":7,"p":1,"n":"LLKC - Filter Keyword Chances","c":[{"t":6,"p":1,"n":"Filter","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Chance"}]}]},{"t":3,"p":1,"n":"LVSG - Epic Loot Chance"},{"t":2,"p":1,"n":"ONAM - Override Name"}]},{"t":1,"p":1,"n":"LVLN - Leveled NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLM - Max Count"},{"t":3,"p":1,"n":"LVLF - Flags","c":[{"t":4,"p":1,"n":"Calculate from all levels <= player's level"},{"t":4,"p":1,"n":"Calculate for each item in count"}]},{"t":3,"p":1,"n":"LVLG - Use Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"},{"t":3,"p":1,"n":"Chance None"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":7,"p":1,"n":"LLKC - Filter Keyword Chances","c":[{"t":6,"p":1,"n":"Filter","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Chance"}]}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"LVSP - Leveled Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"MATO - Material Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":8,"s":1,"p":1,"n":"Property Data","d":1,"c":[{"t":11,"p":1,"n":"DNAM - Data"}]},{"t":6,"s":1,"p":1,"n":"DATA - Directional Material Data","c":[{"t":5,"p":1,"n":"Falloff Scale"},{"t":5,"p":1,"n":"Falloff Bias"},{"t":5,"p":1,"n":"Noise UV Scale"},{"t":5,"p":1,"n":"Material UV Scale"},{"t":6,"p":1,"n":"Projection Vector","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Normal Dampener"},{"t":6,"p":1,"n":"Single Pass Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Single Pass"}]},{"t":11,"n":"Unused"}]}]},{"t":1,"p":1,"n":"MATT - Material Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Material Parent"},{"t":2,"p":1,"n":"MNAM - Material Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Havok Display Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"BNAM - Buoyancy"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Stair Material"},{"t":4,"p":1,"n":"Arrows Stick"}]},{"t":3,"p":1,"n":"HNAM - Havok Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Breakable FX"},{"t":11,"n":"MODT - Texture Files Hashes"}]},{"t":1,"p":1,"n":"MESG - Message","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"INAM - Icon (unused)"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Message Box"},{"t":4,"p":1,"n":"Auto Display"}]},{"t":3,"p":1,"n":"TNAM - Display Time"},{"t":2,"p":1,"n":"SNAM - SWF"},{"t":2,"p":1,"n":"NNAM - Short Title"},{"t":8,"s":1,"p":1,"n":"Menu Buttons","d":1,"c":[{"t":6,"p":1,"n":"Menu Button","c":[{"t":2,"p":1,"n":"ITXT - Button Text"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Hostile"},{"t":4,"p":1,"n":"Recover"},{"t":4,"p":1,"n":"Detrimental"},{"t":4,"p":1,"n":"Snap to Navmesh"},{"t":4,"p":1,"n":"No Hit Event"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"Dispel with Keywords"},{"t":4,"p":1,"n":"No Duration"},{"t":4,"p":1,"n":"No Magnitude"},{"t":4,"p":1,"n":"No Area"},{"t":4,"p":1,"n":"FX Persist"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Gory Visuals"},{"t":4,"p":1,"n":"Hide in UI"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"No Recast"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"p":1,"n":"Power Affects Magnitude"},{"t":4,"p":1,"n":"Power Affects Duration"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"p":1,"n":"Painless"},{"t":4,"p":1,"n":"No Hit Effect"},{"t":4,"p":1,"n":"No Death Dispel"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":5,"p":1,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Assoc. Item"},{"t":11,"p":1,"n":"Magic Skill (unused)"},{"t":3,"p":1,"n":"Resist Value"},{"t":3,"p":1,"n":"Counter Effect count"},{"t":3,"p":1,"n":"Casting Light"},{"t":5,"p":1,"n":"Taper Weight"},{"t":3,"p":1,"n":"Hit Shader"},{"t":3,"p":1,"n":"Enchant Shader"},{"t":3,"p":1,"n":"Minimum Skill Level"},{"t":6,"p":1,"n":"Spellmaking","c":[{"t":3,"p":1,"n":"Area"},{"t":5,"p":1,"n":"Casting Time"}]},{"t":5,"p":1,"n":"Taper Curve"},{"t":5,"p":1,"n":"Taper Duration"},{"t":5,"p":1,"n":"Second AV Weight"},{"t":3,"p":1,"n":"Archetype"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Delivery"},{"t":3,"p":1,"n":"Casting Art"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data"},{"t":5,"p":1,"n":"Skill Usage Multiplier"},{"t":6,"p":1,"n":"Dual Casting","c":[{"t":3,"p":1,"n":"Art"},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"Enchant Art"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Equip Ability"},{"t":3,"p":1,"n":"Image Space Modifier"},{"t":3,"p":1,"n":"Perk to Apply"},{"t":3,"p":1,"n":"Casting Sound Level"},{"t":6,"p":1,"n":"Script Effect AI","c":[{"t":5,"p":1,"n":"Score"},{"t":5,"p":1,"n":"Delay Time"}]}]}]},{"t":8,"s":1,"p":1,"n":"Counter Effects","d":1,"c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"p":1,"n":"SNDD - Sounds","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":2,"p":1,"n":"DNAM - Magic Item Description"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FIMD - Featured Item Message"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":7,"p":1,"n":"CVPA - Components","c":[{"t":6,"p":1,"n":"Component","c":[{"t":3,"p":1,"n":"Component"},{"t":3,"p":1,"n":"Count"}]}]},{"t":7,"p":1,"n":"CDIX - Component Display Indices","c":[{"t":3,"p":1,"n":"Display Index"}]}]},{"t":1,"p":1,"n":"MOVT - Movement Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":6,"s":1,"p":1,"n":"SPED - Movement Data","c":[{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Walk - Left"},{"t":5,"p":1,"n":"Run - Left"},{"t":5,"p":1,"n":"Walk - Right"},{"t":5,"p":1,"n":"Run - Right"},{"t":5,"p":1,"n":"Walk - Forward"},{"t":5,"p":1,"n":"Run - Forward"},{"t":5,"p":1,"n":"Sprint - Forward"},{"t":5,"p":1,"n":"Walk - Back"},{"t":5,"p":1,"n":"Run - Back"},{"t":5,"p":1,"n":"Standing - Pitch"},{"t":5,"p":1,"n":"Walk - Pitch"},{"t":5,"p":1,"n":"Run - Pitch"},{"t":5,"p":1,"n":"Sprint - Pitch"},{"t":5,"p":1,"n":"Standing - Yaw"},{"t":5,"p":1,"n":"Walk - Yaw"},{"t":5,"p":1,"n":"Run - Yaw"},{"t":5,"p":1,"n":"Sprint - Yaw"}]},{"t":6,"s":1,"p":1,"n":"INAM - Anim Change Thresholds (unused)","c":[{"t":5,"p":1,"n":"Directional"},{"t":5,"p":1,"n":"Movement Speed"},{"t":5,"p":1,"n":"Rotation Speed"}]},{"t":5,"p":1,"n":"JNAM - Float Height"},{"t":5,"p":1,"n":"LNAM - Flight - Angle Gain"}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"DATA - On Local Map"},{"t":3,"p":1,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"MSWP - Material Swap","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FNAM - Tree Folder"},{"t":10,"p":1,"n":"Material Substitutions","d":1,"c":[{"t":6,"p":1,"n":"Substitution","c":[{"t":2,"p":1,"n":"BNAM - Original Material"},{"t":2,"p":1,"n":"SNAM - Replacement Material"},{"t":2,"p":1,"n":"FNAM - Tree Folder (obsolete)"},{"t":5,"p":1,"n":"CNAM - Color Remapping Index"}]}]}]},{"t":1,"p":1,"n":"MUSC - Music Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Plays One Selection"},{"t":4,"p":1,"n":"Abrupt Transition"},{"t":4,"p":1,"n":"Cycle Tracks"},{"t":4,"p":1,"n":"Maintain Track Order"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Ducks Current Track"},{"t":4,"p":1,"n":"Doesn't Queue"}]},{"t":6,"s":1,"p":1,"n":"PNAM - Data","c":[{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Ducking (dB)"}]},{"t":5,"p":1,"n":"WNAM - Fade Duration"},{"t":7,"p":1,"n":"TNAM - Music Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"p":1,"n":"MUST - Music Track","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"CNAM - Track Type"},{"t":5,"p":1,"n":"FLTV - Duration"},{"t":5,"p":1,"n":"DNAM - Fade-Out"},{"t":2,"p":1,"n":"ANAM - Track FileName"},{"t":2,"p":1,"n":"BNAM - Finale FileName"},{"t":6,"s":1,"p":1,"n":"LNAM - Loop Data","c":[{"t":5,"p":1,"n":"Loop Begins"},{"t":5,"p":1,"n":"Loop Ends"},{"t":3,"p":1,"n":"Loop Count"}]},{"t":7,"p":1,"n":"FNAM - Cue Points","c":[{"t":5,"p":1,"n":"Point"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"SNAM - Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"n":"NAVI - Navigation Mesh Info Map","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"NVER - Version"},{"t":8,"n":"Navigation Map Infos","c":[{"t":6,"n":"NVMI - Navigation Map Info","c":[{"t":3,"n":"Navigation Mesh"},{"t":11,"n":"Data"},{"t":7,"n":"Merged To","c":[{"t":3,"n":"mesh"}]},{"t":7,"n":"Preferred Merges","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Linked Doors","c":[{"t":6,"n":"Door","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Door Ref"}]}]},{"t":3,"n":"Is Island"},{"t":11,"n":"Unused"},{"t":6,"n":"Island Data","c":[{"t":11,"n":"Unknown"},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]}]},{"t":11,"n":"Unknown"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"}]}]},{"t":6,"n":"NVPP - Preferred Pathing","c":[{"t":7,"n":"NavMeshes","c":[{"t":7,"n":"Set","c":[{"t":3,"n":""}]}]},{"t":7,"n":"NavMesh Tree?","c":[{"t":6,"n":"","c":[{"t":3,"n":"NavMesh"},{"t":3,"n":"Index\/Node"}]}]}]},{"t":11,"n":"NVSI - Unknown"}]},{"t":1,"n":"NAVM - Navigation Mesh","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"n":"Version"},{"t":11,"n":"Magic"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"},{"t":11,"n":"Vertices and Triangles"}]},{"t":11,"n":"ONAM - Unknown"},{"t":11,"n":"NNAM - Unknown"},{"t":11,"n":"MNAM - Unknown"}]},{"t":1,"n":"NOCM - Navigation Mesh Obstacle Manager","d":1,"c":[{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":3,"n":"INDX - Index"},{"t":8,"n":"Unknown","c":[{"t":11,"n":"DATA - Unknown"}]},{"t":11,"n":"INTV - Unknown"},{"t":2,"n":"NAM1 - Model"}]}]}]},{"t":1,"p":1,"n":"NOTE - Note","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"DNAM - Type"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Terminal"},{"t":2,"p":1,"n":"PNAM - Program File"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"n":"STCP - Unknown"},{"t":6,"s":1,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Female"},{"t":4,"p":1,"n":"Essential"},{"t":4,"p":1,"n":"Is CharGen Face Preset"},{"t":4,"p":1,"n":"Respawn"},{"t":4,"p":1,"n":"Auto-calc stats"},{"t":4,"p":1,"n":"Unique"},{"t":4,"p":1,"n":"Doesn't affect stealth meter"},{"t":4,"p":1,"n":"PC Level Mult"},{"t":4,"p":1,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"p":1,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Bleedout Override"},{"t":4,"p":1,"n":"Opposite Gender Anims"},{"t":4,"p":1,"n":"Simple Actor"},{"t":4,"p":1,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"looped audio?"},{"t":4,"p":1,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"p":1,"n":"Invulnerable"}]},{"t":3,"p":1,"n":"XP Value Offset"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Level Mult"},{"t":3,"p":1,"n":"Calc min level"},{"t":3,"p":1,"n":"Calc max level"},{"t":3,"p":1,"n":"Disposition Base"},{"t":3,"p":1,"n":"Use Template Actors"},{"t":3,"p":1,"n":"Bleedout Override"},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Factions","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Faction","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Rank"}]}]},{"t":3,"p":1,"n":"INAM - Death item"},{"t":3,"p":1,"n":"VTCK - Voice"},{"t":3,"p":1,"n":"TPLT - Default Template"},{"t":3,"p":1,"n":"LTPT - Legendary Template"},{"t":3,"p":1,"n":"LTPC - Legendary Chance"},{"t":6,"s":1,"p":1,"n":"TPTA - Template Actors","c":[{"t":3,"p":1,"n":"Traits"},{"t":3,"p":1,"n":"Stats"},{"t":3,"p":1,"n":"Factions"},{"t":3,"p":1,"n":"Spell List"},{"t":3,"p":1,"n":"AI Data"},{"t":3,"p":1,"n":"AI Packages"},{"t":3,"p":1,"n":"Model\/Animation"},{"t":3,"p":1,"n":"Base Data"},{"t":3,"p":1,"n":"Inventory"},{"t":3,"p":1,"n":"Script"},{"t":3,"p":1,"n":"Def Pack List"},{"t":3,"p":1,"n":"Attack Data"},{"t":3,"p":1,"n":"Keywords"}]},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","d":1,"c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"WNAM - Skin"},{"t":3,"p":1,"n":"ANAM - Far away model"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","d":1,"c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags","c":[{"t":4,"p":1,"n":"Ignore Weapon"},{"t":4,"p":1,"n":"Bash Attack"},{"t":4,"p":1,"n":"Power Attack"},{"t":4,"p":1,"n":"Left Attack"},{"t":4,"p":1,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"p":1,"n":"Override Data"}]},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Action Points Mult"},{"t":3,"p":1,"n":"Stagger Offset"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"},{"t":3,"p":1,"n":"ATKW - Weapon Slot"},{"t":3,"p":1,"n":"ATKS - Required Slot"},{"t":2,"p":1,"n":"ATKT - Description"}]}]},{"t":3,"p":1,"n":"SPOR - Spectator Override Package List"},{"t":3,"p":1,"n":"OCOR - Observe Dead Body Override Package List"},{"t":3,"p":1,"n":"GWOR - Guard Warn Override Package List"},{"t":3,"p":1,"n":"ECOR - Combat Override Package List"},{"t":3,"p":1,"n":"FCPL - Follower Command Package List"},{"t":3,"p":1,"n":"RCLR - Follower Elevator Package List"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"s":1,"p":1,"n":"Perks","d":1,"c":[{"t":6,"p":1,"n":"PRKR - Perk","c":[{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Rank"}]}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Packages","d":1,"c":[{"t":3,"p":1,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]},{"t":3,"p":1,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Far Away Model Distance"},{"t":3,"p":1,"n":"Geared Up Weapons"}]},{"t":8,"s":1,"p":1,"n":"Head Parts","d":1,"c":[{"t":3,"p":1,"n":"PNAM - Head Part"}]},{"t":3,"p":1,"n":"HCLF - Hair Color"},{"t":3,"p":1,"n":"BCLF - Facial Hair Color"},{"t":3,"p":1,"n":"ZNAM - Combat Style"},{"t":3,"p":1,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"p":1,"n":"NAM6 - Height Min"},{"t":5,"n":"NAM7 - Unused"},{"t":5,"p":1,"n":"NAM4 - Height Max"},{"t":6,"s":1,"p":1,"n":"MWGT - Weight","c":[{"t":5,"p":1,"n":"Thin"},{"t":5,"p":1,"n":"Muscular"},{"t":5,"p":1,"n":"Fat"}]},{"t":3,"p":1,"n":"NAM8 - Sound Level"},{"t":6,"s":1,"p":1,"n":"Actor Sounds","c":[{"t":3,"p":1,"n":"CS2H - Count"},{"t":10,"p":1,"n":"Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"CS2K - Keyword"},{"t":3,"p":1,"n":"CS2D - Sound"}]}]},{"p":1,"n":"CS2E - End Marker"},{"t":11,"p":1,"n":"CS2F - Finalize"}]},{"t":3,"p":1,"n":"CSCR - Inherits Sounds From"},{"t":3,"p":1,"n":"PFRN - Power Armor Stand"},{"t":3,"p":1,"n":"DOFT - Default Outfit"},{"t":3,"p":1,"n":"SOFT - Sleeping Outfit"},{"t":3,"p":1,"n":"DPLT - Default Package List"},{"t":3,"p":1,"n":"CRIF - Crime Faction"},{"t":3,"p":1,"n":"FTST - Head Texture"},{"t":6,"s":1,"p":1,"n":"QNAM - Texture lighting","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]},{"t":7,"p":1,"n":"MSDK - Morph Keys","c":[{"t":3,"p":1,"n":"Key"}]},{"t":7,"p":1,"n":"MSDV - Morph Values","c":[{"t":5,"p":1,"n":"Value"}]},{"t":10,"p":1,"n":"Face Tinting Layers","d":1,"c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"TETI - Index","c":[{"t":3,"p":1,"n":"Data Type"},{"t":3,"p":1,"n":"Index"}]},{"t":6,"p":1,"n":"TEND - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Template Color Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"MRSV - Body Morph Region Values","c":[{"t":5,"p":1,"n":"Head"},{"t":5,"p":1,"n":"Upper Torso"},{"t":5,"p":1,"n":"Arms"},{"t":5,"p":1,"n":"Lower Torso"},{"t":5,"p":1,"n":"Legs"}]},{"t":10,"p":1,"n":"Face Morphs","d":1,"c":[{"t":6,"p":1,"n":"Face Morph","c":[{"t":3,"p":1,"n":"FMRI - Index"},{"t":6,"p":1,"n":"FMRS - Values","c":[{"t":5,"p":1,"n":"Position - X"},{"t":5,"p":1,"n":"Position - Y"},{"t":5,"p":1,"n":"Position - Z"},{"t":5,"p":1,"n":"Rotation - X"},{"t":5,"p":1,"n":"Rotation - Y"},{"t":5,"p":1,"n":"Rotation - Z"},{"t":5,"p":1,"n":"Scale"},{"t":11,"n":"Unknown"}]}]}]},{"t":5,"p":1,"n":"FMIN - Facial Morph Intensity"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"}]},{"t":1,"p":1,"n":"OMOD - Object Modification","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Attach Point"},{"t":7,"p":1,"n":"Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":11,"p":1,"n":"Value 1"},{"t":11,"p":1,"n":"Value 2"}]}]},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Minimum Level"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]},{"t":7,"p":1,"n":"MNAM - Target OMOD Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"FNAM - Filter Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"LNAM - Loose Mod"},{"t":3,"p":1,"n":"NAM1 - Priority"},{"t":2,"p":1,"n":"FLTR - Filter"}]},{"t":1,"p":1,"n":"OTFT - Outfit","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"INAM - Items","c":[{"t":3,"p":1,"n":"Item"}]}]},{"t":1,"n":"OVIS - Object Visibility Manager","d":1,"c":[{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":3,"n":"INDX - Object"},{"t":6,"n":"DATA - Object Bounds","c":[{"t":5,"n":"X1"},{"t":5,"n":"Y1"},{"t":5,"n":"Z1"},{"t":5,"n":"X2"},{"t":5,"n":"Y2"},{"t":5,"n":"Z2"}]}]}]}]},{"t":1,"p":1,"n":"PACK - Package","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"OnBegin"},{"t":4,"p":1,"n":"OnEnd"},{"t":4,"p":1,"n":"OnChange"}]},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"PKDT - Pack Data","c":[{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"p":1,"n":"Offers Services"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Must complete"},{"t":4,"p":1,"n":"Maintain Speed at Goal"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unlock doors at package start"},{"t":4,"p":1,"n":"Unlock doors at package end"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Continue if PC Near"},{"t":4,"p":1,"n":"Once per day"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Preferred Speed"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Always Sneak"},{"t":4,"p":1,"n":"Allow Swimming"},{"t":4,"n":"Unknown 20"},{"t":4,"p":1,"n":"Ignore Combat"},{"t":4,"p":1,"n":"Weapons Unequipped"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"Weapon Drawn"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"No Combat Alert"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"Wear Sleep Outfit (unused)"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Interrupt Override"},{"t":3,"p":1,"n":"Preferred Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Flags","c":[{"t":4,"p":1,"n":"Hellos to player"},{"t":4,"p":1,"n":"Random conversations"},{"t":4,"p":1,"n":"Observe combat behavior"},{"t":4,"p":1,"n":"Greet corpse behavior"},{"t":4,"p":1,"n":"Reaction to player actions"},{"t":4,"p":1,"n":"Friendly fire comments"},{"t":4,"p":1,"n":"Aggro Radius Behavior"},{"t":4,"p":1,"n":"Allow Idle Chatter"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"World Interactions"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"}]}]},{"t":6,"s":1,"p":1,"n":"PSDT - Schedule","c":[{"t":3,"p":1,"n":"Month"},{"t":3,"p":1,"n":"Day of week"},{"t":3,"p":1,"n":"Date"},{"t":3,"p":1,"n":"Hour"},{"t":3,"p":1,"n":"Minute"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Duration (minutes)"}]},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"Idle Animations","c":[{"t":3,"p":1,"n":"IDLF - Flags","c":[{"t":4,"p":1,"n":"Run in Sequence"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Do Once"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"Ignored by Sandbox"}]},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":11,"n":"IDLB - Unknown"}]},{"t":3,"p":1,"n":"CNAM - Combat Style"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":6,"s":1,"p":1,"n":"PKCU - Counter","c":[{"t":3,"p":1,"n":"Data Input Count"},{"t":3,"p":1,"n":"Package Template"},{"t":3,"p":1,"n":"Version Counter (autoincremented)"}]},{"t":6,"s":1,"p":1,"n":"Package Data","c":[{"t":8,"p":1,"n":"Data Input Values","c":[{"t":6,"p":1,"n":"Value","c":[{"t":2,"p":1,"n":"ANAM - Type"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Bool"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"n":"BNAM - Unknown"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":6,"p":1,"n":"PLDT - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Ref Alias"},{"t":3,"p":1,"n":"Loc Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":3,"p":1,"n":"Packdata Target"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Ref Collection Alias"},{"t":3,"p":1,"n":"Radius"},{"t":3,"p":1,"n":"Collection Index"}]},{"t":6,"p":1,"n":"PTDA - Target","c":[{"t":6,"p":1,"n":"Target Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Count \/ Distance"}]}]},{"t":11,"n":"TPIC - Unknown"}]}]},{"t":8,"p":1,"n":"Data Inputs","c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags","c":[{"t":4,"p":1,"n":"Public"}]}]}]}]},{"t":11,"n":"XNAM - Marker"},{"t":6,"s":1,"p":1,"n":"Procedure Tree","c":[{"t":8,"p":1,"n":"Branches","c":[{"t":6,"p":1,"n":"Branch","c":[{"t":2,"p":1,"n":"ANAM - Branch Type"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"p":1,"n":"PRCB - Root","c":[{"t":3,"p":1,"n":"Branch Count"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Repeat when Complete"},{"t":4,"n":"Unknown 1"}]}]},{"t":2,"p":1,"n":"PNAM - Procedure Type"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Success Completes Package"}]},{"t":8,"p":1,"n":"Data Input Indexes","c":[{"t":3,"p":1,"n":"PKC2 - Index"}]},{"t":8,"p":1,"n":"Flags Override","c":[{"t":6,"p":1,"n":"PFO2 - Data","c":[{"t":3,"p":1,"n":"Set General Flags","c":[{"t":4,"p":1,"n":"Offers Services"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Must complete"},{"t":4,"p":1,"n":"Maintain Speed at Goal"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unlock doors at package start"},{"t":4,"p":1,"n":"Unlock doors at package end"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Continue if PC Near"},{"t":4,"p":1,"n":"Once per day"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Preferred Speed"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Always Sneak"},{"t":4,"p":1,"n":"Allow Swimming"},{"t":4,"n":"Unknown 20"},{"t":4,"p":1,"n":"Ignore Combat"},{"t":4,"p":1,"n":"Weapons Unequipped"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"Weapon Drawn"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"No Combat Alert"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"Wear Sleep Outfit (unused)"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Clear General Flags","c":[{"t":4,"p":1,"n":"Offers Services"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Must complete"},{"t":4,"p":1,"n":"Maintain Speed at Goal"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unlock doors at package start"},{"t":4,"p":1,"n":"Unlock doors at package end"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Continue if PC Near"},{"t":4,"p":1,"n":"Once per day"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Preferred Speed"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Always Sneak"},{"t":4,"p":1,"n":"Allow Swimming"},{"t":4,"n":"Unknown 20"},{"t":4,"p":1,"n":"Ignore Combat"},{"t":4,"p":1,"n":"Weapons Unequipped"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"Weapon Drawn"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"No Combat Alert"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"Wear Sleep Outfit (unused)"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Set Interrupt Flags","c":[{"t":4,"p":1,"n":"Hellos to player"},{"t":4,"p":1,"n":"Random conversations"},{"t":4,"p":1,"n":"Observe combat behavior"},{"t":4,"p":1,"n":"Greet corpse behavior"},{"t":4,"p":1,"n":"Reaction to player actions"},{"t":4,"p":1,"n":"Friendly fire comments"},{"t":4,"p":1,"n":"Aggro Radius Behavior"},{"t":4,"p":1,"n":"Allow Idle Chatter"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"World Interactions"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"}]},{"t":3,"p":1,"n":"Clear Interrupt Flags","c":[{"t":4,"p":1,"n":"Hellos to player"},{"t":4,"p":1,"n":"Random conversations"},{"t":4,"p":1,"n":"Observe combat behavior"},{"t":4,"p":1,"n":"Greet corpse behavior"},{"t":4,"p":1,"n":"Reaction to player actions"},{"t":4,"p":1,"n":"Friendly fire comments"},{"t":4,"p":1,"n":"Aggro Radius Behavior"},{"t":4,"p":1,"n":"Allow Idle Chatter"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"World Interactions"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"}]},{"t":3,"p":1,"n":"Preferred Speed Override"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"PFOR - Unknown"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Data Inputs","d":1,"c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags","c":[{"t":4,"p":1,"n":"Public"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnBegin","c":[{"p":1,"n":"POBA - OnBegin Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnEnd","c":[{"p":1,"n":"POEA - OnEnd Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnChange","c":[{"p":1,"n":"POCA - OnChange Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":1,"p":1,"n":"PARW - Placed Arrow","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PBAR - Placed Barrier","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PBEA - Placed Beam","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PCON - Placed Cone\/Voice","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PERK - Perk","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ICON - Image"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Trait"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Num Ranks"},{"t":3,"p":1,"n":"Playable"},{"t":3,"p":1,"n":"Hidden"}]},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":3,"p":1,"n":"NNAM - Next Perk"},{"t":2,"p":1,"n":"FNAM - SWF"},{"t":10,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":6,"p":1,"n":"PRKE - Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Priority"}]},{"t":6,"p":1,"n":"Quest + Stage","c":[{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Ability"},{"t":6,"p":1,"n":"Entry Point","c":[{"t":3,"p":1,"n":"Entry Point"},{"t":3,"p":1,"n":"Function"},{"t":3,"p":1,"n":"Perk Condition Tab Count"}]},{"t":10,"p":1,"n":"Perk Conditions","c":[{"t":6,"p":1,"n":"Perk Condition","c":[{"t":3,"p":1,"n":"PRKC - Run On (Tab Index)"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":6,"p":1,"n":"Function Parameters","c":[{"t":3,"p":1,"n":"EPFT - Type"},{"t":3,"p":1,"n":"EPFB - Perk Entry ID (unique)"},{"t":2,"p":1,"n":"EPF2 - Button Label"},{"t":6,"p":1,"n":"EPF3 - Script Flags","c":[{"t":3,"p":1,"n":"Script Flags","c":[{"t":4,"p":1,"n":"Run Immediately"},{"t":4,"p":1,"n":"Replace Default"}]},{"t":3,"n":"Fragment Index"}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Float"},{"t":6,"p":1,"n":"Float, Float","c":[{"t":5,"p":1,"n":"Float 1"},{"t":5,"p":1,"n":"Float 2"}]},{"t":3,"p":1,"n":"Leveled Item"},{"t":3,"p":1,"n":"Spell"},{"t":2,"p":1,"n":"Text"},{"t":6,"p":1,"n":"Actor Value, Float","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Float"}]}]},{"p":1,"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PFLA - Placed Flame","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PGRE - Placed Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PHZD - Placed Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PKIN - Pack-In","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":3,"p":1,"n":"CNAM - Cell"},{"t":3,"p":1,"n":"VNAM - Version"}]},{"t":1,"p":1,"n":"PMIS - Placed Missile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PROJ - Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":11,"n":"DATA - Unused"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Gravity"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Muzzle Flash - Light"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Sound"},{"t":5,"p":1,"n":"Muzzle Flash - Duration"},{"t":5,"p":1,"n":"Fade Duration"},{"t":5,"p":1,"n":"Impact Force"},{"t":3,"p":1,"n":"Sound - Countdown"},{"t":3,"p":1,"n":"Sound - Disable"},{"t":3,"p":1,"n":"Default Weapon Source"},{"t":5,"p":1,"n":"Cone Spread"},{"t":5,"p":1,"n":"Collision Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Relaunch Interval"},{"t":3,"p":1,"n":"Decal Data"},{"t":3,"p":1,"n":"Collision Layer"},{"t":3,"p":1,"n":"Tracer Frequency"},{"t":3,"p":1,"n":"VATS Projectile"}]},{"t":6,"s":1,"p":1,"n":"Muzzle Flash Model","c":[{"t":2,"p":1,"n":"NAM1 - Model FileName"},{"t":11,"p":1,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"p":1,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"QUST - Quest","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"FragmentCount"},{"t":2,"p":1,"n":"scriptName"},{"t":6,"p":1,"n":"Script Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":11,"n":"Unused"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Quest Stage Index"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]},{"t":7,"p":1,"n":"Aliases","c":[{"t":6,"p":1,"n":"Alias","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Alias Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - General","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Start Game Enabled"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"Allow repeated stages"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"Run Once"},{"t":4,"p":1,"n":"Exclude from dialogue export"},{"t":4,"p":1,"n":"Warn on alias fill failure"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"}]},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":2,"p":1,"n":"ENAM - Event"},{"t":3,"p":1,"n":"LNAM - Location"},{"t":3,"p":1,"n":"XNAM - Quest Completion XP"},{"t":8,"s":1,"p":1,"n":"Text Display Globals","d":1,"c":[{"t":3,"p":1,"n":"QTGL - Global"}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":6,"s":1,"p":1,"n":"Quest Dialogue Conditions","c":[{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":10,"p":1,"n":"Stages","d":1,"c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"INDX - Stage Index","c":[{"t":3,"p":1,"n":"Stage Index"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Start Up Stage"},{"t":4,"p":1,"n":"Shut Down Stage"},{"t":4,"p":1,"n":"Keep Instance Data From Here On"}]},{"t":3,"n":"Unknown"}]},{"t":8,"p":1,"n":"Log Entries","c":[{"t":6,"p":1,"n":"Log Entry","c":[{"t":3,"p":1,"n":"QSDT - Stage Flags","c":[{"t":4,"p":1,"n":"Complete Quest"},{"t":4,"p":1,"n":"Fail Quest"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"NAM2 - Note"},{"t":2,"p":1,"n":"CNAM - Log Entry"},{"t":3,"p":1,"n":"NAM0 - Next Quest"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Objectives","d":1,"c":[{"t":6,"p":1,"n":"Objective","c":[{"t":3,"p":1,"n":"QOBJ - Objective Index"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"ORed With Previous"}]},{"t":2,"p":1,"n":"NNAM - Display Text"},{"t":8,"p":1,"n":"Targets","c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Compass Marker Ignores Locks"}]},{"t":3,"p":1,"n":"Keyword"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},{"t":3,"n":"ANAM - Next Alias ID"},{"t":8,"s":1,"p":1,"n":"Aliases","d":1,"c":[{"t":6,"p":1,"n":"Alias","c":[{"t":3,"p":1,"n":"ALST - Reference Alias ID"},{"t":2,"p":1,"n":"ALID - Alias Name"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"p":1,"n":"ALFR - Forced Reference"},{"t":3,"p":1,"n":"ALUA - Unique Actor"},{"t":6,"p":1,"n":"Location Alias Reference","c":[{"t":3,"p":1,"n":"ALFA - Alias"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":3,"p":1,"n":"ALRT - Ref Type"}]},{"t":6,"p":1,"n":"External Alias Reference","c":[{"t":3,"p":1,"n":"ALEQ - Quest"},{"t":3,"p":1,"n":"ALEA - Alias"}]},{"t":6,"p":1,"n":"Create Reference to Object","c":[{"t":3,"p":1,"n":"ALCO - Object"},{"t":6,"p":1,"n":"ALCA - Alias","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Create"}]},{"t":3,"p":1,"n":"ALCL - Level"}]},{"t":6,"p":1,"n":"Find Matching Reference Near Alias","c":[{"t":3,"p":1,"n":"ALNA - Alias"},{"t":3,"p":1,"n":"ALNT - Type"}]},{"t":6,"p":1,"n":"Find Matching Reference From Event","c":[{"t":2,"p":1,"n":"ALFE - From Event"},{"t":11,"p":1,"n":"ALFD - Event Data"}]},{"t":3,"p":1,"n":"ALCC - Closest To Alias"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":7,"p":1,"n":"ALLA - Linked Aliases","c":[{"t":6,"p":1,"n":"Linked Alias","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Alias"}]}]},{"t":3,"p":1,"n":"ALDN - Display Name"},{"t":3,"p":1,"n":"ALFV - Forced Voice"},{"t":3,"p":1,"n":"ALDI - Death Item"},{"t":8,"p":1,"n":"Alias Spells","c":[{"t":3,"p":1,"n":"ALSP - Spell"}]},{"t":8,"p":1,"n":"Alias Factions","c":[{"t":3,"p":1,"n":"ALFC - Faction"}]},{"t":8,"p":1,"n":"Alias Package Data","c":[{"t":3,"p":1,"n":"ALPC - Package"}]},{"t":3,"p":1,"n":"VTCK - Voice Types"},{"p":1,"n":"ALED - Alias End"}]}]},{"t":2,"p":1,"n":"NNAM - Description"},{"t":3,"p":1,"n":"GNAM - Quest Group"},{"t":2,"p":1,"n":"SNAM - SWF File"}]},{"t":1,"p":1,"n":"RACE - Race","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"STCP - Sound"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":3,"n":"WNAM - Skin"},{"t":6,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"p":1,"n":"30 - Head"},{"t":4,"p":1,"n":"31 - Hair"},{"t":4,"p":1,"n":"32 - Body"},{"t":4,"p":1,"n":"33 - Hands"},{"t":4,"p":1,"n":"34 - Forearms"},{"t":4,"p":1,"n":"35 - Amulet"},{"t":4,"p":1,"n":"36 - Ring"},{"t":4,"p":1,"n":"37 - Feet"},{"t":4,"p":1,"n":"38 - Calves"},{"t":4,"p":1,"n":"39 - Shield"},{"t":4,"p":1,"n":"40 - Tail"},{"t":4,"p":1,"n":"41 - LongHair"},{"t":4,"p":1,"n":"42 - Circlet"},{"t":4,"p":1,"n":"43 - Ears"},{"t":4,"p":1,"n":"44 - Unnamed"},{"t":4,"p":1,"n":"45 - Unnamed"},{"t":4,"p":1,"n":"46 - Unnamed"},{"t":4,"p":1,"n":"47 - Unnamed"},{"t":4,"p":1,"n":"48 - Unnamed"},{"t":4,"p":1,"n":"49 - Unnamed"},{"t":4,"p":1,"n":"50 - DecapitateHead"},{"t":4,"p":1,"n":"51 - Decapitate"},{"t":4,"p":1,"n":"52 - Unnamed"},{"t":4,"p":1,"n":"53 - Unnamed"},{"t":4,"p":1,"n":"54 - Unnamed"},{"t":4,"p":1,"n":"55 - Unnamed"},{"t":4,"p":1,"n":"56 - Unnamed"},{"t":4,"p":1,"n":"57 - Unnamed"},{"t":4,"p":1,"n":"58 - Unnamed"},{"t":4,"p":1,"n":"59 - Unnamed"},{"t":4,"p":1,"n":"60 - Unnamed"},{"t":4,"p":1,"n":"61 - FX01"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":7,"n":"PRPS - Properties","c":[{"t":6,"n":"Property","c":[{"t":3,"n":"Actor Value"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"APPR - Attach Parent Slots","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":5,"n":"Male Height"},{"t":5,"n":"Female Height"},{"t":6,"n":"Male Default Weight","c":[{"t":5,"n":"Thin"},{"t":5,"n":"Muscular"},{"t":5,"n":"Fat"}]},{"t":6,"n":"Female Default Weight","c":[{"t":5,"n":"Thin"},{"t":5,"n":"Muscular"},{"t":5,"n":"Fat"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Acceleration Rate"},{"t":5,"n":"Deceleration Rate"},{"t":3,"n":"Size"},{"t":11,"n":"Unknown"},{"t":5,"n":"Injured Health Pct"},{"t":3,"n":"Shield Biped Object"},{"t":3,"n":"Beard Biped Object"},{"t":3,"n":"Body Biped Object"},{"t":5,"n":"Aim Angle Tolerance"},{"t":5,"n":"Flight Radius"},{"t":5,"n":"Angular Acceleration Rate"},{"t":5,"n":"Angular Tolerance"},{"t":3,"n":"Flags 2","c":[{"t":4,"n":"Use Advanced Avoidance"},{"t":4,"n":"Non-Hostile"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Allow Mounted Combat"}]},{"t":3,"n":"Pipboy Biped Object"},{"t":3,"n":"XP Value"},{"t":5,"n":"Severable - Debris Scale"},{"t":3,"n":"Severable - Debris Count"},{"t":3,"n":"Severable - Decal Count"},{"t":5,"n":"Explodable - Debris Scale"},{"t":3,"n":"Explodable - Debris Count"},{"t":3,"n":"Explodable - Decal Count"},{"t":3,"n":"Severable - Explosion"},{"t":3,"n":"Severable - Debris"},{"t":3,"n":"Severable - Impact DataSet"},{"t":3,"n":"Explodable - Explosion"},{"t":3,"n":"Explodable - Debris"},{"t":3,"n":"Explodable - Impact DataSet"},{"t":5,"n":"OnCripple - Debris Scale"},{"t":3,"n":"OnCripple - Debris Count"},{"t":3,"n":"OnCripple - Decal Count"},{"t":3,"n":"OnCripple - Explosion"},{"t":3,"n":"OnCripple - Debris"},{"t":3,"n":"OnCripple - Impact DataSet"},{"t":3,"n":"Explodable - Subsegment Explosion"},{"t":5,"n":"Orientation Limits - Pitch"},{"t":5,"n":"Orientation Limits - Roll"}]},{"n":"MNAM - Male Marker"},{"t":2,"n":"ANAM - Male Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"FNAM - Female Marker"},{"t":2,"n":"ANAM - Female Skeletal Model"},{"n":"NAM2 - Marker NAM2 #1"},{"t":8,"n":"MTNM - Movement Type Names","c":[{"t":2,"n":"MTNM - Name"}]},{"t":7,"n":"VTCK - Voices","c":[{"t":3,"n":"Male"},{"t":3,"n":"Female"}]},{"t":7,"n":"HCLF - Default Hair Colors","c":[{"t":3,"n":"Male"},{"t":3,"n":"Female"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags","c":[{"t":4,"p":1,"n":"Ignore Weapon"},{"t":4,"p":1,"n":"Bash Attack"},{"t":4,"p":1,"n":"Power Attack"},{"t":4,"p":1,"n":"Left Attack"},{"t":4,"p":1,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"p":1,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Action Points Mult"},{"t":3,"n":"Stagger Offset"}]},{"t":2,"n":"ATKE - Attack Event"},{"t":3,"n":"ATKW - Weapon Slot"},{"t":3,"n":"ATKS - Required Slot"},{"t":2,"n":"ATKT - Description"}]}]},{"t":6,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]}]}]},{"t":6,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]}]}]}]},{"t":3,"n":"GNAM - Body Part Data"},{"n":"NAM2 - Marker NAM2 #2"},{"n":"NAM3 - Marker NAM3 #3"},{"t":6,"n":"Male Behavior Graph","c":[{"n":"MNAM - Male Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":6,"n":"Female Behavior Graph","c":[{"n":"FNAM - Female Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":3,"n":"NAM4 - Impact Material Type"},{"t":3,"n":"NAM5 - Impact Data Set"},{"t":3,"n":"NAM7 - Dismember Blood Art"},{"t":3,"n":"CNAM - Meat Cap TextureSet"},{"t":3,"n":"NAM2 - Collar TextureSet"},{"t":3,"n":"ONAM - Sound - Open Corpse"},{"t":3,"n":"LNAM - Sound - Close Corpse"},{"t":8,"n":"Biped Object Names","c":[{"t":2,"n":"NAME - Name"}]},{"t":7,"n":"RBPC - Biped Object Conditions","c":[{"t":3,"n":"Slot 30+"}]},{"t":10,"n":"Movement Data Overrides","c":[{"t":6,"n":"Override","c":[{"t":3,"n":"MTYP - Movement Type"},{"t":6,"n":"SPED - Movement Data","c":[{"t":5,"n":"Unknown"},{"t":5,"n":"Walk - Left"},{"t":5,"n":"Run - Left"},{"t":5,"n":"Walk - Right"},{"t":5,"n":"Run - Right"},{"t":5,"n":"Walk - Forward"},{"t":5,"n":"Run - Forward"},{"t":5,"n":"Sprint - Forward"},{"t":5,"n":"Walk - Back"},{"t":5,"n":"Run - Back"},{"t":5,"n":"Standing - Pitch"},{"t":5,"n":"Walk - Pitch"},{"t":5,"n":"Run - Pitch"},{"t":5,"n":"Sprint - Pitch"},{"t":5,"n":"Standing - Yaw"},{"t":5,"n":"Walk - Yaw"},{"t":5,"n":"Run - Yaw"},{"t":5,"n":"Sprint - Yaw"}]}]}]},{"t":3,"n":"VNAM - Equipment Flags","c":[{"t":4,"n":"Hand To Hand Melee"},{"t":4,"n":"One Hand Sword"},{"t":4,"n":"One Hand Dagger"},{"t":4,"n":"One Hand Axe"},{"t":4,"n":"One Hand Mace"},{"t":4,"n":"Two Hand Sword"},{"t":4,"n":"Two Hand Axe"},{"t":4,"n":"Bow"},{"t":4,"n":"Staff"},{"t":4,"n":"Spell"},{"t":4,"n":"Shield"},{"t":4,"n":"Torch"},{"t":4,"n":"Crossbow"}]},{"t":8,"n":"Equip Slots","c":[{"t":6,"n":"Equip Slot","c":[{"t":3,"n":"QNAM - Equip Slot"},{"t":2,"n":"ZNAM - Node"}]}]},{"t":3,"n":"UNWP - Unarmed Weapon"},{"t":8,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"IH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"EH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"EY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AE","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AA","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AO","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"OY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"OW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"UH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"UW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"ER","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AX","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"S","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Z","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"ZH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"F","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"TH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"V","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"M","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"N","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"NG","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"L","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"R","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"W","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Y","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"HH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"B","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"D","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"JH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"G","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"P","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"T","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"K","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"CH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SHOTSIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"FLAP","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]}]},{"t":3,"n":"WKMV - Base Movement Defaults - Default"},{"t":3,"n":"SWMV - Base Movement Defaults - Swim"},{"t":3,"n":"FLMV - Base Movement Defaults - Fly"},{"t":3,"n":"SNMV - Base Movement Defaults - Sneak"},{"n":"NAM0 - Head Data Marker"},{"n":"MNAM - Male Data Marker"},{"t":6,"n":"NNAM - Male Neck Fat Adjustments Scale","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":10,"n":"Male Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":8,"n":"Male Race Presets","c":[{"t":3,"n":"RPRM - Preset NPC"}]},{"t":8,"n":"Male Hair Colors","c":[{"t":3,"n":"AHCM - Hair Color"}]},{"t":8,"n":"Male Face Details","c":[{"t":3,"n":"FTSM - Texture Set"}]},{"t":3,"n":"DFTM - Male Default Face Texture"},{"t":8,"p":1,"n":"Male Tint Layers","c":[{"t":6,"p":1,"n":"Group","c":[{"t":2,"n":"TTGP - Group Name"},{"t":8,"p":1,"n":"Options","c":[{"t":6,"p":1,"n":"Option","c":[{"t":6,"n":"TETI - Index","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Index"}]},{"t":2,"n":"TTGP - Name"},{"t":11,"n":"TTEF - Unknown"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":3,"n":"Variable Name"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Textures","c":[{"t":2,"n":"TTET - Texture"}]},{"t":11,"n":"TTEB - Unknown"},{"t":7,"n":"TTEC - Template Colors","c":[{"t":6,"n":"Template Color","c":[{"t":3,"n":"Color"},{"t":5,"n":"Alpha"},{"t":3,"n":"Template Index"},{"t":11,"n":"Unknown"}]}]},{"t":5,"n":"TTED - Unknown"}]}]},{"t":11,"n":"TTGE - Group End"}]}]},{"t":8,"n":"Male Morph Groups","c":[{"t":6,"n":"Morph Group","c":[{"t":2,"n":"MPGN - Name"},{"t":3,"n":"MPPC - Count"},{"t":8,"n":"Morph Presets","c":[{"t":6,"n":"Morph Preset","c":[{"t":3,"n":"MPPI - Index"},{"t":2,"n":"MPPN - Name"},{"t":2,"n":"MPPM - Unknown"},{"t":3,"n":"MPPT - Texture"},{"t":11,"n":"MPPF - Unknown"}]}]},{"t":11,"n":"MPPK - Unknown"},{"t":11,"n":"MPGS - Unknown"}]}]},{"t":8,"n":"Male Face Morphs","c":[{"t":6,"n":"Face Morph","c":[{"t":3,"n":"FMRI - Index"},{"t":2,"n":"FMRN - Name"}]}]},{"t":2,"n":"WMAP - Male Wrinkle Map Path"},{"n":"FNAM - Female Data Marker"},{"t":6,"n":"NNAM - Female Neck Fat Adjustments Scale","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":10,"n":"Female Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":8,"n":"Female Race Presets","c":[{"t":3,"n":"RPRF - Preset NPC"}]},{"t":8,"n":"Female Hair Colors","c":[{"t":3,"n":"AHCF - Hair Color"}]},{"t":8,"n":"Female Face Details","c":[{"t":3,"n":"FTSF - Texture Set"}]},{"t":3,"n":"DFTF - Female Default Face Texture"},{"t":8,"p":1,"n":"Female Tint Layers","c":[{"t":6,"p":1,"n":"Group","c":[{"t":2,"n":"TTGP - Group Name"},{"t":8,"p":1,"n":"Options","c":[{"t":6,"p":1,"n":"Option","c":[{"t":6,"n":"TETI - Index","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Index"}]},{"t":2,"n":"TTGP - Name"},{"t":11,"n":"TTEF - Unknown"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":3,"n":"Variable Name"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Textures","c":[{"t":2,"n":"TTET - Texture"}]},{"t":11,"n":"TTEB - Unknown"},{"t":7,"n":"TTEC - Template Colors","c":[{"t":6,"n":"Template Color","c":[{"t":3,"n":"Color"},{"t":5,"n":"Alpha"},{"t":3,"n":"Template Index"},{"t":11,"n":"Unknown"}]}]},{"t":5,"n":"TTED - Unknown"}]}]},{"t":11,"n":"TTGE - Group End"}]}]},{"t":8,"n":"Female Morph Groups","c":[{"t":6,"n":"Morph Group","c":[{"t":2,"n":"MPGN - Name"},{"t":3,"n":"MPPC - Count"},{"t":8,"n":"Morph Presets","c":[{"t":6,"n":"Morph Preset","c":[{"t":3,"n":"MPPI - Index"},{"t":2,"n":"MPPN - Name"},{"t":2,"n":"MPPM - Unknown"},{"t":3,"n":"MPPT - Texture"},{"t":11,"n":"MPPF - Unknown"}]}]},{"t":11,"n":"MPPK - Unknown"},{"t":11,"n":"MPGS - Unknown"}]}]},{"t":8,"n":"Female Face Morphs","c":[{"t":6,"n":"Face Morph","c":[{"t":3,"n":"FMRI - Index"},{"t":2,"n":"FMRN - Name"}]}]},{"t":2,"n":"WMAP - Female Wrinkle Map Path"},{"t":3,"n":"NAM8 - Morph Race"},{"t":3,"n":"RNAM - Armor Race"},{"t":3,"n":"SRAC - Subgraph Template Race"},{"t":3,"n":"SADD - Subgraph Additive Race"},{"t":8,"n":"Subgraph Data","c":[{"t":6,"n":"Data","c":[{"t":2,"n":"SGNM - Behaviour Graph"},{"t":8,"n":"Actor Keywords","c":[{"t":3,"n":"SAKD - Keyword"}]},{"t":8,"n":"Target Keywords","c":[{"t":3,"n":"STKD - Keyword"}]},{"t":8,"n":"Animation Paths","c":[{"t":2,"n":"SAPT - Path"}]},{"t":6,"n":"SRAF - Flags","c":[{"t":3,"n":"Role"},{"t":3,"n":"Perspective"}]}]}]},{"t":5,"n":"PTOP - Idle Chatter Time Min"},{"t":5,"n":"NTOP - Idle Chatter Time Max"},{"t":8,"n":"Morph Values","c":[{"t":6,"n":"Value","c":[{"t":3,"n":"MSID - Index"},{"t":2,"n":"MSM0 - Min Name"},{"t":2,"n":"MSM1 - Max Name"}]}]},{"t":11,"n":"MLSI - Unknown"},{"t":2,"n":"HNAM - Hair Color Lookup Texture"},{"t":2,"n":"HLTX - Hair Color Extended Lookup Texture"},{"t":3,"n":"QSTI - Dialogue Quest"},{"t":8,"n":"Bone Data","c":[{"t":6,"n":"Data","c":[{"t":3,"n":"BSMP - Gender"},{"t":8,"n":"Bones","c":[{"t":6,"n":"Bone","c":[{"t":2,"n":"BSMB - Name"},{"t":7,"n":"BSMS - Values","c":[{"t":5,"n":"Value"}]},{"t":11,"n":"BMMP - Unknown"}]}]}]}]}]},{"t":1,"p":1,"n":"REFR - Placed Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":6,"s":1,"p":1,"n":"XMBO - Bound Half Extents","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"XPRM - Primitive","c":[{"t":6,"p":1,"n":"Bounds","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":7,"p":1,"n":"XPOD - Portal Data","c":[{"t":6,"p":1,"n":"References","c":[{"t":3,"p":1,"n":"Origin"},{"t":3,"p":1,"n":"Destination"}]}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"s":1,"p":1,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":6,"s":1,"p":1,"n":"Bound Data","c":[{"t":6,"p":1,"n":"XRMR - Header","c":[{"t":3,"p":1,"n":"Linked Rooms Count"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Has Image Space"},{"t":4,"p":1,"n":"Has Lighting Template"}]},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"LNAM - Lighting Template"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":8,"p":1,"n":"Linked Rooms","c":[{"t":3,"p":1,"n":"XLRM - Linked Room"}]}]},{"p":1,"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":6,"s":1,"p":1,"n":"XLIG - Light Data","c":[{"t":5,"p":1,"n":"FOV 90+\/-"},{"t":5,"p":1,"n":"Fade 1.0+\/-"},{"t":5,"p":1,"n":"End Distance Cap"},{"t":5,"p":1,"n":"Shadow Depth Bias"},{"t":5,"p":1,"n":"Near Clip"},{"t":5,"p":1,"n":"Volumetric Intensity"}]},{"t":6,"s":1,"p":1,"n":"XALP - Alpha","c":[{"t":3,"p":1,"n":"Cutoff"},{"t":3,"p":1,"n":"Base"}]},{"t":6,"s":1,"p":1,"n":"XTEL - Teleport Destination","c":[{"t":3,"p":1,"n":"Door"},{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Alarm"}]},{"t":3,"p":1,"n":"Transition Interior"}]},{"t":3,"p":1,"n":"XTNM - Teleport Loc Name"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XASP - Acoustic Restriction"},{"p":1,"n":"XATP - Activation Point"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":6,"s":1,"p":1,"n":"XRDO - Radio","c":[{"t":5,"p":1,"n":"Frequency"},{"t":5,"p":1,"n":"Min Weak Distance"},{"t":5,"p":1,"n":"Max Weak Distance"},{"t":3,"p":1,"n":"Flags"}]},{"t":6,"s":1,"p":1,"n":"XBSD - Spline","c":[{"t":5,"p":1,"n":"Slack"},{"t":5,"p":1,"n":"Thickness"},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Wind - Detached End"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XPDD - Projected Decal","c":[{"t":5,"p":1,"n":"Width Scale"},{"t":5,"p":1,"n":"Height Scale"}]},{"t":3,"p":1,"n":"XSPC - Spawn Container"},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"p":1,"n":"XLIB - Leveled Item Base Object"},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XTRI - Collision Layer"},{"t":6,"s":1,"p":1,"n":"XLOC - Lock Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Key"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Leveled Lock"}]},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"XNDP - Navigation Door Link","c":[{"t":3,"p":1,"n":"Navigation Mesh"},{"t":3,"p":1,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XCNT - Item Count"},{"t":3,"p":1,"n":"XHLT - Health %"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":8,"s":1,"p":1,"n":"Patrol","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":3,"p":1,"n":"XACT - Action Flag","c":[{"t":4,"p":1,"n":"Use Default"},{"t":4,"p":1,"n":"Activate"},{"t":4,"p":1,"n":"Open"},{"t":4,"p":1,"n":"Open by Default"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"p":1,"n":"ONAM - Open by Default"},{"t":6,"s":1,"p":1,"n":"Map Marker","c":[{"p":1,"n":"XMRK - Map Marker Data"},{"t":3,"p":1,"n":"FNAM - Map Flags","c":[{"t":4,"p":1,"n":"Visible"},{"t":4,"p":1,"n":"Can Travel To"},{"t":4,"p":1,"n":"\"Show All\" Hidden"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"TNAM - TNAM","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XATR - Attach Ref"},{"t":8,"s":1,"p":1,"n":"Spline Connection","d":1,"c":[{"t":6,"p":1,"n":"XPLK - Link","c":[{"t":3,"p":1,"n":"Ref"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"Power Grid","c":[{"t":3,"p":1,"n":"XWPG - Count"},{"t":8,"p":1,"n":"Connections","c":[{"t":6,"p":1,"n":"XWPN - Connection","c":[{"t":3,"p":1,"n":"Node 1"},{"t":3,"p":1,"n":"Node 2"},{"t":3,"p":1,"n":"Line"}]}]}]},{"t":11,"n":"XCVR - Unknown"},{"t":11,"n":"XCVL - Unknown"},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"REGN - Region","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"RCLR - Map Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":8,"s":1,"p":1,"n":"Region Areas","d":1,"c":[{"t":6,"p":1,"n":"Region Area","c":[{"t":3,"p":1,"n":"RPLI - Edge Fall-off"},{"t":7,"p":1,"n":"RPLD - Region Point List Data","c":[{"t":6,"p":1,"n":"Point","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":11,"n":"ANAM - Unknown"}]}]},{"t":10,"p":1,"n":"Region Data Entries","d":1,"c":[{"t":6,"p":1,"n":"Region Data Entry","c":[{"t":6,"p":1,"n":"RDAT - Data Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Override"}]},{"t":3,"p":1,"n":"Priority"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":3,"p":1,"n":"RDMO - Music"},{"t":7,"p":1,"n":"RDSA - Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Chance"}]}]},{"t":2,"p":1,"n":"RDMP - Map Name"},{"t":7,"p":1,"n":"RDOT - Objects","c":[{"t":6,"p":1,"n":"Object","c":[{"t":3,"p":1,"n":"Object"},{"t":3,"p":1,"n":"Parent Index"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Clustering"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Radius wrt Parent"},{"t":3,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Sink"},{"t":5,"p":1,"n":"Sink Variance"},{"t":5,"p":1,"n":"Size Variance"},{"t":6,"p":1,"n":"Angle Variance","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]}]}]},{"t":7,"p":1,"n":"RDGS - Grasses","c":[{"t":6,"p":1,"n":"Grass","c":[{"t":3,"p":1,"n":"Grass"},{"t":11,"n":"Unknown"}]}]},{"t":7,"p":1,"n":"RDWT - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":5,"p":1,"n":"RLDM - LOD Display Distance Multiplier"},{"t":5,"p":1,"n":"ANAM - Occlusion Accuracy Dist"}]}]}]},{"t":1,"p":1,"n":"RELA - Relationship","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Child"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"p":1,"n":"Secret"}]},{"t":3,"p":1,"n":"Association Type"}]}]},{"t":1,"p":1,"n":"REVB - Reverb Parameters","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Decay Time (ms)"},{"t":3,"p":1,"n":"HF Reference (Hz)"},{"t":3,"p":1,"n":"Room Filter"},{"t":3,"p":1,"n":"Room HF Filter"},{"t":3,"p":1,"n":"Reflections"},{"t":3,"p":1,"n":"Reverb Amp"},{"t":3,"p":1,"n":"Decay HF Ratio"},{"t":3,"p":1,"n":"Reflect Delay (ms), scaled"},{"t":3,"p":1,"n":"Reverb Delay (ms)"},{"t":3,"p":1,"n":"Diffusion %"},{"t":3,"p":1,"n":"Density %"},{"t":3,"n":"Unknown"}]},{"t":3,"p":1,"n":"ANAM - Reverb Class"}]},{"t":1,"p":1,"n":"RFCT - Visual Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Effect Data","c":[{"t":3,"p":1,"n":"Effect Art"},{"t":3,"p":1,"n":"Shader"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Rotate to Face Target"},{"t":4,"p":1,"n":"Attach to Camera"},{"t":4,"p":1,"n":"Inherit Rotation"}]}]}]},{"t":1,"p":1,"n":"RFGP - Reference Group","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"NNAM - Name"},{"t":3,"p":1,"n":"RNAM - Reference"},{"t":11,"n":"PNAM - Unknown"}]},{"t":1,"p":1,"n":"SCCO - Scene Collection","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Scenes","d":1,"c":[{"t":6,"p":1,"n":"Scene","c":[{"t":3,"p":1,"n":"SNAM - Scene"},{"t":6,"n":"XNAM - Unknown","c":[{"t":3,"n":"Unknown"}]}]}]},{"t":11,"n":"VNAM - Unknown"},{"t":8,"n":"Unknown","c":[{"t":6,"n":"XNAM - Unknown","c":[{"t":3,"n":"Unknown"}]}]}]},{"t":1,"p":1,"n":"SCEN - Scene","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"OnBegin"},{"t":4,"p":1,"n":"OnEnd"}]},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]},{"t":7,"p":1,"n":"Phase Fragments","c":[{"t":6,"p":1,"n":"Phase Fragment","c":[{"t":3,"p":1,"n":"Phase Flag"},{"t":3,"p":1,"n":"Phase Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Begin on Quest Start"},{"t":4,"p":1,"n":"Stop on Quest End"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"Repeat Conditions While True"},{"t":4,"p":1,"n":"Interruptible"}]},{"t":8,"s":1,"p":1,"n":"Phases","d":1,"c":[{"t":6,"p":1,"n":"Phase","c":[{"p":1,"n":"HNAM - Marker Phase Start"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":6,"p":1,"n":"Start Conditions","c":[{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker Start Conditions"},{"t":6,"p":1,"n":"Completion Conditions","c":[{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker Completion Conditions"},{"t":3,"p":1,"n":"WNAM - Editor Width"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":6,"p":1,"n":"SCQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Start"},{"t":3,"p":1,"n":"On Completion"}]},{"p":1,"n":"HNAM - Marker Phase End"}]}]},{"t":8,"s":1,"p":1,"n":"Actors","d":1,"c":[{"t":6,"p":1,"n":"Actor","c":[{"t":3,"p":1,"n":"ALID - Alias ID"},{"t":3,"p":1,"n":"LNAM - Flags","c":[{"t":4,"p":1,"n":"No Player Activation"},{"t":4,"p":1,"n":"Optional"}]},{"t":3,"p":1,"n":"DNAM - Behaviour Flags","c":[{"t":4,"p":1,"n":"Death Pause (unsused)"},{"t":4,"p":1,"n":"Death End"},{"t":4,"p":1,"n":"Combat Pause"},{"t":4,"p":1,"n":"Combat End"},{"t":4,"p":1,"n":"Dialogue Pause"},{"t":4,"p":1,"n":"Dialogue End"},{"t":4,"p":1,"n":"OBS_COM Pause"},{"t":4,"p":1,"n":"OBS_COM End"}]}]}]},{"t":8,"s":1,"p":1,"n":"Actions","d":1,"c":[{"t":6,"p":1,"n":"Action","c":[{"t":3,"p":1,"n":"ANAM - Type"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":3,"p":1,"n":"ALID - Alias ID"},{"t":3,"p":1,"n":"INAM - Index"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Face Target"},{"t":4,"p":1,"n":"Looping"},{"t":4,"p":1,"n":"Headtrack Player"}]},{"t":3,"p":1,"n":"SNAM - Start Phase"},{"t":3,"p":1,"n":"ENAM - End Phase"},{"t":5,"p":1,"n":"SNAM - Timer - Max Seconds"},{"t":3,"p":1,"n":"SCQS - Set Parent Quest Stage"},{"t":5,"p":1,"n":"TNAM - Timer - Min Seconds"},{"t":11,"n":"STSC - Unknown"},{"t":8,"p":1,"n":"Start Scenes","c":[{"t":6,"p":1,"n":"Start Scene","c":[{"t":3,"p":1,"n":"LCEP - Scene"},{"t":3,"p":1,"n":"INTT - Phase Index"},{"t":2,"p":1,"n":"SSPN - Start Phase for Scene"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":3,"p":1,"n":"PTOP - Player Positive Response"},{"t":3,"p":1,"n":"NTOP - Player Negative Response"},{"t":3,"p":1,"n":"NETO - Player Neutral Response"},{"t":3,"p":1,"n":"QTOP - Player Question Response"},{"t":3,"p":1,"n":"VENC - Player Positive Dialogue Subtype"},{"t":3,"p":1,"n":"PLVD - Player Negative Dialogue Subtype"},{"t":3,"p":1,"n":"JOUT - Player Neutral Dialogue Subtype"},{"t":3,"p":1,"n":"DALC - Player Question Dialogue Subtype"},{"t":7,"p":1,"n":"DTID - NPC Headtracking","c":[{"t":3,"p":1,"n":"Actor ID"}]},{"t":3,"p":1,"n":"NPOT - NPC Positive Response"},{"t":3,"p":1,"n":"NNGT - NPC Negative Response"},{"t":3,"p":1,"n":"NNUT - NPC Neutral Response"},{"t":3,"p":1,"n":"NQUT - NPC Question Response"},{"t":3,"p":1,"n":"NPOS - NPC Positive Dialogue Subtype"},{"t":3,"p":1,"n":"NNGS - NPC Negative Dialogue Subtype"},{"t":3,"p":1,"n":"NNUS - NPC Neutral Dialogue Subtype"},{"t":3,"p":1,"n":"NQUS - NPC Question Dialogue Subtype"},{"t":3,"p":1,"n":"DTGT - Dialogue Target Actor"},{"t":8,"p":1,"n":"Packages","c":[{"t":3,"p":1,"n":"PNAM - Package"}]},{"t":3,"p":1,"n":"DATA - Topic"},{"p":1,"n":"End Scene Say Greeting"},{"t":3,"p":1,"n":"Play Sound"},{"t":5,"p":1,"n":"DMAX - Looping - Max"},{"t":5,"p":1,"n":"DMIN - Looping - Min"},{"t":6,"p":1,"n":"CRIS - Camera","c":[{"t":5,"p":1,"n":"FOV On Player Camera"},{"t":5,"p":1,"n":"Rate Of Camera Change"}]},{"t":3,"p":1,"n":"DEMO - Emotion Type"},{"t":3,"p":1,"n":"DEVA - Emotion Value"},{"t":7,"p":1,"n":"HTID - Player Headtracking","c":[{"t":3,"p":1,"n":"Actor ID"}]},{"t":3,"p":1,"n":"VENC - Dialogue Subtype"},{"t":3,"p":1,"n":"PNAM - AnimArchType"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"},{"p":1,"n":"ANAM - End Marker"}]}]},{"t":3,"p":1,"n":"PNAM - Quest"},{"t":3,"p":1,"n":"INAM - Last Action Index"},{"t":11,"n":"VNAM - Unknown"},{"t":5,"p":1,"n":"CNAM - Camera Distance Override"},{"t":5,"p":1,"n":"ACTV - Dialogue Distance Override"},{"t":5,"p":1,"n":"CRIS - FOV Override"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"SCQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Begin"},{"t":3,"p":1,"n":"On End"}]},{"t":2,"p":1,"n":"NNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Template Scene"},{"t":3,"p":1,"n":"XNAM - Index"}]},{"t":1,"p":1,"n":"SCOL - Static Collection","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":10,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"ONAM - Static"},{"t":7,"p":1,"n":"DATA - Placements","c":[{"t":6,"p":1,"n":"Placement","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Scale"}]}]}]}]}]},{"t":1,"p":1,"n":"SCSN - Audio Category Snapshot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Priority"},{"t":8,"s":1,"p":1,"n":"Category Multipliers","d":1,"c":[{"t":6,"p":1,"n":"CNAM - Category Multiplier","c":[{"t":3,"p":1,"n":"Categoty"},{"t":5,"p":1,"n":"Multiplier"}]}]}]},{"t":1,"p":1,"n":"SMBN - Story Manager Branch Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Previous Sibling "},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Warn if no child quest started"}]},{"t":11,"n":"XNAM - Unknown"}]},{"t":1,"p":1,"n":"SMEN - Story Manager Event Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Previous Sibling "},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Warn if no child quest started"}]},{"t":11,"n":"XNAM - Unknown"},{"t":2,"p":1,"n":"ENAM - Type"}]},{"t":1,"p":1,"n":"SMQN - Story Manager Quest Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Previous Sibling "},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Flags","c":[{"t":3,"p":1,"n":"Node Flags","c":[{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Warn if no child quest started"}]},{"t":3,"p":1,"n":"Quest Flags","c":[{"t":4,"p":1,"n":"Do all before repeating"},{"t":4,"p":1,"n":"Shares event"},{"t":4,"p":1,"n":"Num quests to run"}]}]},{"t":3,"p":1,"n":"XNAM - Max concurrent quests"},{"t":3,"p":1,"n":"MNAM - Num quests to run"},{"t":5,"p":1,"n":"HNAM - Hours until reset"},{"t":3,"n":"QNAM - Quest Count"},{"t":10,"p":1,"n":"Quests","d":1,"c":[{"t":6,"p":1,"n":"Quest","c":[{"t":3,"p":1,"n":"NNAM - Quest"},{"t":11,"n":"FNAM - Unknown"},{"t":5,"p":1,"n":"RNAM - Hours until reset"}]}]}]},{"t":1,"p":1,"n":"SNCT - Sound Category","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Mute When Submerged"},{"t":4,"p":1,"n":"Should Appear on Menu"}]},{"t":3,"p":1,"n":"PNAM - Parent Category"},{"t":3,"p":1,"n":"ONAM - Menu Slider Category"},{"t":3,"p":1,"n":"VNAM - Static Volume Multiplier"},{"t":3,"p":1,"n":"UNAM - Default Menu Value"},{"t":5,"p":1,"n":"MNAM - Min Frequency Multiplier"},{"t":5,"p":1,"n":"CNAM - Sidechain Target Multiplier"}]},{"t":1,"p":1,"n":"SNDR - Sound Descriptor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"NNAM - Notes"},{"t":3,"p":1,"n":"CNAM - Descriptor Type"},{"t":3,"p":1,"n":"GNAM - Category"},{"t":3,"p":1,"n":"SNAM - Alternate Sound For"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"Sound Files","c":[{"t":2,"p":1,"n":"ANAM - File Name"}]}]},{"t":3,"p":1,"n":"ONAM - Output Model"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"LNAM - Values","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Looping"},{"t":3,"p":1,"n":"Sidechain"},{"t":3,"p":1,"n":"Rumble Send Value = (Small \/ 7) + ((Big \/ 7) * 16)"}]},{"t":6,"s":1,"p":1,"n":"Values","c":[{"t":3,"p":1,"n":"% Frequency Shift"},{"t":3,"p":1,"n":"% Frequency Variance"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"db Variance"},{"t":3,"p":1,"n":"Static Attenuation (db)"}]},{"t":3,"p":1,"n":"Base Descriptor"},{"t":8,"s":1,"p":1,"n":"Descriptors","d":1,"c":[{"t":3,"p":1,"n":"DNAM - Descriptor"}]},{"t":3,"n":"ITMC - Count"},{"t":10,"p":1,"n":"Rates of Fire","d":1,"c":[{"t":6,"p":1,"n":"Sound","c":[{"p":1,"n":"ITMS - Marker Start"},{"t":3,"p":1,"n":"INTV - RoF (RPM)"},{"t":2,"p":1,"n":"FNAM - File"},{"p":1,"n":"ITME - Marker End"}]}]}]},{"t":1,"p":1,"n":"SOPM - Sound Output Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"NAM1 - Data","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Attenuates With Distance"},{"t":4,"p":1,"n":"Allows Rumble"}]},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reverb Send %"}]},{"t":3,"p":1,"n":"MNAM - Type"},{"t":3,"p":1,"n":"VNAM - Static Attenuation"},{"t":6,"s":1,"p":1,"n":"ONAM - Output Values","c":[{"t":7,"p":1,"n":"Channels","c":[{"t":6,"p":1,"n":"Channel 0","c":[{"t":3,"p":1,"n":"FL"},{"t":3,"p":1,"n":"FR"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"SL"},{"t":3,"p":1,"n":"SR"}]},{"t":6,"p":1,"n":"Channel 1","c":[{"t":3,"p":1,"n":"FL"},{"t":3,"p":1,"n":"FR"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"SL"},{"t":3,"p":1,"n":"SR"}]},{"t":6,"p":1,"n":"Channel 2? (unused)","c":[{"t":3,"p":1,"n":"FL"},{"t":3,"p":1,"n":"FR"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"SL"},{"t":3,"p":1,"n":"SR"}]}]}]},{"t":6,"s":1,"p":1,"n":"ATTN - Attenuation Values","c":[{"t":5,"p":1,"n":"Fade In Distance - Start"},{"t":5,"p":1,"n":"Fade In Distance - End"},{"t":5,"p":1,"n":"Fade Out Distance - Start"},{"t":5,"p":1,"n":"Fade Out Distance - End"},{"t":6,"p":1,"n":"Fade In Curve","c":[{"t":3,"p":1,"n":"Value 1"},{"t":3,"p":1,"n":"Value 2"},{"t":3,"p":1,"n":"Value 3"},{"t":3,"p":1,"n":"Value 4"}]},{"t":6,"p":1,"n":"Fade Out Curve","c":[{"t":3,"p":1,"n":"Value 1"},{"t":3,"p":1,"n":"Value 2"},{"t":3,"p":1,"n":"Value 3"},{"t":3,"p":1,"n":"Value 4"}]}]},{"t":3,"p":1,"n":"ENAM - Effect Chain"}]},{"t":1,"p":1,"n":"SOUN - Sound Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SDSC - Sound Descriptor"},{"t":6,"s":1,"p":1,"n":"REPT - Repeat","c":[{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Max Time"},{"t":3,"p":1,"n":"Stackable"}]}]},{"t":1,"p":1,"n":"SPEL - Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Manual Cost Calc"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"PC Start Spell"},{"t":4,"n":"Unknown 19"},{"t":4,"p":1,"n":"Area Effect Ignores LOS"},{"t":4,"p":1,"n":"Ignore Resistance"},{"t":4,"p":1,"n":"No Absorb\/Reflect"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"No Dual Cast Modification"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Casting Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SPGD - Shader Particle Geometry","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":5,"p":1,"n":"Gravity Velocity"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Rotation Velocity"},{"t":5,"p":1,"n":"Particle Size X"},{"t":5,"p":1,"n":"Particle Size Y"},{"t":5,"p":1,"n":"Center Offset Min"},{"t":5,"p":1,"n":"Center Offset Max"},{"t":5,"p":1,"n":"Initial Rotation Range"},{"t":3,"p":1,"n":"# of Subtextures X"},{"t":3,"p":1,"n":"# of Subtextures Y"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Box Size"},{"t":5,"p":1,"n":"Particle Density"}]},{"t":2,"p":1,"n":"MNAM - Particle Texture"}]},{"t":1,"p":1,"n":"STAG - Animation Sound Tag Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"TNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":2,"p":1,"n":"Action"}]}]}]},{"t":1,"p":1,"n":"STAT - Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - Direction Material","c":[{"t":5,"p":1,"n":"Max Angle (30-120)"},{"t":3,"p":1,"n":"Material"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]},{"t":7,"p":1,"n":"MNAM - Distant LOD","c":[{"t":6,"p":1,"n":"Level 0","c":[{"t":2,"p":1,"n":"Mesh"}]},{"t":6,"p":1,"n":"Level 1","c":[{"t":2,"p":1,"n":"Mesh"}]},{"t":6,"p":1,"n":"Level 2","c":[{"t":2,"p":1,"n":"Mesh"}]},{"t":6,"p":1,"n":"Level 3","c":[{"t":2,"p":1,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"TERM - Terminal","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"NAM0 - Header Text"},{"t":2,"p":1,"n":"WNAM - Welcome Text"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags","c":[{"t":4,"p":1,"n":"Sit 0"},{"t":4,"p":1,"n":"Sit 1"},{"t":4,"p":1,"n":"Sit 2"},{"t":4,"p":1,"n":"Sit 3"},{"t":4,"p":1,"n":"Sit 4"},{"t":4,"p":1,"n":"Sit 5"},{"t":4,"p":1,"n":"Sit 6"},{"t":4,"p":1,"n":"Sit 7"},{"t":4,"p":1,"n":"Sit 8"},{"t":4,"p":1,"n":"Sit 9"},{"t":4,"p":1,"n":"Sit 10"},{"t":4,"p":1,"n":"Sit 11"},{"t":4,"p":1,"n":"Sit 12"},{"t":4,"p":1,"n":"Sit 13"},{"t":4,"p":1,"n":"Sit 14"},{"t":4,"p":1,"n":"Sit 15"},{"t":4,"p":1,"n":"Sit 16"},{"t":4,"p":1,"n":"Sit 17"},{"t":4,"p":1,"n":"Sit 18"},{"t":4,"p":1,"n":"Sit 19"},{"t":4,"p":1,"n":"Sit 20"},{"t":4,"p":1,"n":"Sit 21"},{"t":4,"p":1,"n":"Sit 22"},{"t":4,"p":1,"n":"Sit 23"},{"t":4,"n":"Unknown 25"},{"t":4,"p":1,"n":"Disables Activation"},{"t":4,"p":1,"n":"Is Perch"},{"t":4,"p":1,"n":"Must Exit to Talk"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":11,"n":"WBDT - Workbench Data (unused)"},{"t":2,"p":1,"n":"XMRK - Marker Model"},{"t":7,"p":1,"n":"SNAM - Marker Paramaters","c":[{"t":6,"p":1,"n":"Marker","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"},{"t":5,"p":1,"n":"Rotation Z"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Entry Types"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"BSIZ - Count"},{"t":8,"s":1,"p":1,"n":"Body Text","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":2,"p":1,"n":"BTXT - Text"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":3,"n":"ISIZ - Count"},{"t":8,"s":1,"p":1,"n":"Menu Items","d":1,"c":[{"t":6,"p":1,"n":"Menu Item","c":[{"t":2,"p":1,"n":"ITXT - Item Text"},{"t":2,"p":1,"n":"RNAM - Response Text"},{"t":3,"p":1,"n":"ANAM - Type"},{"t":3,"p":1,"n":"ITID - Item ID"},{"t":2,"p":1,"n":"UNAM - Display Text"},{"t":2,"p":1,"n":"VNAM - Show Image"},{"t":3,"p":1,"n":"TNAM - Submenu"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"TREE - Tree","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer"},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Tree Data","c":[{"t":5,"p":1,"n":"Trunk Flexibility"},{"t":5,"p":1,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"TRNS - Transform","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":5,"p":1,"n":"Scale"},{"t":5,"p":1,"n":"Zoom Min"},{"t":5,"p":1,"n":"Zoom Max"}]}]},{"t":1,"p":1,"n":"TXST - Texture Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Textures (RGB\/A)","c":[{"t":2,"p":1,"n":"TX00 - Difuse"},{"t":2,"p":1,"n":"TX01 - Normal\/Gloss"},{"t":2,"p":1,"n":"TX03 - Glow"},{"t":2,"p":1,"n":"TX04 - Height"},{"t":2,"p":1,"n":"TX05 - Environment"},{"t":2,"p":1,"n":"TX02 - Wrinkles"},{"t":2,"p":1,"n":"TX06 - Multilayer"},{"t":2,"p":1,"n":"TX07 - Smooth Spec"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Parallax"},{"t":4,"p":1,"n":"Alpha - Blending"},{"t":4,"p":1,"n":"Alpha - Testing"},{"t":4,"p":1,"n":"No Subtextures"}]},{"t":3,"p":1,"n":"Alpha Threshold?"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"No Specular Map"},{"t":4,"p":1,"n":"Facegen Textures"},{"t":4,"p":1,"n":"Has Model Space Normal Map"}]},{"t":2,"p":1,"n":"MNAM - Material"}]},{"t":1,"p":1,"n":"VTYP - Voice Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Allow Default Dialog"},{"t":4,"p":1,"n":"Female"}]}]},{"t":1,"p":1,"n":"WATR - Water","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"ANAM - Opacity (unused)"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Causes Damage"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Enable Flowmap"},{"t":4,"p":1,"n":"Blend Normals"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"}]},{"t":3,"p":1,"n":"TNAM - Material (unused)"},{"t":3,"p":1,"n":"SNAM - Open Sound"},{"t":3,"p":1,"n":"XNAM - Consume Spell"},{"t":3,"p":1,"n":"YNAM - Contact Spell"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":11,"n":"DATA - Unused"},{"t":6,"s":1,"p":1,"n":"DNAM - Visual Data","c":[{"t":6,"p":1,"n":"Fog Properties","c":[{"t":5,"p":1,"n":"Depth Amount"},{"t":6,"p":1,"n":"Shallow Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Deep Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Shallow Range"},{"t":5,"p":1,"n":"Color Deep Range"},{"t":5,"p":1,"n":"Shallow Alpha"},{"t":5,"p":1,"n":"Deep Alpha"},{"t":5,"p":1,"n":"Alpha Shallow Range"},{"t":5,"p":1,"n":"Alpha Deep Range"},{"t":6,"p":1,"n":"Underwater Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Underwater Fog Amount"},{"t":5,"p":1,"n":"Underwater Near Fog"},{"t":5,"p":1,"n":"Underwater Far Fog"}]},{"t":6,"p":1,"n":"Physical Properties","c":[{"t":5,"p":1,"n":"Normal Magnitude"},{"t":5,"p":1,"n":"Shallow Normal Falloff"},{"t":5,"p":1,"n":"Deep Normal Falloff"},{"t":5,"p":1,"n":"Reflectivity Amount"},{"t":5,"p":1,"n":"Fresnel Amount"},{"t":5,"p":1,"n":"Surface Effect Falloff"},{"t":6,"p":1,"n":"Displacement Simulator","c":[{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Velocity"},{"t":5,"p":1,"n":"Falloff"},{"t":5,"p":1,"n":"Dampener"},{"t":5,"p":1,"n":"Starting Size"}]},{"t":6,"p":1,"n":"Reflection Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular Properties","c":[{"t":5,"p":1,"n":"Sun Specular Power"},{"t":5,"p":1,"n":"Sun Specular Magnitude"},{"t":5,"p":1,"n":"Sun Sparkle Power"},{"t":5,"p":1,"n":"Sun Sparkle Magnitude"},{"t":5,"p":1,"n":"Interior Specular Radius"},{"t":5,"p":1,"n":"Interior Specular Brightness"},{"t":5,"p":1,"n":"Interior Specular Power"}]},{"t":6,"p":1,"n":"Noise Properties","c":[{"t":5,"p":1,"n":"Layer 1 - Wind Direction"},{"t":5,"p":1,"n":"Layer 2 - Wind Direction"},{"t":5,"p":1,"n":"Layer 3 - Wind Direction"},{"t":5,"p":1,"n":"Layer 1 - Wind Speed"},{"t":5,"p":1,"n":"Layer 2 - Wind Speed"},{"t":5,"p":1,"n":"Layer 3 - Wind Speed"},{"t":5,"p":1,"n":"Layer 1 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 2 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 3 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 1 - UV Scale"},{"t":5,"p":1,"n":"Layer 2 - UV Scale"},{"t":5,"p":1,"n":"Layer 3 - UV Scale"},{"t":5,"p":1,"n":"Layer 1 - Noise Falloff"},{"t":5,"p":1,"n":"Layer 2 - Noise Falloff"},{"t":5,"p":1,"n":"Layer 3 - Noise Falloff"}]},{"t":6,"p":1,"n":"Silt Properties","c":[{"t":5,"p":1,"n":"Silt Amount"},{"t":6,"p":1,"n":"Light Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Dark Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"Screen Space Reflections"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"s":1,"p":1,"n":"NAM0 - Linear Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"NAM1 - Angular Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"NAM2 - Layer 1 Noise Texture"},{"t":2,"p":1,"n":"NAM3 - Layer 2 Noise Texture"},{"t":2,"p":1,"n":"NAM4 - Layer 3 Noise Texture"}]},{"t":1,"p":1,"n":"WEAP - Weapon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"INRD - Instance Naming"},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]},{"t":3,"p":1,"n":"NNAM - Embedded Weapon Mod"},{"t":6,"s":1,"p":1,"n":"1st Person Model","c":[{"t":2,"p":1,"n":"MOD4 - Model FileName"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"},{"t":5,"p":1,"n":"MO4C - Color Remapping Index"},{"t":11,"n":"MO4F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Ammo"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Reload Speed"},{"t":5,"p":1,"n":"Reach"},{"t":5,"p":1,"n":"Min Range"},{"t":5,"p":1,"n":"Max Range"},{"t":5,"p":1,"n":"Attack Delay"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Damage - OutOfRange Mult"},{"t":3,"p":1,"n":"On Hit"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Resist"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Ignores Normal Weapon Resistance"},{"t":4,"p":1,"n":"Automatic (unused)"},{"t":4,"p":1,"n":"Has Scope (unused)"},{"t":4,"p":1,"n":"Can't Drop"},{"t":4,"p":1,"n":"Hide Backpack (unused)"},{"t":4,"p":1,"n":"Embedded Weapon (unused)"},{"t":4,"p":1,"n":"Don't Use 1st Person IS Anim (unused)"},{"t":4,"p":1,"n":"Non-playable"}]},{"t":3,"p":1,"n":"Capacity"},{"t":3,"p":1,"n":"Animation Type"},{"t":5,"p":1,"n":"Damage - Secondary"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Damage - Base"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Sound - Attack"},{"t":3,"p":1,"n":"Sound - Attack 2D"},{"t":3,"p":1,"n":"Sound - Attack Loop"},{"t":3,"p":1,"n":"Sound - Attack Fail"},{"t":3,"p":1,"n":"Sound - Idle"},{"t":3,"p":1,"n":"Sound - Equip Sound"},{"t":3,"p":1,"n":"Sound - UnEquip Sound"},{"t":3,"p":1,"n":"Sound - Fast Equip Sound"},{"t":3,"p":1,"n":"Accuracy Bonus"},{"t":5,"p":1,"n":"Animation Attack Seconds"},{"t":5,"p":1,"n":"Action Point Cost"},{"t":5,"p":1,"n":"Full Power Seconds"},{"t":5,"p":1,"n":"Min Power Per Shot"},{"t":3,"p":1,"n":"Stagger"}]},{"t":6,"s":1,"p":1,"n":"FNAM - ","c":[{"t":5,"p":1,"n":"Animation Fire Seconds"},{"t":5,"p":1,"n":"Rumble - Left Motor Strength"},{"t":5,"p":1,"n":"Rumble - Right Motor Strength"},{"t":5,"p":1,"n":"Rumble - Duration"},{"t":5,"p":1,"n":"Animation Reload Seconds"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Sighted Transition Seconds"},{"t":3,"p":1,"n":"# Projectiles"},{"t":3,"p":1,"n":"Override Projectile"},{"t":3,"p":1,"n":"Pattern"},{"t":3,"p":1,"n":"Rumble - Peroid (ms)"}]},{"t":6,"s":1,"p":1,"n":"CRDT - Critical Data","c":[{"t":5,"p":1,"n":"Crit Damage Mult"},{"t":5,"p":1,"n":"Crit Charge Bonus"},{"t":3,"p":1,"n":"Crit Effect"}]},{"t":3,"p":1,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"LNAM - NPC Add Ammo List"},{"t":3,"p":1,"n":"WAMD - Aim Model"},{"t":3,"p":1,"n":"WZMD - Zoom"},{"t":3,"p":1,"n":"CNAM - Template"},{"t":7,"p":1,"n":"DAMA - Damage Types","c":[{"t":6,"p":1,"n":"Damage Type","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Amount"}]}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":3,"p":1,"n":"MASE - Melee Speed"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"n":"Large References","c":[{"t":11,"n":"RNAM - Unknown"}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":3,"p":1,"n":"LTMP - Interior Lighting"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XLCN - Location"},{"t":6,"s":1,"p":1,"n":"Parent","c":[{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":6,"p":1,"n":"PNAM - PNAM","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Use Land Data"},{"t":4,"p":1,"n":"Use LOD Data"},{"t":4,"p":1,"n":"Use Map Data"},{"t":4,"p":1,"n":"Use Water Data"},{"t":4,"p":1,"n":"Use Climate Data"},{"t":4,"p":1,"n":"Use Image Space Data (unused)"},{"t":4,"p":1,"n":"Use Sky Cell"}]},{"t":11,"n":"Unknown"}]}]},{"t":3,"p":1,"n":"CNAM - Climate"},{"t":3,"p":1,"n":"NAM2 - Water"},{"t":3,"p":1,"n":"NAM3 - LOD Water Type"},{"t":5,"p":1,"n":"NAM4 - LOD Water Height"},{"t":6,"s":1,"p":1,"n":"DNAM - Land Data","c":[{"t":5,"p":1,"n":"Default Land Height"},{"t":5,"p":1,"n":"Default Water Height"}]},{"t":2,"p":1,"n":"ICON - Map Image"},{"t":6,"s":1,"p":1,"n":"Cloud Model","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"MNAM - Map Data","c":[{"t":6,"p":1,"n":"Usable Dimensions","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Cell Coordinates","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"SE Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]}]},{"t":6,"s":1,"p":1,"n":"ONAM - World Map Offset Data","c":[{"t":5,"p":1,"n":"World Map Scale"},{"t":5,"p":1,"n":"Cell X Offset"},{"t":5,"p":1,"n":"Cell Y Offset"},{"t":5,"p":1,"n":"Cell Z Offset"}]},{"t":5,"p":1,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Small World"},{"t":4,"p":1,"n":"Can't Fast Travel"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"No LOD Water"},{"t":4,"p":1,"n":"No Landscape"},{"t":4,"p":1,"n":"No Sky"},{"t":4,"p":1,"n":"Fixed Dimensions"},{"t":4,"p":1,"n":"No Grass"}]},{"t":6,"s":1,"p":1,"n":"Object Bounds","c":[{"t":6,"p":1,"n":"NAM0 - Min","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"NAM9 - Max","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":3,"p":1,"n":"ZNAM - Music"},{"t":2,"p":1,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":2,"p":1,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"p":1,"n":"UNAM - HD LOD Normal Texture"},{"t":6,"s":1,"p":1,"n":"World Default Level Data","c":[{"t":6,"p":1,"n":"WLEV - Dimension","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Size","c":[{"t":3,"p":1,"n":"Width"},{"t":3,"p":1,"n":"Height"}]}]},{"t":11,"p":1,"n":"WLEV - Data"}]},{"t":11,"n":"OFST - Offset Data"},{"t":11,"n":"CLSZ - Unknown"}]},{"t":1,"p":1,"n":"WTHR - Weather","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"p":1,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"p":1,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"p":1,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"p":1,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"p":1,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"p":1,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"p":1,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"p":1,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"p":1,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"p":1,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"p":1,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"p":1,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"p":1,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"p":1,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"p":1,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"p":1,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"p":1,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"p":1,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"p":1,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"p":1,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"p":1,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"p":1,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"p":1,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"p":1,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"p":1,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"p":1,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"p":1,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"p":1,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Precipitation Type"},{"t":3,"p":1,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"s":1,"p":1,"n":"Cloud Speed","c":[{"t":7,"p":1,"n":"RNAM - Y Speed","c":[{"t":3,"p":1,"n":"Layer"}]},{"t":7,"p":1,"n":"QNAM - X Speed","c":[{"t":3,"p":1,"n":"Layer"}]}]},{"t":7,"p":1,"n":"PNAM - Cloud Colors","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"p":1,"n":"JNAM - Cloud Alphas","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":5,"p":1,"n":"Sunrise"},{"t":5,"p":1,"n":"Day"},{"t":5,"p":1,"n":"Sunset"},{"t":5,"p":1,"n":"Night"},{"t":5,"p":1,"n":"EarlySunrise"},{"t":5,"p":1,"n":"LateSunrise"},{"t":5,"p":1,"n":"EarlySunset"},{"t":5,"p":1,"n":"LateSunset"}]}]},{"t":6,"s":1,"p":1,"n":"NAM0 - Weather Colors","c":[{"t":6,"p":1,"n":"Sky-Upper","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"EarlySunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"LateSunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"EarlySunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"LateSunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sunlight","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Stars","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky-Lower","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Horizon","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Effect Lighting","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Diffuse","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky Statics","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Water Multiplier","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Moon Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near High","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far High","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"n":"NAM4 - Unknown","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"FNAM - Fog Distance","c":[{"t":5,"p":1,"n":"Day - Near"},{"t":5,"p":1,"n":"Day - Far"},{"t":5,"p":1,"n":"Night - Near"},{"t":5,"p":1,"n":"Night - Far"},{"t":5,"p":1,"n":"Day - Power"},{"t":5,"p":1,"n":"Night - Power"},{"t":5,"p":1,"n":"Day - Max"},{"t":5,"p":1,"n":"Night - Max"},{"t":5,"p":1,"n":"Day - Near Height Mid"},{"t":5,"p":1,"n":"Day - Near Height Range"},{"t":5,"p":1,"n":"Night - Near Height Mid"},{"t":5,"p":1,"n":"Night - Near Height Range"},{"t":5,"p":1,"n":"Day - High Density Scale"},{"t":5,"p":1,"n":"Night - High Density Scale"},{"t":5,"p":1,"n":"Day - Far Height Mid"},{"t":5,"p":1,"n":"Day - Far Height Range"},{"t":5,"p":1,"n":"Night - Far Height Mid"},{"t":5,"p":1,"n":"Night - Far Height Range"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Trans Delta"},{"t":3,"p":1,"n":"Sun Glare"},{"t":3,"p":1,"n":"Sun Damage"},{"t":3,"p":1,"n":"Precipitation - Begin Fade In"},{"t":3,"p":1,"n":"Precipitation - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"p":1,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Frequency"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Weather - Pleasant"},{"t":4,"p":1,"n":"Weather - Cloudy"},{"t":4,"p":1,"n":"Weather - Rainy"},{"t":4,"p":1,"n":"Weather - Snow"},{"t":4,"p":1,"n":"Sky Statics - Always Visible"},{"t":4,"p":1,"n":"Sky Statics - Follows Sun Position"}]},{"t":6,"p":1,"n":"Lightning Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Visual Effect - Begin"},{"t":3,"p":1,"n":"Visual Effect - End"},{"t":3,"p":1,"n":"Wind Direction"},{"t":3,"p":1,"n":"Wind Direction Range"}]},{"t":3,"p":1,"n":"NAM1 - Disabled Cloud Layers","c":[{"t":4,"p":1,"n":"0"},{"t":4,"p":1,"n":"1"},{"t":4,"p":1,"n":"2"},{"t":4,"p":1,"n":"3"},{"t":4,"p":1,"n":"4"},{"t":4,"p":1,"n":"5"},{"t":4,"p":1,"n":"6"},{"t":4,"p":1,"n":"7"},{"t":4,"p":1,"n":"8"},{"t":4,"p":1,"n":"9"},{"t":4,"p":1,"n":"10"},{"t":4,"p":1,"n":"11"},{"t":4,"p":1,"n":"12"},{"t":4,"p":1,"n":"13"},{"t":4,"p":1,"n":"14"},{"t":4,"p":1,"n":"15"},{"t":4,"p":1,"n":"16"},{"t":4,"p":1,"n":"17"},{"t":4,"p":1,"n":"18"},{"t":4,"p":1,"n":"19"},{"t":4,"p":1,"n":"20"},{"t":4,"p":1,"n":"21"},{"t":4,"p":1,"n":"22"},{"t":4,"p":1,"n":"23"},{"t":4,"p":1,"n":"24"},{"t":4,"p":1,"n":"25"},{"t":4,"p":1,"n":"26"},{"t":4,"p":1,"n":"27"},{"t":4,"p":1,"n":"28"},{"t":4,"p":1,"n":"29"},{"t":4,"p":1,"n":"30"},{"t":4,"p":1,"n":"31"}]},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Sky Statics","d":1,"c":[{"t":3,"p":1,"n":"TNAM - Static"}]},{"t":6,"s":1,"p":1,"n":"IMSP - Image Spaces","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"},{"t":3,"p":1,"n":"EarlySunrise"},{"t":3,"p":1,"n":"LateSunrise"},{"t":3,"p":1,"n":"EarlySunset"},{"t":3,"p":1,"n":"LateSunset"}]},{"t":6,"s":1,"p":1,"n":"WGDR - God Rays","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"},{"t":3,"p":1,"n":"EarlySunrise"},{"t":3,"p":1,"n":"LateSunrise"},{"t":3,"p":1,"n":"EarlySunset"},{"t":3,"p":1,"n":"LateSunset"}]},{"t":6,"s":1,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"DALC - Sunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Day","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Sunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Night","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - EarlySunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - LateSunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - EarlySunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - LateSunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":6,"s":1,"p":1,"n":"Aurora","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":3,"p":1,"n":"GNAM - Sun Glare Lens Flare"},{"t":6,"s":1,"p":1,"n":"UNAM - Magic","c":[{"t":3,"p":1,"n":"On Lightning Strike - Spell"},{"t":5,"p":1,"n":"On Lightning Strike - Threshold"},{"t":3,"p":1,"n":"On Weather Activate - Spell"},{"t":5,"p":1,"n":"On Weather Activate - Threshold"},{"t":11,"n":"Unknown"}]},{"t":5,"p":1,"n":"VNAM - Volatility Mult"},{"t":5,"p":1,"n":"WNAM - Visibility Mult"}]},{"t":1,"p":1,"n":"ZOOM - Zoom","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"GNAM - Data","c":[{"t":5,"p":1,"n":"FOV Mult"},{"t":3,"p":1,"n":"Overlay"},{"t":3,"p":1,"n":"Imagespace Modifier"},{"t":6,"p":1,"n":"Camera Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"ACHR - Placed NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":6,"s":1,"p":1,"n":"Patrol Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":3,"p":1,"n":"TNAM - Topic"}]},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XCNT - Count"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":3,"p":1,"n":"XHLT - Health %"},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":8,"s":1,"p":1,"n":"Spline Connection","d":1,"c":[{"t":6,"p":1,"n":"XPLK - Link","c":[{"t":3,"p":1,"n":"Ref"},{"t":11,"n":"Unknown"}]}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIBS - Ignored By Sandbox"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]}]},"name":"Smash.All","hash":"99238B45","color":128}
\ No newline at end of file
diff --git a/frontend/settings/Fallout4/Smash.All.old.json b/frontend/settings/Fallout4/Smash.All.old.json
new file mode 100644
index 0000000..1e40a14
--- /dev/null
+++ b/frontend/settings/Fallout4/Smash.All.old.json
@@ -0,0 +1 @@
+{"records":"ACHR,ACTI,ADDN,AECH,ALCH,AMDL,AMMO,ANIO,AORU,ARMA,ARMO,ARTO,ASPC,ASTP,AVIF,BNDS,BOOK,BPTD,CAMS,CELL,CLAS,CLFM,CLMT,CMPO,COBJ,COLL,CONT,CPTH,CSTY,DEBR,DFOB,DIAL,DLBR,DLVW,DMGT,DOOR,DUAL,ECZN,EFSH,ENCH,EQUP,EXPL,FACT,FLOR,FLST,FSTP,FSTS,FURN,GDRY,GLOB,GMST,GRAS,HAZD,HDPT,IDLM,IMAD,IMGS,INFO,INGR,INNR,IPCT,IPDS,KEYM,KSSM,KYWD,LAND,LAYR,LCRT,LENS,LGTM,LIGH,LSCR,LTEX,LVLI,LVLN,LVSP,MATO,MATT,MESG,MGEF,MISC,MOVT,MSTT,MSWP,MUSC,MUST,NOTE,NPC_,OMOD,OTFT,PACK,PARW,PBAR,PBEA,PCON,PERK,PFLA,PGRE,PHZD,PKIN,PMIS,PROJ,QUST,REFR,REGN,RELA,REVB,RFCT,RFGP,SCCO,SCEN,SCOL,SCSN,SMBN,SMEN,SMQN,SNCT,SNDR,SOPM,SOUN,SPEL,SPGD,STAG,STAT,TACT,TERM,TREE,TRNS,TXST,VTYP,WATR,WEAP,WRLD,WTHR,ZOOM,AACT","description":"Smashes all the things. Produced using autoset attributes on all record types found in Fallout4.esm.\r\n\r\nLast updated 05\/01\/2018.","tree":{"records":[{"t":1,"p":1,"n":"ACHR - Placed NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":6,"s":1,"p":1,"n":"Patrol Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":3,"p":1,"n":"TNAM - Topic"}]},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XCNT - Count"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":3,"p":1,"n":"XHLT - Health %"},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":8,"s":1,"p":1,"n":"Spline Connection","d":1,"c":[{"t":6,"p":1,"n":"XPLK - Link","c":[{"t":3,"p":1,"n":"Ref"},{"t":11,"n":"Unknown"}]}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIBS - Ignored By Sandbox"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"ACTI - Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"p":1,"n":"STCP - Sound"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":6,"s":1,"p":1,"n":"PNAM - Marker Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"SNAM - Sound - Looping"},{"t":3,"p":1,"n":"VNAM - Sound - Activation"},{"t":3,"p":1,"n":"WNAM - Water Type"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"},{"t":6,"s":1,"p":1,"n":"RADR - Radio Receiver","c":[{"t":3,"p":1,"n":"Sound Model"},{"t":5,"p":1,"n":"Frequency"},{"t":5,"p":1,"n":"Volume"},{"t":3,"p":1,"n":"Starts Active"},{"t":3,"p":1,"n":"No Signal Static"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]}]},{"t":1,"p":1,"n":"ADDN - Addon Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DATA - Node Index"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":3,"p":1,"n":"LNAM - Light"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Master Particle System Cap"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"AECH - Audio Effect Chain","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"KNAM - Type"},{"t":6,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Enabled"},{"t":5,"p":1,"n":"Input Gain"},{"t":5,"p":1,"n":"Center Freq"},{"t":5,"p":1,"n":"Feedback %"},{"t":5,"p":1,"n":"Output Gain"},{"t":5,"p":1,"n":"Q Value"},{"t":5,"p":1,"n":"Wet Mix %"},{"t":5,"p":1,"n":"Upper Threshold"},{"t":3,"p":1,"n":"Filter Mode"},{"t":3,"p":1,"n":"Delay MS"},{"t":5,"p":1,"n":"Lower Threshold"},{"t":11,"n":"Unused"}]}]}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"CUSD - Sound - Crafting"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Addiction"},{"t":5,"p":1,"n":"Addiction Chance"},{"t":3,"p":1,"n":"Sound - Consume"}]},{"t":2,"p":1,"n":"DNAM - Addiction Name"},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMDL - Aim Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":5,"p":1,"n":"Cone of Fire - Min Angle"},{"t":5,"p":1,"n":"Cone of Fire - Max Angle"},{"t":5,"p":1,"n":"Cone of Fire - Increase Per Shot"},{"t":5,"p":1,"n":"Cone of Fire - Decrease Per Sec"},{"t":3,"p":1,"n":"Cone of Fire - Decrease Delay MS"},{"t":5,"p":1,"n":"Cone of Fire - Sneak Mult"},{"t":5,"p":1,"n":"Recoil - Diminish Spring Force"},{"t":5,"p":1,"n":"Recoil - Diminish Sights Mult"},{"t":5,"p":1,"n":"Recoil - Max Per Shot"},{"t":5,"p":1,"n":"Recoil - Min Per Shot"},{"t":5,"p":1,"n":"Recoil - Hip Mult"},{"t":3,"p":1,"n":"Runaway - Recoil Shots"},{"t":5,"p":1,"n":"Recoil - Arc"},{"t":5,"p":1,"n":"Recoil - Arc Rotate"},{"t":5,"p":1,"n":"Cone of Fire - Iron Sights Mult"},{"t":5,"p":1,"n":"Stability - Base Stability"}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Damage"},{"t":3,"p":1,"n":"Health"}]},{"t":2,"p":1,"n":"ONAM - Short Name"},{"t":2,"p":1,"n":"NAM1 - Casing Model"},{"t":11,"n":"NAM2 - Texture Files Hashes"}]},{"t":1,"p":1,"n":"ANIO - Animated Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"BNAM - Unload Event"}]},{"t":1,"p":1,"n":"AORU - Attraction Rule","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"AOR2 - Data","c":[{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Delay"},{"t":5,"p":1,"n":"Max Delay"},{"t":3,"p":1,"n":"Requires Line of Sight"},{"t":3,"p":1,"n":"Combat Target"},{"t":11,"n":"Unused"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"}]},{"t":3,"p":1,"n":"RNAM - Race"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Male Priority"},{"t":3,"p":1,"n":"Female Priority"},{"t":3,"p":1,"n":"Weight slider - Male"},{"t":3,"p":1,"n":"Weight slider - Female"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Detection Sound Value"},{"t":5,"p":1,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO2S - Material Swap"},{"t":5,"p":1,"n":"MO2C - Color Remapping Index"},{"t":11,"n":"MO2F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO3S - Material Swap"},{"t":5,"p":1,"n":"MO3C - Color Remapping Index"},{"t":11,"n":"MO3F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"},{"t":5,"p":1,"n":"MO4C - Color Remapping Index"},{"t":11,"n":"MO4F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model Filename"},{"t":11,"p":1,"n":"MO5T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO5S - Material Swap"},{"t":5,"p":1,"n":"MO5C - Color Remapping Index"},{"t":11,"n":"MO5F - Unknown"}]},{"t":3,"p":1,"n":"NAM0 - Male Skin Texture"},{"t":3,"p":1,"n":"NAM1 - Female Skin Texture"},{"t":3,"p":1,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"p":1,"n":"NAM3 - Female Skin Texture Swap List"},{"t":8,"s":1,"p":1,"n":"Additional Races","d":1,"c":[{"t":3,"p":1,"n":"MODL - Race"}]},{"t":3,"p":1,"n":"SNDD - Footstep Sound"},{"t":3,"p":1,"n":"ONAM - Art Object"},{"t":8,"s":1,"p":1,"n":"Bone Data","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":3,"p":1,"n":"BSMP - Gender"},{"t":8,"p":1,"n":"Bones","c":[{"t":6,"p":1,"n":"Bone","c":[{"t":2,"p":1,"n":"BSMB - Name"},{"t":7,"p":1,"n":"BSMS - Values","c":[{"t":5,"p":1,"n":"Value"}]},{"t":11,"n":"BMMP - Unknown"}]}]}]}]}]},{"t":1,"p":1,"n":"ARMO - Armor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO2S - Material Swap"}]},{"t":2,"p":1,"n":"ICON - Male Inventory Image"},{"t":2,"p":1,"n":"MICO - Male Message Icon"},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"}]},{"t":2,"p":1,"n":"ICO2 - Female Inventory Image"},{"t":2,"p":1,"n":"MIC2 - Female Message Icon"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"INRD - Instance Naming"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":3,"p":1,"n":"INDX - Addon Index"},{"t":3,"p":1,"n":"MODL - Armor Addon"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Health"}]},{"t":6,"s":1,"p":1,"n":"FNAM - ","c":[{"t":3,"p":1,"n":"Armor Rating"},{"t":3,"p":1,"n":"Base Addon Index"},{"t":3,"p":1,"n":"Stagger Rating"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMA - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"TNAM - Template Armor"},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]}]},{"t":1,"p":1,"n":"ARTO - Art Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"ASPC - Acoustic Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":3,"p":1,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"p":1,"n":"BNAM - Environment Type"},{"t":3,"p":1,"n":"XTRI - Is Interior"},{"t":3,"p":1,"n":"WNAM - Weather Attenuation (dB)"}]},{"t":1,"p":1,"n":"ASTP - Association Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MPRT - Male Parent Title"},{"t":2,"p":1,"n":"FPRT - Female Parent Title"},{"t":2,"p":1,"n":"MCHT - Male Child Title"},{"t":2,"p":1,"n":"FCHT - Female Child Title"},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ANAM - Abbreviation"},{"t":5,"p":1,"n":"NAM0 - Default Value"},{"t":3,"p":1,"n":"AVFL - Flags"},{"t":3,"p":1,"n":"NAM1 - Type"}]},{"t":1,"p":1,"n":"BNDS - Bendable Spline","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":5,"p":1,"n":"Default Number of Tiles"},{"t":3,"p":1,"n":"Default Number of Slices"},{"t":3,"p":1,"n":"Default Number of Tiles - Relative to Length"},{"t":6,"p":1,"n":"Default Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Wind Settings - Sensibility"},{"t":5,"p":1,"n":"Wind Settings - Flexibility"}]},{"t":3,"p":1,"n":"TNAM - Texture"}]},{"t":1,"p":1,"n":"BOOK - Book","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FIMD - Featured Item Message"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Perk"},{"t":6,"p":1,"n":"Text Offset","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]},{"t":2,"p":1,"n":"CNAM - Description"},{"t":3,"p":1,"n":"INAM - Inventory Art"}]},{"t":1,"p":1,"n":"BPTD - Body Part Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":10,"p":1,"n":"Body Parts","d":1,"c":[{"t":6,"p":1,"n":"Body Part","c":[{"t":2,"p":1,"n":"BPTN - Part Name"},{"t":2,"p":1,"n":"BPNN - Part Node"},{"t":2,"p":1,"n":"BPNT - VATS Target"},{"t":6,"p":1,"n":"BPND - ","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":3,"p":1,"n":"Explodable - Debris"},{"t":3,"p":1,"n":"Explodable - Explosion"},{"t":5,"p":1,"n":"Explodable - Debris Scale"},{"t":3,"p":1,"n":"Severable - Debris"},{"t":3,"p":1,"n":"Severable - Explosion"},{"t":5,"p":1,"n":"Severable - Debris Scale"},{"t":5,"p":1,"n":"Cut - Min"},{"t":5,"p":1,"n":"Cut - Max"},{"t":5,"p":1,"n":"Cut - Radius"},{"t":5,"p":1,"n":"Gore Effects - Local Rotate X"},{"t":5,"p":1,"n":"Gore Effects - Local Rotate Y"},{"t":5,"p":1,"n":"Cut - Tesselation"},{"t":3,"p":1,"n":"Severable - Impact DataSet"},{"t":3,"p":1,"n":"Explodable - Impact DataSet"},{"t":5,"p":1,"n":"Explodable - Limb Replacement Scale"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Part Type"},{"t":3,"p":1,"n":"Health Percent"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"To Hit Chance"},{"t":3,"p":1,"n":"Explodable - Explosion Chance %"},{"t":3,"p":1,"n":"Non-Lethal Dismemberment Chance"},{"t":3,"p":1,"n":"Severable - Debris Count"},{"t":3,"p":1,"n":"Explodable - Debris Count"},{"t":3,"p":1,"n":"Severable - Decal Count"},{"t":3,"p":1,"n":"Explodable - Decal Count"},{"t":3,"p":1,"n":"Geometry Segment Index"},{"t":3,"p":1,"n":"On Cripple - Art Object"},{"t":3,"p":1,"n":"On Cripple - Debris"},{"t":3,"p":1,"n":"On Cripple - Explosion"},{"t":3,"p":1,"n":"On Cripple - Impact DataSet"},{"t":5,"p":1,"n":"On Cripple - Debris Scale"},{"t":3,"p":1,"n":"On Cripple - Debris Count"},{"t":3,"p":1,"n":"On Cripple - Decal Count"}]},{"t":2,"p":1,"n":"NAM1 - Limb Replacement Model"},{"t":2,"p":1,"n":"NAM4 - Gore Effects - Target Bone"},{"t":11,"p":1,"n":"NAM5 - Texture Files Hashes"},{"t":2,"p":1,"n":"ENAM - Hit Reaction - Start"},{"t":2,"p":1,"n":"FNAM - Hit Reaction - End"},{"t":3,"p":1,"n":"BNAM - Gore Effects - Dismember Blood Art"},{"t":3,"p":1,"n":"INAM - Gore Effects - Blood Impact Material Type"},{"t":3,"p":1,"n":"JNAM - On Cripple - Blood Impact Material Type"},{"t":3,"p":1,"n":"CNAM - Meat Cap TextureSet"},{"t":3,"p":1,"n":"NAM2 - Collar TextureSet"},{"t":2,"p":1,"n":"DNAM - Twist Variable Prefix"}]}]}]},{"t":1,"p":1,"n":"CAMS - Camera Shot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Action"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Time Multipliers","c":[{"t":5,"p":1,"n":"Player"},{"t":5,"p":1,"n":"Target"},{"t":5,"p":1,"n":"Global"}]},{"t":5,"p":1,"n":"Max Time"},{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Target % Between Actors"},{"t":5,"p":1,"n":"Near Target Distance"},{"t":5,"p":1,"n":"Location Spring"},{"t":5,"p":1,"n":"Target Spring"},{"t":6,"p":1,"n":"Rotation Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"}]},{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"XCLC - Grid","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Force Hide Land"}]},{"t":11,"n":"VISI - PreVis Files Timestamp"},{"t":3,"p":1,"n":"RVIS - In PreVis File Of"},{"t":11,"n":"PCMB - PreCombined Files Timestamp"},{"t":6,"s":1,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":3,"p":1,"n":"Inherits"},{"t":5,"p":1,"n":"Near Height Mid"},{"t":5,"p":1,"n":"Near Height Range"},{"t":6,"p":1,"n":"Fog Color High Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color High Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"High Density Scale"},{"t":5,"p":1,"n":"Fog Near Scale"},{"t":5,"p":1,"n":"Fog Far Scale"},{"t":5,"p":1,"n":"Fog High Near Scale"},{"t":5,"p":1,"n":"Fog High Far Scale"},{"t":5,"p":1,"n":"Far Height Mid"},{"t":5,"p":1,"n":"Far Height Range"}]},{"t":3,"p":1,"n":"CNAM - Precombined Object Level XY"},{"t":3,"p":1,"n":"ZNAM - Precombined Object Level Z"},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"p":1,"n":"LTMP - Lighting Template"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":7,"p":1,"n":"XCLR - Regions","c":[{"t":3,"p":1,"n":"Region"}]},{"t":3,"p":1,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XILL - Lock List"},{"t":6,"s":1,"p":1,"n":"XILW - Exterior LOD","c":[{"t":3,"p":1,"n":"Worldspace"},{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"}]},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"p":1,"n":"XCAS - Acoustic Space"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"},{"t":3,"p":1,"n":"XGDR - God Rays"},{"t":7,"p":1,"n":"XPRI - Physics References","c":[{"t":3,"p":1,"n":"Reference"}]},{"t":6,"s":1,"p":1,"n":"XCRI - Combined References","c":[{"t":3,"p":1,"n":"Meshes Count"},{"t":3,"p":1,"n":"References Count"},{"t":7,"p":1,"n":"Meshes","c":[{"t":3,"p":1,"n":"Combined Mesh"}]},{"t":7,"p":1,"n":"References","c":[{"t":6,"p":1,"n":"Reference","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Combined Mesh"}]}]}]}]},{"t":1,"p":1,"n":"CLAS - Class","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Bleedout Default"}]}]},{"t":1,"p":1,"n":"CLFM - Color","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"CNAM - Color\/Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"CLMT - Climate","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"WLST - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":2,"p":1,"n":"FNAM - Sun Texture"},{"t":2,"p":1,"n":"GNAM - Sun Glare Texture"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Timing","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":3,"p":1,"n":"Volatility"},{"t":3,"p":1,"n":"Moons \/ Phase Length"}]}]},{"t":1,"p":1,"n":"CMPO - Component","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"CUSD - Sound - Crafting"},{"t":3,"p":1,"n":"DATA - Auto Calc Value"},{"t":3,"p":1,"n":"MNAM - Scrap Item"},{"t":3,"p":1,"n":"GNAM - Mod Scrap Scalar"}]},{"t":1,"p":1,"n":"COBJ - Constructible Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":7,"p":1,"n":"FVPA - Components","c":[{"t":6,"p":1,"n":"Component","c":[{"t":3,"p":1,"n":"Component"},{"t":3,"p":1,"n":"Count"}]}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"CNAM - Created Object"},{"t":3,"p":1,"n":"BNAM - Workbench Keyword"},{"t":11,"n":"NAM1 - Unused"},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":3,"p":1,"n":"ANAM - Menu Art Object"},{"t":7,"p":1,"n":"FNAM - Category","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"INTV - Data","c":[{"t":3,"p":1,"n":"Created Object Count"},{"t":3,"p":1,"n":"Priority"}]}]},{"t":1,"p":1,"n":"COLL - Collision Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"BNAM - Index"},{"t":6,"s":1,"p":1,"n":"FNAM - Debug Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"GNAM - Flags"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":3,"n":"INTV - Interactables Count"},{"t":7,"p":1,"n":"CNAM - Collides With","c":[{"t":3,"p":1,"n":"Forms"}]}]},{"t":1,"p":1,"n":"CONT - Container","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"QNAM - Sound - Close"},{"t":3,"p":1,"n":"TNAM - Sound - Take All"},{"t":3,"p":1,"n":"ONAM - Filter List"}]},{"t":1,"p":1,"n":"CPTH - Camera Path","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"ANAM - Related Camera Paths","c":[{"t":3,"p":1,"n":"Related Camera Path"}]},{"t":3,"p":1,"n":"DATA - Camera Zoom \/ Flags"},{"t":8,"s":1,"p":1,"n":"Camera Shots","d":1,"c":[{"t":3,"p":1,"n":"SNAM - Camera Shot"}]}]},{"t":1,"p":1,"n":"CSTY - Combat Style","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CSGD - General","c":[{"t":5,"p":1,"n":"Offensive Mult"},{"t":5,"p":1,"n":"Defensive Mult"},{"t":5,"p":1,"n":"Group Offensive Mult"},{"t":5,"p":1,"n":"Equipment Score Mult - Melee"},{"t":5,"p":1,"n":"Equipment Score Mult - Magic"},{"t":5,"p":1,"n":"Equipment Score Mult - Ranged"},{"t":5,"p":1,"n":"Equipment Score Mult - Shout"},{"t":5,"p":1,"n":"Equipment Score Mult - Unarmed"},{"t":5,"p":1,"n":"Equipment Score Mult - Staff"},{"t":5,"p":1,"n":"Avoid Threat Chance"},{"t":5,"p":1,"n":"Dodge Threat Chance"},{"t":5,"p":1,"n":"Evade Threat Chance"}]},{"t":11,"n":"CSMD - Unknown"},{"t":6,"s":1,"p":1,"n":"CSME - Melee","c":[{"t":5,"p":1,"n":"Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Blocking Mult"},{"t":5,"p":1,"n":"Bash Mult"},{"t":5,"p":1,"n":"Bash Recoil Mult"},{"t":5,"p":1,"n":"Bash Attack Mult"},{"t":5,"p":1,"n":"Bash Power Attack Mult"},{"t":5,"p":1,"n":"Special Attack Mult"},{"t":5,"p":1,"n":"Block When Staggered Mult"},{"t":5,"p":1,"n":"Attack When Staggered Mult"}]},{"t":5,"p":1,"n":"CSRA - Ranged Accuracy Mult"},{"t":6,"s":1,"p":1,"n":"CSCR - Close Range","c":[{"t":5,"p":1,"n":"Dueling - Circle Mult"},{"t":5,"p":1,"n":"Dueling - Fallback Mult"},{"t":5,"p":1,"n":"Flanking - Flank Distance"},{"t":5,"p":1,"n":"Flanking - Stalk Time"},{"t":5,"p":1,"n":"Charging - Charge Distance"},{"t":5,"p":1,"n":"Charging - Throw Probability"},{"t":5,"p":1,"n":"Charging - Sprint Fast Probability"},{"t":5,"p":1,"n":"Charging - Sideswipe Probability"},{"t":5,"p":1,"n":"Charging - Disengane Probability"},{"t":3,"p":1,"n":"Charging - Throw Max Targets"},{"t":5,"p":1,"n":"Flanking - Flank Variance"}]},{"t":6,"s":1,"p":1,"n":"CSLR - Long Range","c":[{"t":5,"p":1,"n":"Strafe Mult"},{"t":5,"p":1,"n":"Adjust Range Mult"},{"t":5,"p":1,"n":"Crouch Mult"},{"t":5,"p":1,"n":"Wait Mult"},{"t":5,"p":1,"n":"Range Mult"}]},{"t":5,"p":1,"n":"CSCV - Cover Search Distance Mult"},{"t":6,"s":1,"p":1,"n":"CSFL - Flight","c":[{"t":5,"p":1,"n":"Hover Chance"},{"t":5,"p":1,"n":"Dive Bomb Chance"},{"t":5,"p":1,"n":"Ground Attack Chance"},{"t":5,"p":1,"n":"Hover Time"},{"t":5,"p":1,"n":"Ground Attack Time"},{"t":5,"p":1,"n":"Perch Attack Chance"},{"t":5,"p":1,"n":"Perch Attack Time"},{"t":5,"p":1,"n":"Flying Attack Chance"}]},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"DEBR - Debris","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model Filename"},{"t":3,"p":1,"n":"Flags"}]},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"DFOB - Default Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Object"}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"p":1,"n":"PNAM - Priority"},{"t":3,"p":1,"n":"BNAM - Branch"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Topic Flags"},{"t":3,"p":1,"n":"Category"},{"t":3,"p":1,"n":"Subtype"}]},{"t":2,"p":1,"n":"SNAM - Subtype Name"},{"t":3,"p":1,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DLBR - Dialog Branch","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"n":"TNAM - Unknown"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Starting Topic"}]},{"t":1,"p":1,"n":"DLVW - Dialog View","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Branches","d":1,"c":[{"t":3,"p":1,"n":"BNAM - Branch"}]},{"t":8,"n":"Unknown TNAM","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"TNAM - Unknown"}]}]},{"t":11,"n":"ENAM - Unknown"},{"t":11,"n":"DNAM - Unknown"}]},{"t":1,"p":1,"n":"DMGT - Damage Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"Damage Types","c":[{"t":3,"p":1,"n":"Actor Value Index"}]}]},{"t":1,"n":"DOBJ - Default Object Manager","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"DNAM - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Use"},{"t":3,"n":"Object ID"}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"ANAM - Sound - Close"},{"t":3,"p":1,"n":"BNAM - Sound - Loop"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":2,"p":1,"n":"ONAM - Alternate Text - Open"},{"t":2,"p":1,"n":"CNAM - Alternate Text - Close"}]},{"t":1,"p":1,"n":"DUAL - Dual Cast Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"ECZN - Encounter Zone","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Min Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Max Level"}]}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture"},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture"},{"t":11,"n":"DATA - Unknown"},{"t":6,"s":1,"p":1,"n":"Data","c":[{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Holes Animation - Start Time"},{"t":5,"p":1,"n":"Holes Animation - End Time"},{"t":5,"p":1,"n":"Holes Animation - Start Value"},{"t":5,"p":1,"n":"Holes Animation - End Value"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"}]},{"t":6,"s":1,"p":1,"n":"Data (old format)","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"ENCH - Object Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Enchantment Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Enchantment Amount"},{"t":3,"p":1,"n":"Target Type"},{"t":3,"p":1,"n":"Enchant Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Base Enchantment"},{"t":3,"p":1,"n":"Worn Restrictions"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"EQUP - Equip Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"PNAM - Slot Parents","c":[{"t":3,"p":1,"n":"Parent"}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"ANAM - Condition Actor Value"}]},{"t":1,"p":1,"n":"EXPL - Explosion","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Sound 1"},{"t":3,"p":1,"n":"Sound 2"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Placed Object"},{"t":3,"p":1,"n":"Spawn Projectile"},{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Damage"},{"t":5,"p":1,"n":"Inner Radius"},{"t":5,"p":1,"n":"Outer Radius"},{"t":5,"p":1,"n":"IS Radius"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Vertical Offset Mult"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Sound Level"},{"t":5,"p":1,"n":"Placed Object AutoFade Delay"},{"t":3,"p":1,"n":"Stagger"},{"t":6,"p":1,"n":"Spawn","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"},{"t":5,"p":1,"n":"Spread Degrees"},{"t":3,"p":1,"n":"Count"}]}]}]},{"t":1,"p":1,"n":"FACT - Faction","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"Relations","d":1,"c":[{"t":6,"p":1,"n":"XNAM - Relation","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Modifier"},{"t":3,"p":1,"n":"Group Combat Reaction"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Flags","c":[{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"JAIL - Exterior Jail Marker"},{"t":3,"p":1,"n":"WAIT - Follower Wait Marker"},{"t":3,"p":1,"n":"STOL - Stolen Goods Container"},{"t":3,"p":1,"n":"PLCN - Player Inventory Container"},{"t":3,"p":1,"n":"CRGR - Shared Crime Faction List"},{"t":3,"p":1,"n":"JOUT - Jail Outfit"},{"t":6,"s":1,"p":1,"n":"CRVA - Crime Values","c":[{"t":3,"p":1,"n":"Arrest"},{"t":3,"p":1,"n":"Attack On Sight"},{"t":3,"p":1,"n":"Murder"},{"t":3,"p":1,"n":"Assault"},{"t":3,"p":1,"n":"Trespass"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"p":1,"n":"Steal Multiplier"},{"t":3,"p":1,"n":"Escape"},{"t":3,"p":1,"n":"Werewolf (unused)"}]},{"t":10,"p":1,"n":"Ranks","d":1,"c":[{"t":6,"p":1,"n":"Rank","c":[{"t":3,"p":1,"n":"RNAM - Rank#"},{"t":2,"p":1,"n":"MNAM - Male Title"},{"t":2,"p":1,"n":"FNAM - Female Title"},{"t":2,"p":1,"n":"INAM - Insignia (unused)"}]}]},{"t":3,"p":1,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"p":1,"n":"VENC - Merchant Container"},{"t":6,"s":1,"p":1,"n":"VENV - Vendor Values","c":[{"t":3,"p":1,"n":"Start Hour"},{"t":3,"p":1,"n":"End Hour"},{"t":3,"p":1,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"p":1,"n":"Buys Stolen Items"},{"t":3,"p":1,"n":"Buy\/Sell Everything Not In List?"},{"t":3,"p":1,"n":"Buys NonStolen Items"},{"t":3,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"PLVD - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Ref Alias"},{"t":3,"p":1,"n":"Loc Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":3,"p":1,"n":"Packdata Target"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Ref Collection Alias"},{"t":3,"p":1,"n":"Radius"},{"t":3,"p":1,"n":"Collection Index"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer "},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FLST - FormID List","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"FormIDs","d":1,"c":[{"t":3,"p":1,"n":"LNAM - FormID"}]}]},{"t":1,"p":1,"n":"FSTP - Footstep","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Tag"}]},{"t":1,"p":1,"n":"FSTS - Footstep Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"n":"XCNT - Count","c":[{"t":3,"n":"Walking"},{"t":3,"n":"Running"},{"t":3,"n":"Sprinting"},{"t":3,"n":"Sneaking"},{"t":3,"n":"Swimming"}]},{"t":7,"p":1,"n":"DATA - Footstep Sets","c":[{"t":3,"p":1,"n":"Footstep"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"WNAM - Drinking Water Type"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"s":1,"p":1,"n":"WBDT - Workbench Data","c":[{"t":3,"p":1,"n":"Bench Type"},{"t":3,"p":1,"n":"Uses Skill"}]},{"t":3,"p":1,"n":"NAM1 - Associated Form"},{"t":8,"s":1,"p":1,"n":"Markers","d":1,"c":[{"t":6,"p":1,"n":"Marker","c":[{"t":3,"p":1,"n":"ENAM - Marker Index"},{"t":6,"p":1,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Disabled Points"}]}]}]},{"t":8,"s":1,"p":1,"n":"Marker Entry Points","d":1,"c":[{"t":6,"p":1,"n":"FNPR - Marker","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Entry Points"}]}]},{"t":2,"p":1,"n":"XMRK - Marker Model"},{"t":7,"p":1,"n":"SNAM - Marker Paramaters","c":[{"t":6,"p":1,"n":"Marker","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"},{"t":5,"p":1,"n":"Rotation Z"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Entry Types"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]}]},{"t":1,"p":1,"n":"GDRY - God Rays","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":6,"p":1,"n":"Back Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":6,"p":1,"n":"Fwd Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Intensity"},{"t":5,"p":1,"n":"Air Color - Scale"},{"t":5,"p":1,"n":"Back Color - Scale"},{"t":5,"p":1,"n":"Fwd Color - Scale"},{"t":5,"p":1,"n":"Back Phase"},{"t":6,"p":1,"n":"Air Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Fwd Phase"}]}]},{"t":1,"p":1,"n":"GLOB - Global","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Type"},{"t":5,"p":1,"n":"FLTV - Value"}]},{"t":1,"p":1,"n":"GMST - Game Setting","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"Name"},{"t":3,"p":1,"n":"Int"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"}]},{"t":1,"p":1,"n":"GRAS - Grass","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Units From Water"},{"t":3,"p":1,"n":"Units From Water Type"},{"t":5,"p":1,"n":"Position Range"},{"t":5,"p":1,"n":"Height Range"},{"t":5,"p":1,"n":"Color Range"},{"t":5,"p":1,"n":"Wave Period"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"HAZD - Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Limit"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Image Space Radius"},{"t":5,"p":1,"n":"Target Interval"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Effect"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Sound"},{"t":6,"p":1,"n":"Taper Effectiveness","c":[{"t":5,"p":1,"n":"Full Effect Radius"},{"t":5,"p":1,"n":"Taper Weight"},{"t":5,"p":1,"n":"Taper Curse"}]}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"PNAM - Type"},{"t":8,"s":1,"p":1,"n":"Extra Parts","d":1,"c":[{"t":3,"p":1,"n":"HNAM - Part"}]},{"t":8,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"NAM0 - Part Type"},{"t":2,"p":1,"n":"NAM1 - Filename"}]}]},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"CNAM - Color"},{"t":3,"p":1,"n":"RNAM - Valid Races"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"n":"IDLE - Idle Animation","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Conditions","d":1,"c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"DNAM - Behavior Graph"},{"t":2,"n":"ENAM - Animation Event"},{"t":7,"n":"ANAM - Related Idle Animations","c":[{"t":3,"n":"Related Idle Animation"}]},{"t":6,"n":"DATA - ","c":[{"t":6,"n":"Looping seconds (both 255 forever)","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":3,"n":"Flags"},{"t":3,"n":"Animation Group Section"},{"t":3,"n":"Replay Delay"}]},{"t":2,"n":"GNAM - Animation File"}]},{"t":1,"p":1,"n":"IDLM - Idle Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"IDLF - Flags"},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":3,"n":"QNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"IMAD - Image Space Adapter","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"n":"DNAM - Data Count","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Duration"},{"t":6,"n":"HDR","c":[{"t":3,"n":"Eye Adapt Speed Mult"},{"t":3,"n":"Eye Adapt Speed Add"},{"t":3,"n":"Bloom Blur Radius Mult"},{"t":3,"n":"Bloom Blur Radius Add"},{"t":3,"n":"Bloom Threshold Mult"},{"t":3,"n":"Bloom Threshold Add"},{"t":3,"n":"Bloom Scale Mult"},{"t":3,"n":"Bloom Scale Add"},{"t":3,"n":"Target Lum Min Mult"},{"t":3,"n":"Target Lum Min Add"},{"t":3,"n":"Target Lum Max Mult"},{"t":3,"n":"Target Lum Max Add"},{"t":3,"n":"Sunlight Scale Mult"},{"t":3,"n":"Sunlight Scale Add"},{"t":3,"n":"Sky Scale Mult"},{"t":3,"n":"Sky Scale Add"}]},{"t":3,"n":"Unknown08 Mult"},{"t":3,"n":"Unknown48 Add"},{"t":3,"n":"Unknown09 Mult"},{"t":3,"n":"Unknown49 Add"},{"t":3,"n":"Unknown0A Mult"},{"t":3,"n":"Unknown4A Add"},{"t":3,"n":"Unknown0B Mult"},{"t":3,"n":"Unknown4B Add"},{"t":3,"n":"Unknown0C Mult"},{"t":3,"n":"Unknown4C Add"},{"t":3,"n":"Unknown0D Mult"},{"t":3,"n":"Unknown4D Add"},{"t":3,"n":"Unknown0E Mult"},{"t":3,"n":"Unknown4E Add"},{"t":3,"n":"Unknown0F Mult"},{"t":3,"n":"Unknown4F Add"},{"t":3,"n":"Unknown10 Mult"},{"t":3,"n":"Unknown50 Add"},{"t":6,"n":"Cinematic","c":[{"t":3,"n":"Saturation Mult"},{"t":3,"n":"Saturation Add"},{"t":3,"n":"Brightness Mult"},{"t":3,"n":"Brightness Add"},{"t":3,"n":"Contrast Mult"},{"t":3,"n":"Contrast Add"}]},{"t":3,"n":"Unknown14 Mult"},{"t":3,"n":"Unknown54 Add"},{"t":3,"n":"Tint Color"},{"t":3,"n":"Blur Radius"},{"t":3,"n":"Double Vision Strength"},{"t":3,"n":"Radial Blur Strength"},{"t":3,"n":"Radial Blur Ramp Up"},{"t":3,"n":"Radial Blur Start"},{"t":3,"n":"Radial Blur Flags"},{"t":5,"n":"Radial Blur Center X"},{"t":5,"n":"Radial Blur Center Y"},{"t":3,"n":"DoF Strength"},{"t":3,"n":"DoF Distance"},{"t":3,"n":"DoF Range"},{"t":3,"n":"DoF Flags"},{"t":3,"n":"Radial Blur Ramp Down"},{"t":3,"n":"Radial Blur Down Start"},{"t":3,"n":"Fade Color"},{"t":3,"n":"Motion Blur Strength"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"BNAM - Blur Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"VNAM - Double Vision Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"TNAM - Tint Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"NAM3 - Fade Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":6,"s":1,"p":1,"n":"Radial Blur","c":[{"t":7,"p":1,"n":"RNAM - Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SNAM - RampUp","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"UNAM - Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM1 - RampDown","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM2 - DownStart","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":6,"s":1,"p":1,"n":"Depth of Field","c":[{"t":7,"p":1,"n":"WNAM - Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"XNAM - Distance","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"YNAM - Range","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM5 - Vignette Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM6 - Vignette Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":7,"p":1,"n":"NAM4 - Motion Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"HDR","c":[{"t":7,"p":1,"n":"aIAD - Eye Adapt Speed Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"@IAD - Eye Adapt Speed Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"bIAD - Bloom Blur Radius Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"AIAD - Bloom Blur Radius Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"cIAD - Bloom Threshold Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"BIAD - Bloom Threshold Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"dIAD - Bloom Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"CIAD - Bloom Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"eIAD - Target Lum Min Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"DIAD - Target Lum Min Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"fIAD - Target Lum Max Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"EIAD - Target Lum Max Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"gIAD - Sunlight Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"FIAD - Sunlight Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"hIAD - Sky Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"GIAD - Sky Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"iIAD - Unknown"},{"t":11,"n":"HIAD - Unknown"},{"t":11,"n":"jIAD - Unknown"},{"t":11,"n":"IIAD - Unknown"},{"t":11,"n":"kIAD - Unknown"},{"t":11,"n":"JIAD - Unknown"},{"t":11,"n":"lIAD - Unknown"},{"t":11,"n":"KIAD - Unknown"},{"t":11,"n":"mIAD - Unknown"},{"t":11,"n":"LIAD - Unknown"},{"t":11,"n":"nIAD - Unknown"},{"t":11,"n":"MIAD - Unknown"},{"t":11,"n":"oIAD - Unknown"},{"t":11,"n":"NIAD - Unknown"},{"t":11,"n":"pIAD - Unknown"},{"t":11,"n":"OIAD - Unknown"},{"t":11,"n":"qIAD - Unknown"},{"t":11,"n":"PIAD - Unknown"},{"t":6,"s":1,"p":1,"n":"Cinematic","c":[{"t":7,"p":1,"n":"rIAD - Saturation Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"QIAD - Saturation Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"sIAD - Brightness Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"RIAD - Brightness Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"tIAD - Contrast Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SIAD - Contrast Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"uIAD - Unknown"},{"t":11,"n":"TIAD - Unknown"}]},{"t":1,"p":1,"n":"IMGS - Image Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"ENAM - Unused"},{"t":6,"s":1,"p":1,"n":"HNAM - HDR","c":[{"t":5,"p":1,"n":"Eye Adapt Speed"},{"t":5,"p":1,"n":"Tonemap E"},{"t":5,"p":1,"n":"Bloom Threshold"},{"t":5,"p":1,"n":"Bloom Scale"},{"t":5,"p":1,"n":"Auto Exposure Max"},{"t":5,"p":1,"n":"Auto Exposure Min"},{"t":5,"p":1,"n":"Sunlight Scale"},{"t":5,"p":1,"n":"Sky Scale"},{"t":5,"p":1,"n":"Middle Gray"}]},{"t":6,"s":1,"p":1,"n":"CNAM - Cinematic","c":[{"t":5,"p":1,"n":"Saturation"},{"t":5,"p":1,"n":"Brightness"},{"t":5,"p":1,"n":"Contrast"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Tint","c":[{"t":5,"p":1,"n":"Amount"},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Depth of Field","c":[{"t":5,"p":1,"n":"Strength"},{"t":5,"p":1,"n":"Distance"},{"t":5,"p":1,"n":"Range"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Sky \/ Blur Radius"},{"t":5,"p":1,"n":"Vignette Radius"},{"t":5,"p":1,"n":"Vignette Strength"}]},{"t":2,"p":1,"n":"TX00 - LUT"}]},{"t":1,"p":1,"n":"INFO - Dialog response","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"ENAM - Response flags","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Reset Hours"}]},{"t":3,"p":1,"n":"TPIC - Topic"},{"t":3,"p":1,"n":"PNAM - Previous INFO"},{"t":3,"p":1,"n":"DNAM - Shared INFO"},{"t":3,"n":"GNAM - Unknown"},{"t":2,"p":1,"n":"IOVR - Override Filename"},{"t":8,"s":1,"p":1,"n":"Responses","d":1,"c":[{"t":6,"p":1,"n":"Response","c":[{"t":6,"p":1,"n":"TRDA - Response Data","c":[{"t":3,"p":1,"n":"Emotion"},{"t":3,"p":1,"n":"Response number"},{"t":11,"n":"Unused"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Percentage"},{"t":3,"p":1,"n":"Camera Target Alias"},{"t":3,"p":1,"n":"Camera Location Alias"}]},{"t":2,"p":1,"n":"NAM1 - Response Text"},{"t":2,"p":1,"n":"NAM2 - Script Notes"},{"t":2,"p":1,"n":"NAM3 - Edits"},{"t":2,"p":1,"n":"NAM4 - Alternate LIP Text"},{"t":3,"p":1,"n":"SNAM - Idle Animations: Speaker"},{"t":3,"p":1,"n":"LNAM - Idle Animations: Listener"},{"t":3,"p":1,"n":"TNAM - Interrupt Percentage"},{"t":11,"p":1,"n":"NAM9 - Text Hash"},{"t":3,"p":1,"n":"SRAF - Camera Path"},{"p":1,"n":"WZMD - Stop on Scene End"}]}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"RNAM - Prompt"},{"t":3,"p":1,"n":"ANAM - Speaker"},{"t":3,"p":1,"n":"TSCE - Start Scene"},{"t":3,"p":1,"n":"ALFA - Forced Alias"},{"t":11,"n":"INTV - Unknown"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"},{"t":3,"p":1,"n":"GREE - Greet Distance"},{"t":6,"s":1,"p":1,"n":"TIQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Begin"},{"t":3,"p":1,"n":"On End"}]},{"t":2,"p":1,"n":"NAM0 - Start Scene Phase"},{"t":3,"p":1,"n":"INCC - Challenge"},{"t":3,"p":1,"n":"MODQ - Reset Global"},{"t":3,"p":1,"n":"INAM - Subtitle Priority"}]},{"t":1,"p":1,"n":"INGR - Ingredient","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Ingredient Value"},{"t":3,"p":1,"n":"Flags"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"INNR - Instance Naming Rules","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"UNAM - Target"},{"t":8,"s":1,"p":1,"n":"Naming Rules","d":1,"c":[{"t":6,"p":1,"n":"Ruleset","c":[{"t":3,"p":1,"n":"VNAM - Count"},{"t":8,"p":1,"n":"Names","c":[{"t":6,"p":1,"n":"Name","c":[{"t":2,"p":1,"n":"WNAM - Text"},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"p":1,"n":"XNAM - Property","c":[{"t":5,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Op"}]},{"t":3,"p":1,"n":"YNAM - Index"}]}]}]}]}]},{"t":1,"p":1,"n":"IPCT - Impact","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":5,"p":1,"n":"Effect - Duration"},{"t":3,"p":1,"n":"Effect - Orientation"},{"t":5,"p":1,"n":"Angle Threshold"},{"t":5,"p":1,"n":"Placement Radius"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Impact Result"},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Alpha Threshold?"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Texture Set"},{"t":3,"p":1,"n":"ENAM - Secondary Texture Set"},{"t":3,"p":1,"n":"SNAM - Sound 1"},{"t":3,"p":1,"n":"NAM1 - Sound 2"},{"t":3,"p":1,"n":"NAM3 - Footstep Explosion"},{"t":3,"p":1,"n":"NAM2 - Hazard"},{"t":5,"p":1,"n":"FNAM - Footstep Particle Max Dist"}]},{"t":1,"p":1,"n":"IPDS - Impact Data Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Data","d":1,"c":[{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Material"},{"t":3,"p":1,"n":"Impact"}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"KSSM - Sound Keyword Mapping","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Primary Descriptor"},{"t":3,"p":1,"n":"ENAM - Exterior Tail"},{"t":3,"p":1,"n":"VNAM - VATS Descriptor"},{"t":5,"p":1,"n":"TNAM - VATS Threshold"},{"t":8,"s":1,"p":1,"n":"Keywords","d":1,"c":[{"t":3,"p":1,"n":"KNAM - Keyword"}]},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"RNAM - Sound","c":[{"t":3,"p":1,"n":"Reverb Class"},{"t":3,"p":1,"n":"Descriptor"}]}]}]},{"t":1,"p":1,"n":"KYWD - Keyword","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"DNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Type"},{"t":3,"p":1,"n":"DATA - Attraction Rule"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"NNAM - Display Name"}]},{"t":1,"p":1,"n":"LAND - Landscape","d":1,"c":[{"t":11,"n":"DATA - Unknown"},{"t":11,"n":"VNML - Vertex Normals"},{"t":11,"n":"VHGT - Vertext Height Map"},{"t":11,"n":"VCLR - Vertex Colours"},{"t":8,"s":1,"p":1,"n":"Layers","d":1,"c":[{"t":6,"p":1,"n":"Base Layer","c":[{"t":6,"p":1,"n":"BTXT - Base Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]}]},{"t":6,"p":1,"n":"Alpha Layer","c":[{"t":6,"p":1,"n":"ATXT - Alpha Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]},{"t":11,"p":1,"n":"VTXT - Alpha Layer Data"}]}]},{"t":7,"p":1,"n":"VTEX - Textures","c":[{"t":3,"p":1,"n":"Texture"}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"MPCD - Unknown"}]}]},{"t":1,"p":1,"n":"LAYR - Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent"}]},{"t":1,"p":1,"n":"LCRT - Location Reference Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"TNAM - Unknown"}]},{"t":1,"n":"LCTN - Location","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":5,"n":"ANAM - Unknown"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LENS - Lens Flare","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Color Influence"},{"t":5,"p":1,"n":"DNAM - Fade Distance Radius Scale"},{"t":3,"n":"LFSP - Count"},{"t":10,"p":1,"n":"Lens Flare Sprites","d":1,"c":[{"t":6,"p":1,"n":"Flare","c":[{"t":2,"p":1,"n":"DNAM - Lens Flare Sprite ID"},{"t":2,"p":1,"n":"FNAM - Texture"},{"t":6,"p":1,"n":"LFSD - Lens Flare Data","c":[{"t":6,"p":1,"n":"Tint","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"},{"t":5,"p":1,"n":"Position"},{"t":5,"p":1,"n":"Angular Fade"},{"t":5,"p":1,"n":"Opacity"},{"t":3,"p":1,"n":"Flags"}]}]}]}]},{"t":1,"p":1,"n":"LGTM - Lighting Template","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":5,"p":1,"n":"Near Height Mid"},{"t":5,"p":1,"n":"Near Height Range"},{"t":6,"p":1,"n":"Fog Color High Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color High Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"High Density Scale"},{"t":5,"p":1,"n":"Fog Near Scale"},{"t":5,"p":1,"n":"Fog Far Scale"},{"t":5,"p":1,"n":"Fog High Near Scale"},{"t":5,"p":1,"n":"Fog High Far Scale"},{"t":5,"p":1,"n":"Far Height Mid"},{"t":5,"p":1,"n":"Far Height Range"}]},{"t":6,"s":1,"p":1,"n":"DALC - Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"WGDR - God Rays"}]},{"t":1,"p":1,"n":"LIGH - Light","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Time"},{"t":3,"p":1,"n":"Radius"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Falloff Exponent"},{"t":5,"p":1,"n":"FOV"},{"t":5,"p":1,"n":"Near Clip"},{"t":6,"p":1,"n":"Flicker Effect","c":[{"t":5,"p":1,"n":"Period"},{"t":5,"p":1,"n":"Intensity Amplitude"},{"t":5,"p":1,"n":"Movement Amplitude"}]},{"t":5,"p":1,"n":"Constant"},{"t":5,"p":1,"n":"Scalar"},{"t":5,"p":1,"n":"Exponent"},{"t":5,"p":1,"n":"God Rays - Near Clip"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"FNAM - Fade value"},{"t":2,"p":1,"n":"NAM0 - Gobo"},{"t":3,"p":1,"n":"LNAM - Lens"},{"t":3,"p":1,"n":"WGDR - God Rays"},{"t":3,"p":1,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"NNAM - Loading Screen NIF"},{"t":3,"p":1,"n":"TNAM - Transform"},{"t":6,"s":1,"p":1,"n":"ONAM - Rotation","c":[{"t":3,"p":1,"n":"Min"},{"t":3,"p":1,"n":"Max"}]},{"t":6,"s":1,"p":1,"n":"ZNAM - Zoom","c":[{"t":5,"p":1,"n":"Min"},{"t":5,"p":1,"n":"Max"}]},{"t":2,"p":1,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"LTEX - Landscape Texture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"MNAM - Material Type"},{"t":6,"s":1,"p":1,"n":"HNAM - Havok Data","c":[{"t":3,"p":1,"n":"Friction"},{"t":3,"p":1,"n":"Restitution"}]},{"t":3,"p":1,"n":"SNAM - Texture Specular Exponent"},{"t":8,"s":1,"p":1,"n":"Grasses","d":1,"c":[{"t":3,"p":1,"n":"GNAM - Grass"}]}]},{"t":1,"p":1,"n":"LVLI - Leveled Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLM - Max Count"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Use Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"},{"t":3,"p":1,"n":"Chance None"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":7,"p":1,"n":"LLKC - Filter Keyword Chances","c":[{"t":6,"p":1,"n":"Filter","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Chance"}]}]},{"t":3,"p":1,"n":"LVSG - Epic Loot Chance"},{"t":2,"p":1,"n":"ONAM - Override Name"}]},{"t":1,"p":1,"n":"LVLN - Leveled NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLM - Max Count"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Use Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"},{"t":3,"p":1,"n":"Chance None"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":7,"p":1,"n":"LLKC - Filter Keyword Chances","c":[{"t":6,"p":1,"n":"Filter","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Chance"}]}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":1,"p":1,"n":"LVSP - Leveled Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"MATO - Material Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":8,"s":1,"p":1,"n":"Property Data","d":1,"c":[{"t":11,"p":1,"n":"DNAM - Data"}]},{"t":6,"s":1,"p":1,"n":"DATA - Directional Material Data","c":[{"t":5,"p":1,"n":"Falloff Scale"},{"t":5,"p":1,"n":"Falloff Bias"},{"t":5,"p":1,"n":"Noise UV Scale"},{"t":5,"p":1,"n":"Material UV Scale"},{"t":6,"p":1,"n":"Projection Vector","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Normal Dampener"},{"t":6,"p":1,"n":"Single Pass Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"MATT - Material Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Material Parent"},{"t":2,"p":1,"n":"MNAM - Material Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Havok Display Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"BNAM - Buoyancy"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"HNAM - Havok Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Breakable FX"},{"t":11,"n":"MODT - Texture Files Hashes"}]},{"t":1,"p":1,"n":"MESG - Message","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"INAM - Icon (unused)"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"TNAM - Display Time"},{"t":2,"p":1,"n":"SNAM - SWF"},{"t":2,"p":1,"n":"NNAM - Short Title"},{"t":8,"s":1,"p":1,"n":"Menu Buttons","d":1,"c":[{"t":6,"p":1,"n":"Menu Button","c":[{"t":2,"p":1,"n":"ITXT - Button Text"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Assoc. Item"},{"t":11,"p":1,"n":"Magic Skill (unused)"},{"t":3,"p":1,"n":"Resist Value"},{"t":3,"p":1,"n":"Counter Effect count"},{"t":3,"p":1,"n":"Casting Light"},{"t":5,"p":1,"n":"Taper Weight"},{"t":3,"p":1,"n":"Hit Shader"},{"t":3,"p":1,"n":"Enchant Shader"},{"t":3,"p":1,"n":"Minimum Skill Level"},{"t":6,"p":1,"n":"Spellmaking","c":[{"t":3,"p":1,"n":"Area"},{"t":5,"p":1,"n":"Casting Time"}]},{"t":5,"p":1,"n":"Taper Curve"},{"t":5,"p":1,"n":"Taper Duration"},{"t":5,"p":1,"n":"Second AV Weight"},{"t":3,"p":1,"n":"Archetype"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Delivery"},{"t":3,"p":1,"n":"Casting Art"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data"},{"t":5,"p":1,"n":"Skill Usage Multiplier"},{"t":6,"p":1,"n":"Dual Casting","c":[{"t":3,"p":1,"n":"Art"},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Equip Ability"},{"t":3,"p":1,"n":"Image Space Modifier"},{"t":3,"p":1,"n":"Perk to Apply"},{"t":3,"p":1,"n":"Casting Sound Level"},{"t":6,"p":1,"n":"Script Effect AI","c":[{"t":5,"p":1,"n":"Score"},{"t":5,"p":1,"n":"Delay Time"}]}]}]},{"t":8,"s":1,"n":"Counter Effects","d":1,"c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"p":1,"n":"SNDD - Sounds","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":2,"p":1,"n":"DNAM - Magic Item Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"FIMD - Featured Item Message"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":7,"p":1,"n":"CVPA - Components","c":[{"t":6,"p":1,"n":"Component","c":[{"t":3,"p":1,"n":"Component"},{"t":3,"p":1,"n":"Count"}]}]},{"t":7,"p":1,"n":"CDIX - Component Display Indices","c":[{"t":3,"p":1,"n":"Display Index"}]}]},{"t":1,"p":1,"n":"MOVT - Movement Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":6,"s":1,"p":1,"n":"SPED - Movement Data","c":[{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Walk - Left"},{"t":5,"p":1,"n":"Run - Left"},{"t":5,"p":1,"n":"Walk - Right"},{"t":5,"p":1,"n":"Run - Right"},{"t":5,"p":1,"n":"Walk - Forward"},{"t":5,"p":1,"n":"Run - Forward"},{"t":5,"p":1,"n":"Sprint - Forward"},{"t":5,"p":1,"n":"Walk - Back"},{"t":5,"p":1,"n":"Run - Back"},{"t":5,"p":1,"n":"Standing - Pitch"},{"t":5,"p":1,"n":"Walk - Pitch"},{"t":5,"p":1,"n":"Run - Pitch"},{"t":5,"p":1,"n":"Sprint - Pitch"},{"t":5,"p":1,"n":"Standing - Yaw"},{"t":5,"p":1,"n":"Walk - Yaw"},{"t":5,"p":1,"n":"Run - Yaw"},{"t":5,"p":1,"n":"Sprint - Yaw"}]},{"t":6,"s":1,"p":1,"n":"INAM - Anim Change Thresholds (unused)","c":[{"t":5,"p":1,"n":"Directional"},{"t":5,"p":1,"n":"Movement Speed"},{"t":5,"p":1,"n":"Rotation Speed"}]},{"t":5,"p":1,"n":"JNAM - Float Height"},{"t":5,"p":1,"n":"LNAM - Flight - Angle Gain"}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"DATA - On Local Map"},{"t":3,"p":1,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"MSWP - Material Swap","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FNAM - Tree Folder"},{"t":10,"p":1,"n":"Material Substitutions","d":1,"c":[{"t":6,"p":1,"n":"Substitution","c":[{"t":2,"p":1,"n":"BNAM - Original Material"},{"t":2,"p":1,"n":"SNAM - Replacement Material"},{"t":2,"p":1,"n":"FNAM - Tree Folder (obsolete)"},{"t":5,"p":1,"n":"CNAM - Color Remapping Index"}]}]}]},{"t":1,"p":1,"n":"MUSC - Music Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":6,"s":1,"p":1,"n":"PNAM - Data","c":[{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Ducking (dB)"}]},{"t":5,"p":1,"n":"WNAM - Fade Duration"},{"t":7,"p":1,"n":"TNAM - Music Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"p":1,"n":"MUST - Music Track","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"CNAM - Track Type"},{"t":5,"p":1,"n":"FLTV - Duration"},{"t":5,"p":1,"n":"DNAM - Fade-Out"},{"t":2,"p":1,"n":"ANAM - Track Filename"},{"t":2,"p":1,"n":"BNAM - Finale Filename"},{"t":6,"s":1,"p":1,"n":"LNAM - Loop Data","c":[{"t":5,"p":1,"n":"Loop Begins"},{"t":5,"p":1,"n":"Loop Ends"},{"t":3,"p":1,"n":"Loop Count"}]},{"t":7,"p":1,"n":"FNAM - Cue Points","c":[{"t":5,"p":1,"n":"Point"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"SNAM - Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"n":"NAVI - Navigation Mesh Info Map","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"NVER - Version"},{"t":8,"n":"Navigation Map Infos","c":[{"t":6,"n":"NVMI - Navigation Map Info","c":[{"t":3,"n":"Navigation Mesh"},{"t":11,"n":"Data"},{"t":7,"n":"Merged To","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Preferred Merges","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Linked Doors","c":[{"t":6,"n":"Door","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Door Ref"}]}]},{"t":3,"n":"Is Island"},{"t":11,"n":"Unused"},{"t":6,"n":"Island Data","c":[{"t":11,"n":"Unknown"},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]}]},{"t":11,"n":"Unknown"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"}]}]},{"t":6,"n":"NVPP - Preferred Pathing","c":[{"t":7,"n":"NavMeshes","c":[{"t":7,"n":"Set","c":[{"t":3,"n":""}]}]},{"t":7,"n":"NavMesh Tree?","c":[{"t":6,"n":"","c":[{"t":3,"n":"NavMesh"},{"t":3,"n":"Index\/Node"}]}]}]},{"t":11,"n":"NVSI - Unknown"}]},{"t":1,"n":"NAVM - Navigation Mesh","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"n":"Version"},{"t":11,"n":"Magic"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"},{"t":11,"n":"Vertices and Triangles"}]},{"t":11,"n":"ONAM - Unknown"},{"t":11,"n":"NNAM - Unknown"},{"t":11,"n":"MNAM - Unknown"}]},{"t":1,"n":"NOCM - Navigation Mesh Obstacle Manager","d":1,"c":[{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":3,"n":"INDX - Index"},{"t":8,"n":"Unknown","c":[{"t":11,"n":"DATA - Unknown"}]},{"t":11,"n":"INTV - Unknown"},{"t":2,"n":"NAM1 - Model"}]}]}]},{"t":1,"p":1,"n":"NOTE - Note","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"DNAM - Type"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Terminal"},{"t":2,"p":1,"n":"PNAM - Program File"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"n":"STCP - Unknown"},{"t":6,"s":1,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"XP Value Offset"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Level Mult"},{"t":3,"p":1,"n":"Calc min level"},{"t":3,"p":1,"n":"Calc max level"},{"t":3,"p":1,"n":"Disposition Base"},{"t":3,"p":1,"n":"Use Template Actors"},{"t":3,"p":1,"n":"Bleedout Override"},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Factions","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Faction","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Rank"}]}]},{"t":3,"p":1,"n":"INAM - Death item"},{"t":3,"p":1,"n":"VTCK - Voice"},{"t":3,"p":1,"n":"TPLT - Default Template"},{"t":3,"p":1,"n":"LTPT - Legendary Template"},{"t":3,"p":1,"n":"LTPC - Legendary Chance"},{"t":6,"s":1,"p":1,"n":"TPTA - Template Actors","c":[{"t":3,"p":1,"n":"Traits"},{"t":3,"p":1,"n":"Stats"},{"t":3,"p":1,"n":"Factions"},{"t":3,"p":1,"n":"Spell List"},{"t":3,"p":1,"n":"AI Data"},{"t":3,"p":1,"n":"AI Packages"},{"t":3,"p":1,"n":"Model\/Animation"},{"t":3,"p":1,"n":"Base Data"},{"t":3,"p":1,"n":"Inventory"},{"t":3,"p":1,"n":"Script"},{"t":3,"p":1,"n":"Def Pack List"},{"t":3,"p":1,"n":"Attack Data"},{"t":3,"p":1,"n":"Keywords"}]},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","d":1,"c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"WNAM - Skin"},{"t":3,"p":1,"n":"ANAM - Far away model"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","d":1,"c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags"},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Action Points Mult"},{"t":3,"p":1,"n":"Stagger Offset"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"},{"t":3,"p":1,"n":"ATKW - Weapon Slot"},{"t":3,"p":1,"n":"ATKS - Required Slot"},{"t":2,"p":1,"n":"ATKT - Description"}]}]},{"t":3,"p":1,"n":"SPOR - Spectator Override Package List"},{"t":3,"p":1,"n":"OCOR - Observe Dead Body Override Package List"},{"t":3,"p":1,"n":"GWOR - Guard Warn Override Package List"},{"t":3,"p":1,"n":"ECOR - Combat Override Package List"},{"t":3,"p":1,"n":"FCPL - Follower Command Package List"},{"t":3,"p":1,"n":"RCLR - Follower Elevator Package List"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"s":1,"p":1,"n":"Perks","d":1,"c":[{"t":6,"p":1,"n":"PRKR - Perk","c":[{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Rank"}]}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":3,"p":1,"n":"NTRM - Native Terminal"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Packages","d":1,"c":[{"t":3,"p":1,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]},{"t":3,"p":1,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - ","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Far Away Model Distance"},{"t":3,"p":1,"n":"Geared Up Weapons"}]},{"t":8,"s":1,"p":1,"n":"Head Parts","d":1,"c":[{"t":3,"p":1,"n":"PNAM - Head Part"}]},{"t":3,"p":1,"n":"HCLF - Hair Color"},{"t":3,"p":1,"n":"BCLF - Facial Hair Color"},{"t":3,"p":1,"n":"ZNAM - Combat Style"},{"t":3,"p":1,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"p":1,"n":"NAM6 - Height Min"},{"t":5,"n":"NAM7 - Unused"},{"t":5,"p":1,"n":"NAM4 - Height Max"},{"t":6,"s":1,"p":1,"n":"MWGT - Weight","c":[{"t":5,"p":1,"n":"Thin"},{"t":5,"p":1,"n":"Muscular"},{"t":5,"p":1,"n":"Fat"}]},{"t":3,"p":1,"n":"NAM8 - Sound Level"},{"t":6,"s":1,"p":1,"n":"Actor Sounds","c":[{"t":3,"p":1,"n":"CS2H - Count"},{"t":10,"p":1,"n":"Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"CS2K - Keyword"},{"t":3,"p":1,"n":"CS2D - Sound"}]}]},{"p":1,"n":"CS2E - End Marker"},{"t":11,"p":1,"n":"CS2F - Finalize"}]},{"t":3,"p":1,"n":"CSCR - Inherits Sounds From"},{"t":3,"p":1,"n":"PFRN - Power Armor Stand"},{"t":3,"p":1,"n":"DOFT - Default Outfit"},{"t":3,"p":1,"n":"SOFT - Sleeping Outfit"},{"t":3,"p":1,"n":"DPLT - Default Package List"},{"t":3,"p":1,"n":"CRIF - Crime Faction"},{"t":3,"p":1,"n":"FTST - Head Texture"},{"t":6,"s":1,"p":1,"n":"QNAM - Texture lighting","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]},{"t":7,"p":1,"n":"MSDK - Morph Keys","c":[{"t":3,"p":1,"n":"Key"}]},{"t":7,"p":1,"n":"MSDV - Morph Values","c":[{"t":5,"p":1,"n":"Value"}]},{"t":10,"p":1,"n":"Face Tinting Layers","d":1,"c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"TETI - Index","c":[{"t":3,"p":1,"n":"Data Type"},{"t":3,"p":1,"n":"Index"}]},{"t":6,"p":1,"n":"TEND - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Template Color Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"MRSV - Body Morph Region Values","c":[{"t":5,"p":1,"n":"Head"},{"t":5,"p":1,"n":"Upper Torso"},{"t":5,"p":1,"n":"Arms"},{"t":5,"p":1,"n":"Lower Torso"},{"t":5,"p":1,"n":"Legs"}]},{"t":10,"p":1,"n":"Face Morphs","d":1,"c":[{"t":6,"p":1,"n":"Face Morph","c":[{"t":3,"p":1,"n":"FMRI - Index"},{"t":6,"p":1,"n":"FMRS - Values","c":[{"t":5,"p":1,"n":"Position - X"},{"t":5,"p":1,"n":"Position - Y"},{"t":5,"p":1,"n":"Position - Z"},{"t":5,"p":1,"n":"Rotation - X"},{"t":5,"p":1,"n":"Rotation - Y"},{"t":5,"p":1,"n":"Rotation - Z"},{"t":5,"p":1,"n":"Scale"},{"t":11,"n":"Unknown"}]}]}]},{"t":5,"p":1,"n":"FMIN - Facial Morph Intensity"},{"t":2,"p":1,"n":"ATTX - Activate Text Override"}]},{"t":1,"p":1,"n":"OMOD - Object Modification","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Attach Point"},{"t":7,"p":1,"n":"Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":11,"p":1,"n":"Value 1"},{"t":11,"p":1,"n":"Value 2"}]}]},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Minimum Level"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]},{"t":7,"p":1,"n":"MNAM - Target OMOD Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"FNAM - Filter Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"LNAM - Loose Mod"},{"t":3,"p":1,"n":"NAM1 - Priority"},{"t":2,"p":1,"n":"FLTR - Filter"}]},{"t":1,"p":1,"n":"OTFT - Outfit","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"INAM - Items","c":[{"t":3,"p":1,"n":"Item"}]}]},{"t":1,"n":"OVIS - Object Visibility Manager","d":1,"c":[{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":3,"n":"INDX - Object"},{"t":6,"n":"DATA - Object Bounds","c":[{"t":5,"n":"X1"},{"t":5,"n":"Y1"},{"t":5,"n":"Z1"},{"t":5,"n":"X2"},{"t":5,"n":"Y2"},{"t":5,"n":"Z2"}]}]}]}]},{"t":1,"p":1,"n":"PACK - Package","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"PKDT - Pack Data","c":[{"t":3,"p":1,"n":"General Flags"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Interrupt Override"},{"t":3,"p":1,"n":"Preferred Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Flags"}]},{"t":6,"s":1,"p":1,"n":"PSDT - Schedule","c":[{"t":3,"p":1,"n":"Month"},{"t":3,"p":1,"n":"Day of week"},{"t":3,"p":1,"n":"Date"},{"t":3,"p":1,"n":"Hour"},{"t":3,"p":1,"n":"Minute"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Duration (minutes)"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"Idle Animations","c":[{"t":3,"p":1,"n":"IDLF - Flags"},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":11,"n":"IDLB - Unknown"}]},{"t":3,"p":1,"n":"CNAM - Combat Style"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":6,"s":1,"p":1,"n":"PKCU - Counter","c":[{"t":3,"p":1,"n":"Data Input Count"},{"t":3,"p":1,"n":"Package Template"},{"t":3,"p":1,"n":"Version Counter (autoincremented)"}]},{"t":6,"s":1,"p":1,"n":"Package Data","c":[{"t":8,"p":1,"n":"Data Input Values","c":[{"t":6,"p":1,"n":"Value","c":[{"t":2,"p":1,"n":"ANAM - Type"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Bool"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"n":"BNAM - Unknown"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":6,"p":1,"n":"PLDT - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Ref Alias"},{"t":3,"p":1,"n":"Loc Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":3,"p":1,"n":"Packdata Target"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Ref Collection Alias"},{"t":3,"p":1,"n":"Radius"},{"t":3,"p":1,"n":"Collection Index"}]},{"t":6,"p":1,"n":"PTDA - Target","c":[{"t":6,"p":1,"n":"Target Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Interrupt Data"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Count \/ Distance"}]}]},{"t":11,"n":"TPIC - Unknown"}]}]},{"t":8,"p":1,"n":"Data Inputs","c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]}]},{"t":11,"n":"XNAM - Marker"},{"t":6,"s":1,"p":1,"n":"Procedure Tree","c":[{"t":8,"p":1,"n":"Branches","c":[{"t":6,"p":1,"n":"Branch","c":[{"t":2,"p":1,"n":"ANAM - Branch Type"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"p":1,"n":"PRCB - Root","c":[{"t":3,"p":1,"n":"Branch Count"},{"t":3,"p":1,"n":"Flags"}]},{"t":2,"p":1,"n":"PNAM - Procedure Type"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"p":1,"n":"Data Input Indexes","c":[{"t":3,"p":1,"n":"PKC2 - Index"}]},{"t":8,"p":1,"n":"Flags Override","c":[{"t":6,"p":1,"n":"PFO2 - Data","c":[{"t":3,"p":1,"n":"Set General Flags"},{"t":3,"p":1,"n":"Clear General Flags"},{"t":3,"p":1,"n":"Set Interrupt Flags"},{"t":3,"p":1,"n":"Clear Interrupt Flags"},{"t":3,"p":1,"n":"Preferred Speed Override"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"PFOR - Unknown"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Data Inputs","d":1,"c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]},{"t":6,"s":1,"p":1,"n":"OnBegin","c":[{"p":1,"n":"POBA - OnBegin Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnEnd","c":[{"p":1,"n":"POEA - OnEnd Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnChange","c":[{"p":1,"n":"POCA - OnChange Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":1,"p":1,"n":"PARW - Placed Arrow","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PBAR - Placed Barrier","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PBEA - Placed Beam","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PCON - Placed Cone\/Voice","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PERK - Perk","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ICON - Image"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Trait"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Num Ranks"},{"t":3,"p":1,"n":"Playable"},{"t":3,"p":1,"n":"Hidden"}]},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":3,"p":1,"n":"NNAM - Next Perk"},{"t":2,"p":1,"n":"FNAM - SWF"},{"t":10,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":6,"p":1,"n":"PRKE - Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Priority"}]},{"t":6,"p":1,"n":"Quest + Stage","c":[{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Ability"},{"t":6,"p":1,"n":"Entry Point","c":[{"t":3,"p":1,"n":"Entry Point"},{"t":3,"p":1,"n":"Function"},{"t":3,"p":1,"n":"Perk Condition Tab Count"}]},{"t":10,"p":1,"n":"Perk Conditions","c":[{"t":6,"p":1,"n":"Perk Condition","c":[{"t":3,"p":1,"n":"PRKC - Run On (Tab Index)"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":6,"p":1,"n":"Function Parameters","c":[{"t":3,"p":1,"n":"EPFT - Type"},{"t":3,"p":1,"n":"EPFB - Perk Entry ID (unique)"},{"t":2,"p":1,"n":"EPF2 - Button Label"},{"t":6,"p":1,"n":"EPF3 - Script Flags","c":[{"t":3,"p":1,"n":"Script Flags"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Float"},{"t":6,"p":1,"n":"Float, Float","c":[{"t":5,"p":1,"n":"Float 1"},{"t":5,"p":1,"n":"Float 2"}]},{"t":3,"p":1,"n":"Leveled Item"},{"t":3,"p":1,"n":"Spell"},{"t":2,"p":1,"n":"Text"},{"t":6,"p":1,"n":"Actor Value, Float","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Float"}]}]},{"p":1,"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PFLA - Placed Flame","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PGRE - Placed Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PHZD - Placed Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PKIN - Pack-In","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":3,"p":1,"n":"CNAM - Cell"},{"t":3,"p":1,"n":"VNAM - Version"}]},{"t":1,"p":1,"n":"PMIS - Placed Missile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"n":"XASP - Unknown"},{"t":11,"n":"XATP - Unknown"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":11,"n":"XCVR - Unknown"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"PROJ - Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":11,"n":"DATA - Unused"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Gravity"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Muzzle Flash - Light"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Sound"},{"t":5,"p":1,"n":"Muzzle Flash - Duration"},{"t":5,"p":1,"n":"Fade Duration"},{"t":5,"p":1,"n":"Impact Force"},{"t":3,"p":1,"n":"Sound - Countdown"},{"t":3,"p":1,"n":"Sound - Disable"},{"t":3,"p":1,"n":"Default Weapon Source"},{"t":5,"p":1,"n":"Cone Spread"},{"t":5,"p":1,"n":"Collision Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Relaunch Interval"},{"t":3,"p":1,"n":"Decal Data"},{"t":3,"p":1,"n":"Collision Layer"},{"t":3,"p":1,"n":"Tracer Frequency"},{"t":3,"p":1,"n":"VATS Projectile"}]},{"t":6,"s":1,"p":1,"n":"Muzzle Flash Model","c":[{"t":2,"p":1,"n":"NAM1 - Model Filename"},{"t":11,"p":1,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"p":1,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"QUST - Quest","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"fragmentCount"},{"t":2,"p":1,"n":"scriptName"},{"t":6,"p":1,"n":"Script Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":11,"n":"Unused"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Quest Stage Index"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]},{"t":7,"p":1,"n":"Aliases","c":[{"t":6,"p":1,"n":"Alias","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Alias Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - General","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":2,"p":1,"n":"ENAM - Event"},{"t":3,"p":1,"n":"LNAM - Location"},{"t":3,"p":1,"n":"XNAM - Quest Completion XP"},{"t":8,"s":1,"p":1,"n":"Text Display Globals","d":1,"c":[{"t":3,"p":1,"n":"QTGL - Global"}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":6,"s":1,"p":1,"n":"Quest Dialogue Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":10,"p":1,"n":"Stages","d":1,"c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"INDX - Stage Index","c":[{"t":3,"p":1,"n":"Stage Index"},{"t":3,"p":1,"n":"Flags"},{"t":3,"n":"Unknown"}]},{"t":8,"p":1,"n":"Log Entries","c":[{"t":6,"p":1,"n":"Log Entry","c":[{"t":3,"p":1,"n":"QSDT - Stage Flags"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"NAM2 - Note"},{"t":2,"p":1,"n":"CNAM - Log Entry"},{"t":3,"p":1,"n":"NAM0 - Next Quest"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Objectives","d":1,"c":[{"t":6,"p":1,"n":"Objective","c":[{"t":3,"p":1,"n":"QOBJ - Objective Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":2,"p":1,"n":"NNAM - Display Text"},{"t":8,"p":1,"n":"Targets","c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Keyword"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},{"t":11,"n":"ANAM - Aliases Marker"},{"t":8,"s":1,"p":1,"n":"Aliases","d":1,"c":[{"t":6,"p":1,"n":"Alias","c":[{"t":3,"p":1,"n":"ALST - Reference Alias ID"},{"t":2,"p":1,"n":"ALID - Alias Name"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"p":1,"n":"ALFR - Forced Reference"},{"t":3,"p":1,"n":"ALUA - Unique Actor"},{"t":6,"p":1,"n":"Location Alias Reference","c":[{"t":3,"p":1,"n":"ALFA - Alias"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":3,"p":1,"n":"ALRT - Ref Type"}]},{"t":6,"p":1,"n":"External Alias Reference","c":[{"t":3,"p":1,"n":"ALEQ - Quest"},{"t":3,"p":1,"n":"ALEA - Alias"}]},{"t":6,"p":1,"n":"Create Reference to Object","c":[{"t":3,"p":1,"n":"ALCO - Object"},{"t":6,"p":1,"n":"ALCA - Alias","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Create"}]},{"t":3,"p":1,"n":"ALCL - Level"}]},{"t":6,"p":1,"n":"Find Matching Reference Near Alias","c":[{"t":3,"p":1,"n":"ALNA - Alias"},{"t":3,"p":1,"n":"ALNT - Type"}]},{"t":6,"p":1,"n":"Find Matching Reference From Event","c":[{"t":2,"p":1,"n":"ALFE - From Event"},{"t":11,"p":1,"n":"ALFD - Event Data"}]},{"t":3,"p":1,"n":"ALCC - Closest To Alias"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":7,"p":1,"n":"ALLA - Linked Aliases","c":[{"t":6,"p":1,"n":"Linked Alias","c":[{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Alias"}]}]},{"t":3,"p":1,"n":"ALDN - Display Name"},{"t":3,"p":1,"n":"ALFV - Forced Voice"},{"t":3,"p":1,"n":"ALDI - Death Item"},{"t":8,"p":1,"n":"Alias Spells","c":[{"t":3,"p":1,"n":"ALSP - Spell"}]},{"t":8,"p":1,"n":"Alias Factions","c":[{"t":3,"p":1,"n":"ALFC - Faction"}]},{"t":8,"p":1,"n":"Alias Package Data","c":[{"t":3,"p":1,"n":"ALPC - Package"}]},{"t":3,"p":1,"n":"VTCK - Voice Types"},{"p":1,"n":"ALED - Alias End"}]}]},{"t":2,"p":1,"n":"NNAM - Description"},{"t":3,"p":1,"n":"GNAM - Quest Group"},{"t":2,"p":1,"n":"SNAM - SWF File"}]},{"t":1,"n":"RACE - Race","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"STCP - Sound"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":3,"n":"WNAM - Skin"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":7,"n":"PRPS - Properties","c":[{"t":6,"n":"Property","c":[{"t":3,"n":"Actor Value"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"APPR - Attach Parent Slots","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":5,"n":"Male Height"},{"t":5,"n":"Female Height"},{"t":6,"n":"Male Default Weight","c":[{"t":5,"n":"Thin"},{"t":5,"n":"Muscular"},{"t":5,"n":"Fat"}]},{"t":6,"n":"Female Default Weight","c":[{"t":5,"n":"Thin"},{"t":5,"n":"Muscular"},{"t":5,"n":"Fat"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Acceleration Rate"},{"t":5,"n":"Deceleration Rate"},{"t":3,"n":"Size"},{"t":11,"n":"Unknown"},{"t":5,"n":"Injured Health Pct"},{"t":3,"n":"Shield Biped Object"},{"t":3,"n":"Beard Biped Object"},{"t":3,"n":"Body Biped Object"},{"t":5,"n":"Aim Angle Tolerance"},{"t":5,"n":"Flight Radius"},{"t":5,"n":"Angular Acceleration Rate"},{"t":5,"n":"Angular Tolerance"},{"t":3,"n":"Flags 2"},{"t":3,"n":"Pipboy Biped Object"},{"t":3,"n":"XP Value"},{"t":5,"n":"Severable - Debris Scale"},{"t":3,"n":"Severable - Debris Count"},{"t":3,"n":"Severable - Decal Count"},{"t":5,"n":"Explodable - Debris Scale"},{"t":3,"n":"Explodable - Debris Count"},{"t":3,"n":"Explodable - Decal Count"},{"t":3,"n":"Severable - Explosion"},{"t":3,"n":"Severable - Debris"},{"t":3,"n":"Severable - Impact DataSet"},{"t":3,"n":"Explodable - Explosion"},{"t":3,"n":"Explodable - Debris"},{"t":3,"n":"Explodable - Impact DataSet"},{"t":5,"n":"OnCripple - Debris Scale"},{"t":3,"n":"OnCripple - Debris Count"},{"t":3,"n":"OnCripple - Decal Count"},{"t":3,"n":"OnCripple - Explosion"},{"t":3,"n":"OnCripple - Debris"},{"t":3,"n":"OnCripple - Impact DataSet"},{"t":3,"n":"Explodable - Subsegment Explosion"},{"t":5,"n":"Orientation Limits - Pitch"},{"t":5,"n":"Orientation Limits - Roll"}]},{"n":"MNAM - Male Marker"},{"t":2,"n":"ANAM - Male Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"FNAM - Female Marker"},{"t":2,"n":"ANAM - Female Skeletal Model"},{"n":"NAM2 - Marker NAM2 #1"},{"t":8,"n":"Movement Type Names","c":[{"t":2,"n":"MTNM - Name"}]},{"t":7,"n":"VTCK - Voices","c":[{"t":3,"n":"Voice"}]},{"t":7,"n":"HCLF - Default Hair Colors","c":[{"t":3,"n":"Default Hair Color"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Action Points Mult"},{"t":3,"n":"Stagger Offset"}]},{"t":2,"n":"ATKE - Attack Event"},{"t":3,"n":"ATKW - Weapon Slot"},{"t":3,"n":"ATKS - Required Slot"},{"t":2,"n":"ATKT - Description"}]}]},{"t":6,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]}]}]},{"t":6,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]}]}]}]},{"t":3,"n":"GNAM - Body Part Data"},{"n":"NAM2 - Marker NAM2 #2"},{"n":"NAM3 - Marker NAM3 #3"},{"t":6,"n":"Male Behavior Graph","c":[{"n":"MNAM - Male Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":6,"n":"Female Behavior Graph","c":[{"n":"FNAM - Female Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":3,"n":"MODS - Material Swap"},{"t":5,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":3,"n":"NAM4 - Impact Material Type"},{"t":3,"n":"NAM5 - Impact Data Set"},{"t":3,"n":"NAM7 - Dismember Blood Art"},{"t":3,"n":"CNAM - Meat Cap TextureSet"},{"t":3,"n":"NAM2 - Collar TextureSet"},{"t":3,"n":"ONAM - Sound - Open Corpse"},{"t":3,"n":"LNAM - Sound - Close Corpse"},{"t":8,"n":"Biped Object Names","c":[{"t":2,"n":"NAME - Name"}]},{"t":7,"n":"RBPC - Biped Object Conditions","c":[{"t":3,"n":"Slot 30+"}]},{"t":10,"n":"Movement Data Overrides","c":[{"t":6,"n":"Override","c":[{"t":3,"n":"MTYP - Movement Type"},{"t":6,"n":"SPED - Movement Data","c":[{"t":5,"n":"Unknown"},{"t":5,"n":"Walk - Left"},{"t":5,"n":"Run - Left"},{"t":5,"n":"Walk - Right"},{"t":5,"n":"Run - Right"},{"t":5,"n":"Walk - Forward"},{"t":5,"n":"Run - Forward"},{"t":5,"n":"Sprint - Forward"},{"t":5,"n":"Walk - Back"},{"t":5,"n":"Run - Back"},{"t":5,"n":"Standing - Pitch"},{"t":5,"n":"Walk - Pitch"},{"t":5,"n":"Run - Pitch"},{"t":5,"n":"Sprint - Pitch"},{"t":5,"n":"Standing - Yaw"},{"t":5,"n":"Walk - Yaw"},{"t":5,"n":"Run - Yaw"},{"t":5,"n":"Sprint - Yaw"}]}]}]},{"t":3,"n":"VNAM - Equipment Flags"},{"t":8,"n":"Equip Slots","c":[{"t":6,"n":"Equip Slot","c":[{"t":3,"n":"QNAM - Equip Slot"},{"t":2,"n":"ZNAM - Node"}]}]},{"t":3,"n":"UNWP - Unarmed Weapon"},{"t":8,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"IH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"EH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"EY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AE","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AA","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AO","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"OY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"OW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"UH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"UW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"ER","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"AX","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"S","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Z","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"ZH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"F","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"TH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"V","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"M","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"N","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"NG","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"L","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"R","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"W","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Y","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"HH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"B","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"D","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"JH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"G","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"P","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"T","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"K","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"CH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"SHOTSIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"FLAP","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"},{"t":11,"n":"Unknown"}]}]}]},{"t":3,"n":"WKMV - Base Movement Defaults - Default"},{"t":3,"n":"SWMV - Base Movement Defaults - Swim"},{"t":3,"n":"FLMV - Base Movement Defaults - Fly"},{"t":3,"n":"SNMV - Base Movement Defaults - Sneak"},{"n":"NAM0 - Head Data Marker"},{"n":"MNAM - Male Data Marker"},{"t":6,"n":"NNAM - Male Neck Fat Adjustments Scale","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":10,"n":"Male Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":8,"n":"Male Race Presets","c":[{"t":3,"n":"RPRM - Preset NPC"}]},{"t":8,"n":"Male Hair Colors","c":[{"t":3,"n":"AHCM - Hair Color"}]},{"t":8,"n":"Male Face Details","c":[{"t":3,"n":"FTSM - Texture Set"}]},{"t":3,"n":"DFTM - Male Default Face Texture"},{"t":8,"n":"Male Tint Layers","c":[{"t":6,"n":"Group","c":[{"t":2,"n":"TTGP - Group Name"},{"t":8,"n":"Options","c":[{"t":6,"n":"Option","c":[{"t":6,"n":"TETI - Index","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Index"}]},{"t":2,"n":"TTGP - Name"},{"t":11,"n":"TTEF - Unknown"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Textures","c":[{"t":2,"n":"TTET - Texture"}]},{"t":11,"n":"TTEB - Unknown"},{"t":7,"n":"TTEC - Template Colors","c":[{"t":6,"n":"Template Color","c":[{"t":3,"n":"Color"},{"t":5,"n":"Alpha"},{"t":3,"n":"Template Index"},{"t":11,"n":"Unknown"}]}]},{"t":5,"n":"TTED - Unknown"}]}]},{"t":11,"n":"TTGE - Group End"}]}]},{"t":8,"n":"Male Morph Groups","c":[{"t":6,"n":"Morph Group","c":[{"t":2,"n":"MPGN - Name"},{"t":3,"n":"MPPC - Count"},{"t":8,"n":"Morph Presets","c":[{"t":6,"n":"Morph Preset","c":[{"t":3,"n":"MPPI - Index"},{"t":2,"n":"MPPN - Name"},{"t":2,"n":"MPPM - Unknown"},{"t":3,"n":"MPPT - Texture"},{"t":11,"n":"MPPF - Unknown"}]}]},{"t":11,"n":"MPPK - Unknown"},{"t":11,"n":"MPGS - Unknown"}]}]},{"t":8,"n":"Male Face Morphs","c":[{"t":6,"n":"Face Morph","c":[{"t":3,"n":"FMRI - Index"},{"t":2,"n":"FMRN - Name"}]}]},{"t":2,"n":"WMAP - Male Wrinkle Map Path"},{"n":"FNAM - Female Data Marker"},{"t":6,"n":"NNAM - Female Neck Fat Adjustments Scale","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":10,"n":"Female Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":8,"n":"Female Race Presets","c":[{"t":3,"n":"RPRF - Preset NPC"}]},{"t":8,"n":"Female Hair Colors","c":[{"t":3,"n":"AHCF - Hair Color"}]},{"t":8,"n":"Female Face Details","c":[{"t":3,"n":"FTSF - Texture Set"}]},{"t":3,"n":"DFTF - Female Default Face Texture"},{"t":8,"n":"Female Tint Layers","c":[{"t":6,"n":"Group","c":[{"t":2,"n":"TTGP - Group Name"},{"t":8,"n":"Options","c":[{"t":6,"n":"Option","c":[{"t":6,"n":"TETI - Index","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Index"}]},{"t":2,"n":"TTGP - Name"},{"t":11,"n":"TTEF - Unknown"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Actor"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Player Action"},{"t":3,"n":"Alias"},{"t":3,"n":"Alignment"},{"t":3,"n":"Association Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Faction"},{"t":3,"n":"Form List"},{"t":3,"n":"Form Type"},{"t":3,"n":"Furniture"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Global"},{"t":3,"n":"Idle"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Keyword"},{"t":3,"n":"Location"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Owner"},{"t":3,"n":"Package"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Perk"},{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Race"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Region"},{"t":3,"n":"Scene"},{"t":3,"n":"Sex"},{"t":3,"n":"Shout"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (unused)"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Ward State"},{"t":3,"n":"Weather"},{"t":3,"n":"Worldspace"},{"t":3,"n":"Damage Type"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Textures","c":[{"t":2,"n":"TTET - Texture"}]},{"t":11,"n":"TTEB - Unknown"},{"t":7,"n":"TTEC - Template Colors","c":[{"t":6,"n":"Template Color","c":[{"t":3,"n":"Color"},{"t":5,"n":"Alpha"},{"t":3,"n":"Template Index"},{"t":11,"n":"Unknown"}]}]},{"t":5,"n":"TTED - Unknown"}]}]},{"t":11,"n":"TTGE - Group End"}]}]},{"t":8,"n":"Female Morph Groups","c":[{"t":6,"n":"Morph Group","c":[{"t":2,"n":"MPGN - Name"},{"t":3,"n":"MPPC - Count"},{"t":8,"n":"Morph Presets","c":[{"t":6,"n":"Morph Preset","c":[{"t":3,"n":"MPPI - Index"},{"t":2,"n":"MPPN - Name"},{"t":2,"n":"MPPM - Unknown"},{"t":3,"n":"MPPT - Texture"},{"t":11,"n":"MPPF - Unknown"}]}]},{"t":11,"n":"MPPK - Unknown"},{"t":11,"n":"MPGS - Unknown"}]}]},{"t":8,"n":"Female Face Morphs","c":[{"t":6,"n":"Face Morph","c":[{"t":3,"n":"FMRI - Index"},{"t":2,"n":"FMRN - Name"}]}]},{"t":2,"n":"WMAP - Female Wrinkle Map Path"},{"t":3,"n":"NAM8 - Morph Race"},{"t":3,"n":"RNAM - Armor Race"},{"t":3,"n":"SRAC - Subgraph Template Race"},{"t":3,"n":"SADD - Subgraph Additive Race"},{"t":8,"n":"Subgraph Data","c":[{"t":6,"n":"Data","c":[{"t":2,"n":"SGNM - Behaviour Graph"},{"t":8,"n":"Actor Keywords","c":[{"t":3,"n":"SAKD - Keyword"}]},{"t":8,"n":"Target Keywords","c":[{"t":3,"n":"STKD - Keyword"}]},{"t":8,"n":"Animation Paths","c":[{"t":2,"n":"SAPT - Path"}]},{"t":6,"n":"SRAF - Flags","c":[{"t":3,"n":"Role"},{"t":3,"n":"Perspective"}]}]}]},{"t":5,"n":"PTOP - Idle Chatter Time Min"},{"t":5,"n":"NTOP - Idle Chatter Time Max"},{"t":8,"n":"Morph Values","c":[{"t":6,"n":"Value","c":[{"t":3,"n":"MSID - Index"},{"t":2,"n":"MSM0 - Min Name"},{"t":2,"n":"MSM1 - Max Name"}]}]},{"t":11,"n":"MLSI - Unknown"},{"t":2,"n":"HNAM - Hair Color Lookup Texture"},{"t":2,"n":"HLTX - Hair Color Extended Lookup Texture"},{"t":3,"n":"QSTI - Dialogue Quest"},{"t":8,"n":"Bone Data","c":[{"t":6,"n":"Data","c":[{"t":3,"n":"BSMP - Gender"},{"t":8,"n":"Bones","c":[{"t":6,"n":"Bone","c":[{"t":2,"n":"BSMB - Name"},{"t":7,"n":"BSMS - Values","c":[{"t":5,"n":"Value"}]},{"t":11,"n":"BMMP - Unknown"}]}]}]}]}]},{"t":1,"p":1,"n":"REFR - Placed Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":6,"s":1,"p":1,"n":"XMBO - Bound Half Extents","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"XPRM - Primitive","c":[{"t":6,"p":1,"n":"Bounds","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":7,"p":1,"n":"XPOD - Portal Data","c":[{"t":6,"p":1,"n":"References","c":[{"t":3,"p":1,"n":"Origin"},{"t":3,"p":1,"n":"Destination"}]}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"s":1,"p":1,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":6,"s":1,"p":1,"n":"Bound Data","c":[{"t":6,"p":1,"n":"XRMR - Header","c":[{"t":3,"p":1,"n":"Linked Rooms Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"LNAM - Lighting Template"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":8,"p":1,"n":"Linked Rooms","c":[{"t":3,"p":1,"n":"XLRM - Linked Room"}]}]},{"p":1,"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":6,"s":1,"p":1,"n":"XLIG - Light Data","c":[{"t":5,"p":1,"n":"FOV 90+\/-"},{"t":5,"p":1,"n":"Fade 1.0+\/-"},{"t":5,"p":1,"n":"End Distance Cap"},{"t":5,"p":1,"n":"Shadow Depth Bias"},{"t":5,"p":1,"n":"Near Clip"},{"t":5,"p":1,"n":"Volumetric Intensity"}]},{"t":6,"s":1,"p":1,"n":"XALP - Alpha","c":[{"t":3,"p":1,"n":"Cutoff"},{"t":3,"p":1,"n":"Base"}]},{"t":6,"s":1,"p":1,"n":"XTEL - Teleport Destination","c":[{"t":3,"p":1,"n":"Door"},{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Transition Interior"}]},{"t":3,"p":1,"n":"XTNM - Teleport Loc Name"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XASP - Acoustic Restriction"},{"p":1,"n":"XATP - Activation Point"},{"t":3,"p":1,"n":"XAMC - Ammo Count"},{"p":1,"n":"XLKT - Linked Ref Transient"},{"t":3,"p":1,"n":"XLYR - Layer"},{"t":3,"p":1,"n":"XMSP - Material Swap"},{"t":3,"p":1,"n":"XRFG - Reference Group"},{"t":6,"s":1,"p":1,"n":"XRDO - Radio","c":[{"t":5,"p":1,"n":"Frequency"},{"t":5,"p":1,"n":"Min Weak Distance"},{"t":5,"p":1,"n":"Max Weak Distance"},{"t":3,"p":1,"n":"Flags"}]},{"t":6,"s":1,"p":1,"n":"XBSD - Spline","c":[{"t":5,"p":1,"n":"Slack"},{"t":5,"p":1,"n":"Thickness"},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Wind - Detached End"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"XPDD - Projected Decal","c":[{"t":5,"p":1,"n":"Width Scale"},{"t":5,"p":1,"n":"Height Scale"}]},{"t":3,"p":1,"n":"XSPC - Spawn Container"},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"p":1,"n":"XLIB - Leveled Item Base Object"},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XTRI - Collision Layer"},{"t":6,"s":1,"p":1,"n":"XLOC - Lock Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Key"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"XNDP - Navigation Door Link","c":[{"t":3,"p":1,"n":"Navigation Mesh"},{"t":3,"p":1,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":6,"s":1,"p":1,"n":"XOWN - Owner","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XRNK - Owner Faction Rank"},{"t":3,"p":1,"n":"XCNT - Item Count"},{"t":3,"p":1,"n":"XHLT - Health %"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":8,"s":1,"p":1,"n":"Patrol","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":3,"p":1,"n":"XACT - Action Flag"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"p":1,"n":"ONAM - Open by Default"},{"t":6,"s":1,"p":1,"n":"Map Marker","c":[{"p":1,"n":"XMRK - Map Marker Data"},{"t":3,"p":1,"n":"FNAM - Map Flags"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"TNAM - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XATR - Attach Ref"},{"t":8,"s":1,"p":1,"n":"Spline Connection","d":1,"c":[{"t":6,"p":1,"n":"XPLK - Link","c":[{"t":3,"p":1,"n":"Ref"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"Power Grid","c":[{"t":3,"p":1,"n":"XWPG - Count"},{"t":8,"p":1,"n":"Connections","c":[{"t":6,"p":1,"n":"XWPN - Connection","c":[{"t":3,"p":1,"n":"Node 1"},{"t":3,"p":1,"n":"Node 2"},{"t":3,"p":1,"n":"Line"}]}]}]},{"t":11,"n":"XCVR - Unknown"},{"t":11,"n":"XCVL - Unknown"},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":2,"p":1,"n":"MNAM - Comments"}]},{"t":1,"p":1,"n":"REGN - Region","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"RCLR - Map Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":8,"s":1,"p":1,"n":"Region Areas","d":1,"c":[{"t":6,"p":1,"n":"Region Area","c":[{"t":3,"p":1,"n":"RPLI - Edge Fall-off"},{"t":7,"p":1,"n":"RPLD - Region Point List Data","c":[{"t":6,"p":1,"n":"Point","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":11,"n":"ANAM - Unknown"}]}]},{"t":10,"p":1,"n":"Region Data Entries","d":1,"c":[{"t":6,"p":1,"n":"Region Data Entry","c":[{"t":6,"p":1,"n":"RDAT - Data Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":3,"p":1,"n":"RDMO - Music"},{"t":7,"p":1,"n":"RDSA - Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Chance"}]}]},{"t":2,"p":1,"n":"RDMP - Map Name"},{"t":7,"p":1,"n":"RDOT - Objects","c":[{"t":6,"p":1,"n":"Object","c":[{"t":3,"p":1,"n":"Object"},{"t":3,"p":1,"n":"Parent Index"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Clustering"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Radius wrt Parent"},{"t":3,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Sink"},{"t":5,"p":1,"n":"Sink Variance"},{"t":5,"p":1,"n":"Size Variance"},{"t":6,"p":1,"n":"Angle Variance","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]}]}]},{"t":7,"p":1,"n":"RDGS - Grasses","c":[{"t":6,"p":1,"n":"Grass","c":[{"t":3,"p":1,"n":"Grass"},{"t":11,"n":"Unknown"}]}]},{"t":7,"p":1,"n":"RDWT - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":5,"p":1,"n":"RLDM - LOD Display Distance Multiplier"},{"t":5,"p":1,"n":"ANAM - Occlusion Accuracy Dist"}]}]}]},{"t":1,"p":1,"n":"RELA - Relationship","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Child"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Association Type"}]}]},{"t":1,"p":1,"n":"REVB - Reverb Parameters","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Decay Time (ms)"},{"t":3,"p":1,"n":"HF Reference (Hz)"},{"t":3,"p":1,"n":"Room Filter"},{"t":3,"p":1,"n":"Room HF Filter"},{"t":3,"p":1,"n":"Reflections"},{"t":3,"p":1,"n":"Reverb Amp"},{"t":3,"p":1,"n":"Decay HF Ratio"},{"t":3,"p":1,"n":"Reflect Delay (ms), scaled"},{"t":3,"p":1,"n":"Reverb Delay (ms)"},{"t":3,"p":1,"n":"Diffusion %"},{"t":3,"p":1,"n":"Density %"},{"t":3,"n":"Unknown"}]},{"t":3,"p":1,"n":"ANAM - Reverb Class"}]},{"t":1,"p":1,"n":"RFCT - Visual Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Effect Data","c":[{"t":3,"p":1,"n":"Effect Art"},{"t":3,"p":1,"n":"Shader"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"RFGP - Reference Group","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"NNAM - Name"},{"t":3,"p":1,"n":"RNAM - Reference"},{"t":11,"n":"PNAM - Unknown"}]},{"t":1,"p":1,"n":"SCCO - Scene Collection","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Scenes","d":1,"c":[{"t":6,"p":1,"n":"Scene","c":[{"t":3,"p":1,"n":"SNAM - Scene"},{"t":6,"n":"XNAM - Unknown","c":[{"t":3,"n":"Unknown"}]}]}]},{"t":11,"n":"VNAM - Unknown"},{"t":8,"n":"Unknown","c":[{"t":6,"n":"XNAM - Unknown","c":[{"t":3,"n":"Unknown"}]}]}]},{"t":1,"p":1,"n":"SCEN - Scene","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]},{"t":7,"p":1,"n":"Phase Fragments","c":[{"t":6,"p":1,"n":"Phase Fragment","c":[{"t":3,"p":1,"n":"Phase Flag"},{"t":3,"p":1,"n":"Phase Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"s":1,"p":1,"n":"Phases","d":1,"c":[{"t":6,"p":1,"n":"Phase","c":[{"p":1,"n":"HNAM - Marker Phase Start"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":6,"p":1,"n":"Start Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker Start Conditions"},{"t":6,"p":1,"n":"Completion Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker Completion Conditions"},{"t":3,"p":1,"n":"WNAM - Editor Width"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":6,"p":1,"n":"SCQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Start"},{"t":3,"p":1,"n":"On Completion"}]},{"p":1,"n":"HNAM - Marker Phase End"}]}]},{"t":8,"s":1,"p":1,"n":"Actors","d":1,"c":[{"t":6,"p":1,"n":"Actor","c":[{"t":3,"p":1,"n":"ALID - Alias ID"},{"t":3,"p":1,"n":"LNAM - Flags"},{"t":3,"p":1,"n":"DNAM - Behaviour Flags"}]}]},{"t":8,"s":1,"p":1,"n":"Actions","d":1,"c":[{"t":6,"p":1,"n":"Action","c":[{"t":3,"p":1,"n":"ANAM - Type"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":3,"p":1,"n":"ALID - Alias ID"},{"t":3,"p":1,"n":"INAM - Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Start Phase"},{"t":3,"p":1,"n":"ENAM - End Phase"},{"t":5,"p":1,"n":"SNAM - Timer - Max Seconds"},{"t":3,"p":1,"n":"SCQS - Set Parent Quest Stage"},{"t":5,"p":1,"n":"TNAM - Timer - Min Seconds"},{"t":11,"n":"STSC - Unknown"},{"t":8,"p":1,"n":"Start Scenes","c":[{"t":6,"p":1,"n":"Start Scene","c":[{"t":3,"p":1,"n":"LCEP - Scene"},{"t":3,"p":1,"n":"INTT - Phase Index"},{"t":2,"p":1,"n":"SSPN - Start Phase for Scene"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":3,"p":1,"n":"PTOP - Player Positive Response"},{"t":3,"p":1,"n":"NTOP - Player Negative Response"},{"t":3,"p":1,"n":"NETO - Player Neutral Response"},{"t":3,"p":1,"n":"QTOP - Player Question Response"},{"t":3,"p":1,"n":"VENC - Player Positive Dialogue Subtype"},{"t":3,"p":1,"n":"PLVD - Player Negative Dialogue Subtype"},{"t":3,"p":1,"n":"JOUT - Player Neutral Dialogue Subtype"},{"t":3,"p":1,"n":"DALC - Player Question Dialogue Subtype"},{"t":7,"p":1,"n":"DTID - NPC Headtracking","c":[{"t":3,"p":1,"n":"Actor ID"}]},{"t":3,"p":1,"n":"NPOT - NPC Positive Response"},{"t":3,"p":1,"n":"NNGT - NPC Negative Response"},{"t":3,"p":1,"n":"NNUT - NPC Neutral Response"},{"t":3,"p":1,"n":"NQUT - NPC Question Response"},{"t":3,"p":1,"n":"NPOS - NPC Positive Dialogue Subtype"},{"t":3,"p":1,"n":"NNGS - NPC Negative Dialogue Subtype"},{"t":3,"p":1,"n":"NNUS - NPC Neutral Dialogue Subtype"},{"t":3,"p":1,"n":"NQUS - NPC Question Dialogue Subtype"},{"t":3,"p":1,"n":"DTGT - Dialogue Target Actor"},{"t":8,"p":1,"n":"Packages","c":[{"t":3,"p":1,"n":"PNAM - Package"}]},{"t":3,"p":1,"n":"DATA - Topic"},{"p":1,"n":"End Scene Say Greeting"},{"t":3,"p":1,"n":"Play Sound"},{"t":5,"p":1,"n":"DMAX - Looping - Max"},{"t":5,"p":1,"n":"DMIN - Looping - Min"},{"t":6,"p":1,"n":"CRIS - Camera","c":[{"t":5,"p":1,"n":"FOV On Player Camera"},{"t":5,"p":1,"n":"Rate Of Camera Change"}]},{"t":3,"p":1,"n":"DEMO - Emotion Type"},{"t":3,"p":1,"n":"DEVA - Emotion Value"},{"t":7,"p":1,"n":"HTID - Player Headtracking","c":[{"t":3,"p":1,"n":"Actor ID"}]},{"t":3,"p":1,"n":"VENC - Dialogue Subtype"},{"t":3,"p":1,"n":"PNAM - AnimArchType"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"},{"p":1,"n":"ANAM - End Marker"}]}]},{"t":3,"p":1,"n":"PNAM - Quest"},{"t":3,"p":1,"n":"INAM - Last Action Index"},{"t":11,"n":"VNAM - Unknown"},{"t":5,"p":1,"n":"CNAM - Camera Distance Override"},{"t":5,"p":1,"n":"ACTV - Dialogue Distance Override"},{"t":5,"p":1,"n":"CRIS - FOV Override"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"SCQS - Set Parent Quest Stage","c":[{"t":3,"p":1,"n":"On Begin"},{"t":3,"p":1,"n":"On End"}]},{"t":2,"p":1,"n":"NNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Template Scene"},{"t":3,"p":1,"n":"XNAM - Index"}]},{"t":1,"p":1,"n":"SCOL - Static Collection","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":10,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"ONAM - Static"},{"t":7,"p":1,"n":"DATA - Placements","c":[{"t":6,"p":1,"n":"Placement","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Scale"}]}]}]}]}]},{"t":1,"p":1,"n":"SCSN - Audio Category Snapshot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Priority"},{"t":8,"s":1,"p":1,"n":"Category Multipliers","d":1,"c":[{"t":6,"p":1,"n":"CNAM - Category Multiplier","c":[{"t":3,"p":1,"n":"Categoty"},{"t":5,"p":1,"n":"Multiplier"}]}]}]},{"t":1,"p":1,"n":"SMBN - Story Manager Branch Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"}]},{"t":1,"p":1,"n":"SMEN - Story Manager Event Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"},{"t":2,"p":1,"n":"ENAM - Type"}]},{"t":1,"p":1,"n":"SMQN - Story Manager Quest Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Flags","c":[{"t":3,"p":1,"n":"Node Flags"},{"t":3,"p":1,"n":"Quest Flags"}]},{"t":3,"p":1,"n":"XNAM - Max concurrent quests"},{"t":3,"p":1,"n":"MNAM - Num quests to run"},{"t":5,"p":1,"n":"HNAM - Hours until reset"},{"t":3,"n":"QNAM - Quest Count"},{"t":10,"p":1,"n":"Quests","d":1,"c":[{"t":6,"p":1,"n":"Quest","c":[{"t":3,"p":1,"n":"NNAM - Quest"},{"t":11,"n":"FNAM - Unknown"},{"t":5,"p":1,"n":"RNAM - Hours until reset"}]}]}]},{"t":1,"p":1,"n":"SNCT - Sound Category","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"PNAM - Parent Category"},{"t":3,"p":1,"n":"ONAM - Menu Slider Category"},{"t":3,"p":1,"n":"VNAM - Static Volume Multiplier"},{"t":3,"p":1,"n":"UNAM - Default Menu Value"},{"t":5,"p":1,"n":"MNAM - Min Frequency Multiplier"},{"t":5,"p":1,"n":"CNAM - Sidechain Target Multiplier"}]},{"t":1,"p":1,"n":"SNDR - Sound Descriptor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"NNAM - Notes"},{"t":3,"p":1,"n":"CNAM - Descriptor Type"},{"t":3,"p":1,"n":"GNAM - Category"},{"t":3,"p":1,"n":"SNAM - Alternate Sound For"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"Sound Files","c":[{"t":2,"p":1,"n":"ANAM - File Name"}]}]},{"t":3,"p":1,"n":"ONAM - Output Model"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"LNAM - Values","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Looping"},{"t":3,"p":1,"n":"Sidechain"},{"t":3,"p":1,"n":"Rumble Send Value = (Small \/ 7) + ((Big \/ 7) * 16)"}]},{"t":6,"s":1,"p":1,"n":"Values","c":[{"t":3,"p":1,"n":"% Frequency Shift"},{"t":3,"p":1,"n":"% Frequency Variance"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"db Variance"},{"t":3,"p":1,"n":"Static Attenuation (db)"}]},{"t":3,"p":1,"n":"Base Descriptor"},{"t":8,"s":1,"p":1,"n":"Descriptors","d":1,"c":[{"t":3,"p":1,"n":"DNAM - Descriptor"}]},{"t":3,"n":"ITMC - Count"},{"t":10,"p":1,"n":"Rates of Fire","d":1,"c":[{"t":6,"p":1,"n":"Sound","c":[{"p":1,"n":"ITMS - Marker Start"},{"t":3,"p":1,"n":"INTV - RoF (RPM)"},{"t":2,"p":1,"n":"FNAM - File"},{"p":1,"n":"ITME - Marker End"}]}]}]},{"t":1,"p":1,"n":"SOPM - Sound Output Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"NAM1 - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reverb Send %"}]},{"t":3,"p":1,"n":"MNAM - Type"},{"t":3,"p":1,"n":"VNAM - Static Attenuation"},{"t":6,"s":1,"p":1,"n":"ONAM - Output Values","c":[{"t":7,"p":1,"n":"Channels","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"FL"},{"t":3,"p":1,"n":"FR"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"SL"},{"t":3,"p":1,"n":"SR"}]}]}]},{"t":6,"s":1,"p":1,"n":"ATTN - Attenuation Values","c":[{"t":5,"p":1,"n":"Fade In Distance - Start"},{"t":5,"p":1,"n":"Fade In Distance - End"},{"t":5,"p":1,"n":"Fade Out Distance - Start"},{"t":5,"p":1,"n":"Fade Out Distance - End"},{"t":6,"p":1,"n":"Fade In Curve","c":[{"t":3,"p":1,"n":"Value 1"},{"t":3,"p":1,"n":"Value 2"},{"t":3,"p":1,"n":"Value 3"},{"t":3,"p":1,"n":"Value 4"}]},{"t":6,"p":1,"n":"Fade Out Curve","c":[{"t":3,"p":1,"n":"Value 1"},{"t":3,"p":1,"n":"Value 2"},{"t":3,"p":1,"n":"Value 3"},{"t":3,"p":1,"n":"Value 4"}]}]},{"t":3,"p":1,"n":"ENAM - Effect Chain"}]},{"t":1,"p":1,"n":"SOUN - Sound Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SDSC - Sound Descriptor"},{"t":6,"s":1,"p":1,"n":"REPT - Repeat","c":[{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Max Time"},{"t":3,"p":1,"n":"Stackable"}]}]},{"t":1,"p":1,"n":"SPEL - Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Casting Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SPGD - Shader Particle Geometry","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":5,"p":1,"n":"Gravity Velocity"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Rotation Velocity"},{"t":5,"p":1,"n":"Particle Size X"},{"t":5,"p":1,"n":"Center Offset Min"},{"t":5,"p":1,"n":"Particle Size Y"},{"t":5,"p":1,"n":"Center Offset Max"},{"t":5,"p":1,"n":"Initial Rotation"},{"t":3,"p":1,"n":"# of Subtextures X"},{"t":3,"p":1,"n":"# of Subtextures Y"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Box Size"},{"t":5,"p":1,"n":"Particle Density"}]},{"t":2,"p":1,"n":"MNAM - Particle Texture"}]},{"t":1,"p":1,"n":"STAG - Animation Sound Tag Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"TNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":2,"p":1,"n":"Action"}]}]}]},{"t":1,"p":1,"n":"STAT - Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":3,"p":1,"n":"FTYP - Forced Loc Ref Type"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - Direction Material","c":[{"t":5,"p":1,"n":"Max Angle (30-120)"},{"t":3,"p":1,"n":"Material"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]},{"t":6,"s":1,"p":1,"n":"NVNM - Navmesh Geometry","c":[{"t":3,"p":1,"n":"Version"},{"t":11,"p":1,"n":"Magic"},{"t":3,"p":1,"n":"Parent Worldspace"},{"t":6,"p":1,"n":"Coordinates","c":[{"t":3,"p":1,"n":"Grid Y"},{"t":3,"p":1,"n":"Grid X"}]},{"t":3,"p":1,"n":"Parent Cell"},{"t":11,"p":1,"n":"Vertices and Triangles"}]},{"t":7,"p":1,"n":"MNAM - Distant LOD","c":[{"t":6,"p":1,"n":"LOD","c":[{"t":2,"p":1,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"TERM - Terminal","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"NAM0 - Header Text"},{"t":2,"p":1,"n":"WNAM - Welcome Text"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":7,"p":1,"n":"PRPS - Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Value"}]}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags"},{"t":11,"n":"WBDT - Workbench Data (unused)"},{"t":2,"p":1,"n":"XMRK - Marker Model"},{"t":7,"p":1,"n":"SNAM - Marker Paramaters","c":[{"t":6,"p":1,"n":"Marker","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Offset Z"},{"t":5,"p":1,"n":"Rotation Z"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Entry Types"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"BSIZ - Count"},{"t":8,"s":1,"p":1,"n":"Body Text","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":2,"p":1,"n":"BTXT - Text"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":3,"n":"ISIZ - Count"},{"t":8,"s":1,"p":1,"n":"Menu Items","d":1,"c":[{"t":6,"p":1,"n":"Menu Item","c":[{"t":2,"p":1,"n":"ITXT - Item Text"},{"t":2,"p":1,"n":"RNAM - Response Text"},{"t":3,"p":1,"n":"ANAM - Type"},{"t":3,"p":1,"n":"ITID - Item ID"},{"t":2,"p":1,"n":"UNAM - Display Text"},{"t":2,"p":1,"n":"VNAM - Show Image"},{"t":3,"p":1,"n":"TNAM - Submenu"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Shout"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (unused)"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"TREE - Tree","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer"},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Tree Data","c":[{"t":5,"p":1,"n":"Trunk Flexibility"},{"t":5,"p":1,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"TRNS - Transform","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":5,"p":1,"n":"Scale"},{"t":5,"p":1,"n":"Zoom Min"},{"t":5,"p":1,"n":"Zoom Max"}]}]},{"t":1,"p":1,"n":"TXST - Texture Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Textures (RGB\/A)","c":[{"t":2,"p":1,"n":"TX00 - Difuse"},{"t":2,"p":1,"n":"TX01 - Normal\/Gloss"},{"t":2,"p":1,"n":"TX03 - Glow"},{"t":2,"p":1,"n":"TX04 - Height"},{"t":2,"p":1,"n":"TX05 - Environment"},{"t":2,"p":1,"n":"TX02 - Wrinkles"},{"t":2,"p":1,"n":"TX06 - Multilayer"},{"t":2,"p":1,"n":"TX07 - Smooth Spec"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Alpha Threshold?"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":2,"p":1,"n":"MNAM - Material"}]},{"t":1,"p":1,"n":"VTYP - Voice Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Flags"}]},{"t":1,"p":1,"n":"WATR - Water","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"ANAM - Opacity (unused)"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"TNAM - Material (unused)"},{"t":3,"p":1,"n":"SNAM - Open Sound"},{"t":3,"p":1,"n":"XNAM - Consume Spell"},{"t":3,"p":1,"n":"YNAM - Contact Spell"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":11,"n":"DATA - Unused"},{"t":6,"s":1,"p":1,"n":"DNAM - Visual Data","c":[{"t":6,"p":1,"n":"Fog Properties","c":[{"t":5,"p":1,"n":"Depth Amount"},{"t":6,"p":1,"n":"Shallow Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Deep Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Shallow Range"},{"t":5,"p":1,"n":"Color Deep Range"},{"t":5,"p":1,"n":"Shallow Alpha"},{"t":5,"p":1,"n":"Deep Alpha"},{"t":5,"p":1,"n":"Alpha Shallow Range"},{"t":5,"p":1,"n":"Alpha Deep Range"},{"t":6,"p":1,"n":"Underwater Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Underwater Fog Amount"},{"t":5,"p":1,"n":"Underwater Near Fog"},{"t":5,"p":1,"n":"Underwater Far Fog"}]},{"t":6,"p":1,"n":"Physical Properties","c":[{"t":5,"p":1,"n":"Normal Magnitude"},{"t":5,"p":1,"n":"Shallow Normal Falloff"},{"t":5,"p":1,"n":"Deep Normal Falloff"},{"t":5,"p":1,"n":"Reflectivity Amount"},{"t":5,"p":1,"n":"Fresnel Amount"},{"t":5,"p":1,"n":"Surface Effect Falloff"},{"t":6,"p":1,"n":"Displacement Simulator","c":[{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Velocity"},{"t":5,"p":1,"n":"Falloff"},{"t":5,"p":1,"n":"Dampener"},{"t":5,"p":1,"n":"Starting Size"}]},{"t":6,"p":1,"n":"Reflection Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular Properties","c":[{"t":5,"p":1,"n":"Sun Specular Power"},{"t":5,"p":1,"n":"Sun Specular Magnitude"},{"t":5,"p":1,"n":"Sun Sparkle Power"},{"t":5,"p":1,"n":"Sun Sparkle Magnitude"},{"t":5,"p":1,"n":"Interior Specular Radius"},{"t":5,"p":1,"n":"Interior Specular Brightness"},{"t":5,"p":1,"n":"Interior Specular Power"}]},{"t":6,"p":1,"n":"Noise Properties","c":[{"t":5,"p":1,"n":"Layer 1 - Wind Direction"},{"t":5,"p":1,"n":"Layer 2 - Wind Direction"},{"t":5,"p":1,"n":"Layer 3 - Wind Direction"},{"t":5,"p":1,"n":"Layer 1 - Wind Speed"},{"t":5,"p":1,"n":"Layer 2 - Wind Speed"},{"t":5,"p":1,"n":"Layer 3 - Wind Speed"},{"t":5,"p":1,"n":"Layer 1 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 2 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 3 - Amplitude Scale"},{"t":5,"p":1,"n":"Layer 1 - UV Scale"},{"t":5,"p":1,"n":"Layer 2 - UV Scale"},{"t":5,"p":1,"n":"Layer 3 - UV Scale"},{"t":5,"p":1,"n":"Layer 1 - Noise Falloff"},{"t":5,"p":1,"n":"Layer 2 - Noise Falloff"},{"t":5,"p":1,"n":"Layer 3 - Noise Falloff"}]},{"t":6,"p":1,"n":"Silt Properties","c":[{"t":5,"p":1,"n":"Silt Amount"},{"t":6,"p":1,"n":"Light Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Dark Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"Screen Space Reflections"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"s":1,"p":1,"n":"NAM0 - Linear Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"NAM1 - Angular Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"NAM2 - Layer 1 Noise Texture"},{"t":2,"p":1,"n":"NAM3 - Layer 2 Noise Texture"},{"t":2,"p":1,"n":"NAM4 - Layer 3 Noise Texture"}]},{"t":1,"p":1,"n":"WEAP - Weapon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Struct","c":[{"t":7,"p":1,"n":"Struct","c":[{"t":6,"p":1,"n":"Member","c":[{"t":2,"p":1,"n":"memberName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"PTRN - Preview Transform"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]},{"t":2,"p":1,"n":"ICON - Inventory Image"},{"t":2,"p":1,"n":"MICO - Message Icon"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":7,"p":1,"n":"DAMC - Resistances","c":[{"t":6,"p":1,"n":"Resistance","c":[{"t":3,"p":1,"n":"Damage Type"},{"t":3,"p":1,"n":"Value"}]}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":2,"p":1,"n":"DSTA - Sequence Name"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":5,"p":1,"n":"DMDC - Color Remapping Index"},{"t":3,"p":1,"n":"DMDS - Material Swap"}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"INRD - Instance Naming"},{"t":7,"p":1,"n":"APPR - Attach Parent Slots","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Object Template","c":[{"t":3,"p":1,"n":"OBTE - Count"},{"t":8,"p":1,"n":"Combinations","c":[{"t":6,"p":1,"n":"Combination","c":[{"p":1,"n":"OBTF - Editor Only"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"OBTS - Object Mod Template Item","c":[{"t":3,"p":1,"n":"Include Count"},{"t":3,"p":1,"n":"Property Count"},{"t":3,"p":1,"n":"Level Min"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Level Max"},{"t":3,"p":1,"n":"ID"},{"t":3,"p":1,"n":"Default"},{"t":7,"p":1,"n":"Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"Min Level For Ranks"},{"t":3,"p":1,"n":"Alt Levels Per Tier"},{"t":7,"p":1,"n":"Includes","c":[{"t":6,"p":1,"n":"Include","c":[{"t":3,"p":1,"n":"Mod"},{"t":3,"p":1,"n":"Attach Point Index"},{"t":3,"p":1,"n":"Optional"},{"t":3,"p":1,"n":"Don't Use All"}]}]},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":3,"p":1,"n":"Value Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Function Type"},{"t":3,"p":1,"n":"Property"},{"t":11,"n":"Value 1 - Unknown"},{"t":3,"p":1,"n":"Value 1 - Int"},{"t":5,"p":1,"n":"Value 1 - Float"},{"t":3,"p":1,"n":"Value 1 - Bool"},{"t":3,"p":1,"n":"Value 1 - FormID"},{"t":3,"p":1,"n":"Value 1 - Enum"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Stagger Value"},{"t":3,"p":1,"n":"Hit Behaviour"},{"t":3,"p":1,"n":"Value 2 - Int"},{"t":5,"p":1,"n":"Value 2 - Float"},{"t":3,"p":1,"n":"Value 2 - Bool"},{"t":5,"p":1,"n":"Step"}]}]}]}]}]},{"p":1,"n":"STOP - Marker"}]},{"t":3,"p":1,"n":"NNAM - Embedded Weapon Mod"},{"t":6,"s":1,"p":1,"n":"1st Person Model","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":3,"p":1,"n":"MO4S - Material Swap"},{"t":5,"p":1,"n":"MO4C - Color Remapping Index"},{"t":11,"n":"MO4F - Unknown"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Ammo"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Reload Speed"},{"t":5,"p":1,"n":"Reach"},{"t":5,"p":1,"n":"Min Range"},{"t":5,"p":1,"n":"Max Range"},{"t":5,"p":1,"n":"Attack Delay"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Damage - OutOfRange Mult"},{"t":3,"p":1,"n":"On Hit"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Resist"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Capacity"},{"t":3,"p":1,"n":"Animation Type"},{"t":5,"p":1,"n":"Damage - Secondary"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Damage - Base"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Sound - Attack"},{"t":3,"p":1,"n":"Sound - Attack 2D"},{"t":3,"p":1,"n":"Sound - Attack Loop"},{"t":3,"p":1,"n":"Sound - Attack Fail"},{"t":3,"p":1,"n":"Sound - Idle"},{"t":3,"p":1,"n":"Sound - Equip Sound"},{"t":3,"p":1,"n":"Sound - UnEquip Sound"},{"t":3,"p":1,"n":"Sound - Fast Equip Sound"},{"t":3,"p":1,"n":"Accuracy Bonus"},{"t":5,"p":1,"n":"Animation Attack Seconds"},{"t":5,"p":1,"n":"Action Point Cost"},{"t":5,"p":1,"n":"Full Power Seconds"},{"t":5,"p":1,"n":"Min Power Per Shot"},{"t":3,"p":1,"n":"Stagger"}]},{"t":6,"s":1,"p":1,"n":"FNAM - ","c":[{"t":5,"p":1,"n":"Animation Fire Seconds"},{"t":5,"p":1,"n":"Rumble - Left Motor Strength"},{"t":5,"p":1,"n":"Rumble - Right Motor Strength"},{"t":5,"p":1,"n":"Rumble - Duration"},{"t":5,"p":1,"n":"Animation Reload Seconds"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Sighted Transition Seconds"},{"t":3,"p":1,"n":"# Projectiles"},{"t":3,"p":1,"n":"Override Projectile"},{"t":3,"p":1,"n":"Pattern"},{"t":3,"p":1,"n":"Rumble - Peroid (ms)"}]},{"t":6,"s":1,"p":1,"n":"CRDT - Critical Data","c":[{"t":5,"p":1,"n":"Crit Damage Mult"},{"t":5,"p":1,"n":"Crit Charge Bonus"},{"t":3,"p":1,"n":"Crit Effect"}]},{"t":3,"p":1,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"LNAM - NPC Add Ammo List"},{"t":3,"p":1,"n":"WAMD - Aim Model"},{"t":3,"p":1,"n":"WZMD - Zoom"},{"t":3,"p":1,"n":"CNAM - Template"},{"t":7,"p":1,"n":"DAMA - Damage Types","c":[{"t":6,"p":1,"n":"Damage Type","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Amount"}]}]},{"t":2,"p":1,"n":"FLTR - Filter"},{"t":3,"p":1,"n":"MASE - Melee Speed"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"n":"Unused RNAM","c":[{"t":11,"n":"RNAM - Unknown"}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":3,"p":1,"n":"LTMP - Interior Lighting"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XLCN - Location"},{"t":6,"s":1,"p":1,"n":"Parent","c":[{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":3,"p":1,"n":"CNAM - Climate"},{"t":3,"p":1,"n":"NAM2 - Water"},{"t":3,"p":1,"n":"NAM3 - LOD Water Type"},{"t":5,"p":1,"n":"NAM4 - LOD Water Height"},{"t":6,"s":1,"p":1,"n":"DNAM - Land Data","c":[{"t":5,"p":1,"n":"Default Land Height"},{"t":5,"p":1,"n":"Default Water Height"}]},{"t":2,"p":1,"n":"ICON - Map Image"},{"t":6,"s":1,"p":1,"n":"Cloud Model","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"MNAM - Map Data","c":[{"t":6,"p":1,"n":"Usable Dimensions","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Cell Coordinates","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"SE Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]}]},{"t":6,"s":1,"p":1,"n":"ONAM - World Map Offset Data","c":[{"t":5,"p":1,"n":"World Map Scale"},{"t":5,"p":1,"n":"Cell X Offset"},{"t":5,"p":1,"n":"Cell Y Offset"},{"t":5,"p":1,"n":"Cell Z Offset"}]},{"t":5,"p":1,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"Object Bounds","c":[{"t":6,"p":1,"n":"NAM0 - Min","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"NAM9 - Max","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":3,"p":1,"n":"ZNAM - Music"},{"t":2,"p":1,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":2,"p":1,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"p":1,"n":"UNAM - HD LOD Normal Texture"},{"t":6,"s":1,"p":1,"n":"World Default Level Data","c":[{"t":6,"p":1,"n":"WLEV - Dimension","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Size","c":[{"t":3,"p":1,"n":"Width"},{"t":3,"p":1,"n":"Height"}]}]},{"t":11,"p":1,"n":"WLEV - Data"}]},{"t":11,"n":"OFST - Offset Data"},{"t":11,"n":"CLSZ - Unknown"}]},{"t":1,"p":1,"n":"WTHR - Weather","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"p":1,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"p":1,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"p":1,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"p":1,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"p":1,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"p":1,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"p":1,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"p":1,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"p":1,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"p":1,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"p":1,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"p":1,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"p":1,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"p":1,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"p":1,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"p":1,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"p":1,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"p":1,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"p":1,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"p":1,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"p":1,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"p":1,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"p":1,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"p":1,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"p":1,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"p":1,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"p":1,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"p":1,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Precipitation Type"},{"t":3,"p":1,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"s":1,"p":1,"n":"Cloud Speed","c":[{"t":7,"p":1,"n":"RNAM - Y Speed","c":[{"t":3,"p":1,"n":"Layer"}]},{"t":7,"p":1,"n":"QNAM - X Speed","c":[{"t":3,"p":1,"n":"Layer"}]}]},{"t":7,"p":1,"n":"PNAM - Cloud Colors","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"p":1,"n":"JNAM - Cloud Alphas","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":5,"p":1,"n":"Sunrise"},{"t":5,"p":1,"n":"Day"},{"t":5,"p":1,"n":"Sunset"},{"t":5,"p":1,"n":"Night"},{"t":5,"p":1,"n":"EarlySunrise"},{"t":5,"p":1,"n":"LateSunrise"},{"t":5,"p":1,"n":"EarlySunset"},{"t":5,"p":1,"n":"LateSunset"}]}]},{"t":6,"s":1,"p":1,"n":"NAM0 - Weather Colors","c":[{"t":6,"p":1,"n":"Sky-Upper","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"EarlySunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"LateSunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"EarlySunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"LateSunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sunlight","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Stars","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky-Lower","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Horizon","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Effect Lighting","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Diffuse","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky Statics","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Water Multiplier","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Moon Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near High","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far High","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"EarlySunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"LateSunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"n":"NAM4 - Unknown","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"FNAM - Fog Distance","c":[{"t":5,"p":1,"n":"Day - Near"},{"t":5,"p":1,"n":"Day - Far"},{"t":5,"p":1,"n":"Night - Near"},{"t":5,"p":1,"n":"Night - Far"},{"t":5,"p":1,"n":"Day - Power"},{"t":5,"p":1,"n":"Night - Power"},{"t":5,"p":1,"n":"Day - Max"},{"t":5,"p":1,"n":"Night - Max"},{"t":5,"p":1,"n":"Day - Near Height Mid"},{"t":5,"p":1,"n":"Day - Near Height Range"},{"t":5,"p":1,"n":"Night - Near Height Mid"},{"t":5,"p":1,"n":"Night - Near Height Range"},{"t":5,"p":1,"n":"Day - High Density Scale"},{"t":5,"p":1,"n":"Night - High Density Scale"},{"t":5,"p":1,"n":"Day - Far Height Mid"},{"t":5,"p":1,"n":"Day - Far Height Range"},{"t":5,"p":1,"n":"Night - Far Height Mid"},{"t":5,"p":1,"n":"Night - Far Height Range"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Trans Delta"},{"t":3,"p":1,"n":"Sun Glare"},{"t":3,"p":1,"n":"Sun Damage"},{"t":3,"p":1,"n":"Precipitation - Begin Fade In"},{"t":3,"p":1,"n":"Precipitation - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"p":1,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Frequency"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Lightning Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Visual Effect - Begin"},{"t":3,"p":1,"n":"Visual Effect - End"},{"t":3,"p":1,"n":"Wind Direction"},{"t":3,"p":1,"n":"Wind Direction Range"}]},{"t":3,"p":1,"n":"NAM1 - Disabled Cloud Layers"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Sky Statics","d":1,"c":[{"t":3,"p":1,"n":"TNAM - Static"}]},{"t":6,"s":1,"p":1,"n":"IMSP - Image Spaces","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"},{"t":3,"p":1,"n":"EarlySunrise"},{"t":3,"p":1,"n":"LateSunrise"},{"t":3,"p":1,"n":"EarlySunset"},{"t":3,"p":1,"n":"LateSunset"}]},{"t":6,"s":1,"p":1,"n":"WGDR - God Rays","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"},{"t":3,"p":1,"n":"EarlySunrise"},{"t":3,"p":1,"n":"LateSunrise"},{"t":3,"p":1,"n":"EarlySunset"},{"t":3,"p":1,"n":"LateSunset"}]},{"t":6,"s":1,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"DALC - Sunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Day","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Sunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Night","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - EarlySunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - LateSunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - EarlySunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - LateSunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":6,"s":1,"p":1,"n":"Aurora","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":3,"p":1,"n":"MODS - Material Swap"},{"t":5,"p":1,"n":"MODC - Color Remapping Index"},{"t":11,"n":"MODF - Unknown"}]}]},{"t":3,"p":1,"n":"GNAM - Sun Glare Lens Flare"},{"t":6,"s":1,"p":1,"n":"UNAM - Magic","c":[{"t":3,"p":1,"n":"On Lightning Strike - Spell"},{"t":5,"p":1,"n":"On Lightning Strike - Threshold"},{"t":3,"p":1,"n":"On Weather Activate - Spell"},{"t":5,"p":1,"n":"On Weather Activate - Threshold"},{"t":11,"n":"Unknown"}]},{"t":5,"p":1,"n":"VNAM - Volatility Mult"},{"t":5,"p":1,"n":"WNAM - Visibility Mult"}]},{"t":1,"p":1,"n":"ZOOM - Zoom","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"GNAM - Data","c":[{"t":5,"p":1,"n":"FOV Mult"},{"t":3,"p":1,"n":"Overlay"},{"t":3,"p":1,"n":"Imagespace Modifier"},{"t":6,"p":1,"n":"Camera Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"AACT - Action","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":2,"p":1,"n":"DNAM - Notes"},{"t":3,"p":1,"n":"TNAM - Type"},{"t":3,"p":1,"n":"DATA - Attraction Rule"},{"t":2,"p":1,"n":"FULL - Name"}]}]},"name":"Smash.All.old","hash":"A4B4931B","color":128}
diff --git a/frontend/settings/Skyrim/Bash.Actors.ACBS.json b/frontend/settings/Skyrim/Bash.Actors.ACBS.json
old mode 100644
new mode 100755
index dcc0b30..25f3fb5
--- a/frontend/settings/Skyrim/Bash.Actors.ACBS.json
+++ b/frontend/settings/Skyrim/Bash.Actors.ACBS.json
@@ -1 +1 @@
-{"records":"NPC_","description":"Actors.ACBS tag from Wrye Bash.\r\n\r\nUsed when the mod modifies NPC ACBS configuration.","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Magicka Offset"},{"t":3,"p":1,"n":"Stamina Offset"},{"t":12,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Calc min level"},{"t":3,"p":1,"n":"Calc max level"},{"t":3,"p":1,"n":"Speed Multiplier"},{"t":3,"p":1,"n":"Disposition Base (unused)"},{"t":3,"p":1,"n":"Template Flags"},{"t":3,"p":1,"n":"Health Offset"},{"t":3,"p":1,"n":"Bleedout Override"}]},{"t":10,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":10,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":7,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"},{"t":11,"n":"Unused"}]},{"t":9,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"}]}]}]}]},"name":"Bash.Actors.ACBS","hash":"$75515CF0","color":255}
\ No newline at end of file
+{"records":"NPC_","description":"Actors.ACBS tag from Wrye Bash.\r\n\r\nUsed when the mod modifies NPC ACBS configuration.","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"ScriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Female"},{"t":4,"p":1,"n":"Essential"},{"t":4,"p":1,"n":"Is CharGen Face Preset"},{"t":4,"p":1,"n":"Respawn"},{"t":4,"p":1,"n":"Auto-calc stats"},{"t":4,"p":1,"n":"Unique"},{"t":4,"p":1,"n":"Doesn't affect stealth meter"},{"t":4,"p":1,"n":"PC Level Mult"},{"t":4,"p":1,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"p":1,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Bleedout Override"},{"t":4,"p":1,"n":"Opposite Gender Anims"},{"t":4,"p":1,"n":"Simple Actor"},{"t":4,"p":1,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"looped audio?"},{"t":4,"p":1,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"p":1,"n":"Invulnerable"}]},{"t":3,"p":1,"n":"Magicka Offset"},{"t":3,"p":1,"n":"Stamina Offset"},{"t":3,"p":1,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"p":1,"n":"Calc min level"},{"t":3,"p":1,"n":"Calc max level"},{"t":3,"p":1,"n":"Speed Multiplier"},{"t":3,"p":1,"n":"Disposition Base (unused)"},{"t":3,"p":1,"n":"Template Flags","c":[{"t":4,"p":1,"n":"Use Traits"},{"t":4,"p":1,"n":"Use Stats"},{"t":4,"p":1,"n":"Use Factions"},{"t":4,"p":1,"n":"Use Spell List"},{"t":4,"p":1,"n":"Use AI Data"},{"t":4,"p":1,"n":"Use AI Packages"},{"t":4,"p":1,"n":"Use Model\/Animation?"},{"t":4,"p":1,"n":"Use Base Data"},{"t":4,"p":1,"n":"Use Inventory"},{"t":4,"p":1,"n":"Use Script"},{"t":4,"p":1,"n":"Use Def Pack List"},{"t":4,"p":1,"n":"Use Attack Data"},{"t":4,"p":1,"n":"Use Keywords"}]},{"t":3,"p":1,"n":"Health Offset"},{"t":3,"p":1,"n":"Bleedout Override"}]},{"t":8,"n":"SNAM - Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"SPLO - Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"ATKD - Attacks","c":[{"t":6,"n":"ATKD - Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"PRKR - Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"CNTO - Items","c":[{"t":6,"n":"CNTO - Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"PKID - Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"PNAM - Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"CSDT - Sound Types","c":[{"t":6,"n":"CSDT - Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"CSDI - Sounds","c":[{"t":6,"n":"CSDI - Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"TINI - Tint Layers","c":[{"t":6,"n":"TINI - Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]}]},"name":"Bash.Actors.ACBS","hash":"0A9F1581","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Actors.AIData.json b/frontend/settings/Skyrim/Bash.Actors.AIData.json
old mode 100644
new mode 100755
index a64b53a..5f13c29
--- a/frontend/settings/Skyrim/Bash.Actors.AIData.json
+++ b/frontend/settings/Skyrim/Bash.Actors.AIData.json
@@ -1 +1 @@
-{"records":"NPC_","description":"Actors.AIData tag from Wrye Bash.\r\n\r\nUsed when the mod modifies NPC AI data.","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":12,"n":"Level"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":10,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":10,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"p":1,"n":"Unknown"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]}]},{"t":7,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"},{"t":11,"n":"Unused"}]},{"t":9,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"}]}]}]}]},"name":"Bash.Actors.AIData","hash":"$E4A27332","color":255}
\ No newline at end of file
+{"records":"NPC_","description":"Actors.AIData tag from Wrye Bash.\r\n\r\nUsed when the mod modifies NPC AI data.","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"ScriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Female"},{"t":4,"n":"Essential"},{"t":4,"n":"Is CharGen Face Preset"},{"t":4,"n":"Respawn"},{"t":4,"n":"Auto-calc stats"},{"t":4,"n":"Unique"},{"t":4,"n":"Doesn't affect stealth meter"},{"t":4,"n":"PC Level Mult"},{"t":4,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Bleedout Override"},{"t":4,"n":"Opposite Gender Anims"},{"t":4,"n":"Simple Actor"},{"t":4,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"looped audio?"},{"t":4,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Invulnerable"}]},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags","c":[{"t":4,"n":"Use Traits"},{"t":4,"n":"Use Stats"},{"t":4,"n":"Use Factions"},{"t":4,"n":"Use Spell List"},{"t":4,"n":"Use AI Data"},{"t":4,"n":"Use AI Packages"},{"t":4,"n":"Use Model\/Animation?"},{"t":4,"n":"Use Base Data"},{"t":4,"n":"Use Inventory"},{"t":4,"n":"Use Script"},{"t":4,"n":"Use Def Pack List"},{"t":4,"n":"Use Attack Data"},{"t":4,"n":"Use Keywords"}]},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"SNAM - Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"SPLO - Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"ATKD - Attacks","c":[{"t":6,"n":"ATKD - Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"PRKR - Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"CNTO - Items","c":[{"t":6,"n":"CNTO - Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]}]},{"t":8,"n":"PKID - Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"PNAM - Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"CSDT - Sound Types","c":[{"t":6,"n":"CSDT - Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"CSDI - Sounds","c":[{"t":6,"n":"CSDI - Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"TINI - Tint Layers","c":[{"t":6,"n":"TINI - Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]}]},"name":"Bash.Actors.AIData","hash":"308F0F34","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Actors.AIPackages.json b/frontend/settings/Skyrim/Bash.Actors.AIPackages.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Actors.AIPackagesMerge.json b/frontend/settings/Skyrim/Bash.Actors.AIPackagesMerge.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Actors.CombatStyle.json b/frontend/settings/Skyrim/Bash.Actors.CombatStyle.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Actors.DeathItem.json b/frontend/settings/Skyrim/Bash.Actors.DeathItem.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Actors.Spells.json b/frontend/settings/Skyrim/Bash.Actors.Spells.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Actors.SpellsMerge.json b/frontend/settings/Skyrim/Bash.Actors.SpellsMerge.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Actors.Stats.json b/frontend/settings/Skyrim/Bash.Actors.Stats.json
old mode 100644
new mode 100755
index c04d088..b00361e
--- a/frontend/settings/Skyrim/Bash.Actors.Stats.json
+++ b/frontend/settings/Skyrim/Bash.Actors.Stats.json
@@ -1 +1 @@
-{"records":"NPC_","description":"Actors.Stats tag from Wrye Bash.\r\n\r\nUsed when the mod modifies NPC stats.","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":12,"n":"Level"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":10,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":10,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":7,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - Player Skills","c":[{"t":7,"p":1,"n":"Skill Values","c":[{"t":3,"p":1,"n":"Skill #0 (OneHanded)"},{"t":3,"p":1,"n":"Skill #1 (TwoHanded)"},{"t":3,"p":1,"n":"Skill #2 (Marksman)"},{"t":3,"p":1,"n":"Skill #3 (Block)"},{"t":3,"p":1,"n":"Skill #4 (Smithing)"},{"t":3,"p":1,"n":"Skill #5 (HeavyArmor)"},{"t":3,"p":1,"n":"Skill #6 (LightArmor)"},{"t":3,"p":1,"n":"Skill #7 (Pickpocket)"},{"t":3,"p":1,"n":"Skill #8 (Lockpicking)"},{"t":3,"p":1,"n":"Skill #9 (Sneak)"},{"t":3,"p":1,"n":"Skill #10 (Alchemy)"},{"t":3,"p":1,"n":"Skill #11 (Speechcraft)"},{"t":3,"p":1,"n":"Skill #12 (Alteration)"},{"t":3,"p":1,"n":"Skill #13 (Conjuration)"},{"t":3,"p":1,"n":"Skill #14 (Destruction)"},{"t":3,"p":1,"n":"Skill #15 (Illusion)"},{"t":3,"p":1,"n":"Skill #16 (Restoration)"},{"t":3,"p":1,"n":"Skill #17 (Enchanting)"}]},{"t":7,"p":1,"n":"Skill Offsets","c":[{"t":3,"p":1,"n":"Skill #0 (OneHanded)"},{"t":3,"p":1,"n":"Skill #1 (TwoHanded)"},{"t":3,"p":1,"n":"Skill #2 (Marksman)"},{"t":3,"p":1,"n":"Skill #3 (Block)"},{"t":3,"p":1,"n":"Skill #4 (Smithing)"},{"t":3,"p":1,"n":"Skill #5 (HeavyArmor)"},{"t":3,"p":1,"n":"Skill #6 (LightArmor)"},{"t":3,"p":1,"n":"Skill #7 (Pickpocket)"},{"t":3,"p":1,"n":"Skill #8 (Lockpicking)"},{"t":3,"p":1,"n":"Skill #9 (Sneak)"},{"t":3,"p":1,"n":"Skill #10 (Alchemy)"},{"t":3,"p":1,"n":"Skill #11 (Speechcraft)"},{"t":3,"p":1,"n":"Skill #12 (Alteration)"},{"t":3,"p":1,"n":"Skill #13 (Conjuration)"},{"t":3,"p":1,"n":"Skill #14 (Destruction)"},{"t":3,"p":1,"n":"Skill #15 (Illusion)"},{"t":3,"p":1,"n":"Skill #16 (Restoration)"},{"t":3,"p":1,"n":"Skill #17 (Enchanting)"}]},{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"Magicka"},{"t":3,"p":1,"n":"Stamina"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Far away model distance"},{"t":3,"p":1,"n":"Geared up weapons"},{"t":11,"p":1,"n":"Unused"}]},{"t":9,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"}]}]}]}]},"name":"Bash.Actors.Stats","hash":"$5853D7A6","color":255}
\ No newline at end of file
+{"records":"NPC_","description":"Actors.Stats tag from Wrye Bash.\r\n\r\nUsed when the mod modifies NPC stats.","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Female"},{"t":4,"n":"Essential"},{"t":4,"n":"Is CharGen Face Preset"},{"t":4,"n":"Respawn"},{"t":4,"n":"Auto-calc stats"},{"t":4,"n":"Unique"},{"t":4,"n":"Doesn't affect stealth meter"},{"t":4,"n":"PC Level Mult"},{"t":4,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Bleedout Override"},{"t":4,"n":"Opposite Gender Anims"},{"t":4,"n":"Simple Actor"},{"t":4,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"looped audio?"},{"t":4,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Invulnerable"}]},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags","c":[{"t":4,"n":"Use Traits"},{"t":4,"n":"Use Stats"},{"t":4,"n":"Use Factions"},{"t":4,"n":"Use Spell List"},{"t":4,"n":"Use AI Data"},{"t":4,"n":"Use AI Packages"},{"t":4,"n":"Use Model\/Animation?"},{"t":4,"n":"Use Base Data"},{"t":4,"n":"Use Inventory"},{"t":4,"n":"Use Script"},{"t":4,"n":"Use Def Pack List"},{"t":4,"n":"Use Attack Data"},{"t":4,"n":"Use Keywords"}]},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"SNAM - Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"SPLO - Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"ATKD - Attacks","c":[{"t":6,"n":"ATKD - Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"PRKR - Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"CNTO - Items","c":[{"t":6,"n":"CNTO - Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"PKID - Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - Player Skills","c":[{"t":7,"p":1,"n":"Skill Values","c":[{"t":3,"p":1,"n":"OneHanded"},{"t":3,"p":1,"n":"TwoHanded"},{"t":3,"p":1,"n":"Marksman"},{"t":3,"p":1,"n":"Block"},{"t":3,"p":1,"n":"Smithing"},{"t":3,"p":1,"n":"HeavyArmor"},{"t":3,"p":1,"n":"LightArmor"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"p":1,"n":"Lockpicking"},{"t":3,"p":1,"n":"Sneak"},{"t":3,"p":1,"n":"Alchemy"},{"t":3,"p":1,"n":"Speechcraft"},{"t":3,"p":1,"n":"Alteration"},{"t":3,"p":1,"n":"Conjuration"},{"t":3,"p":1,"n":"Destruction"},{"t":3,"p":1,"n":"Illusion"},{"t":3,"p":1,"n":"Restoration"},{"t":3,"p":1,"n":"Enchanting"}]},{"t":7,"p":1,"n":"Skill Offsets","c":[{"t":3,"p":1,"n":"OneHanded"},{"t":3,"p":1,"n":"TwoHanded"},{"t":3,"p":1,"n":"Marksman"},{"t":3,"p":1,"n":"Block"},{"t":3,"p":1,"n":"Smithing"},{"t":3,"p":1,"n":"HeavyArmor"},{"t":3,"p":1,"n":"LightArmor"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"p":1,"n":"Lockpicking"},{"t":3,"p":1,"n":"Sneak"},{"t":3,"p":1,"n":"Alchemy"},{"t":3,"p":1,"n":"Speechcraft"},{"t":3,"p":1,"n":"Alteration"},{"t":3,"p":1,"n":"Conjuration"},{"t":3,"p":1,"n":"Destruction"},{"t":3,"p":1,"n":"Illusion"},{"t":3,"p":1,"n":"Restoration"},{"t":3,"p":1,"n":"Enchanting"}]},{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"Magicka"},{"t":3,"p":1,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"PNAM - Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"CSDT - Sound Types","c":[{"t":6,"n":"CSDT - Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"CSDI - Sounds","c":[{"t":6,"n":"CSDI - Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"TINI - Tint Layers","c":[{"t":6,"n":"TINI - Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]}]},"name":"Bash.Actors.Stats","hash":"3E8B2129","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.All.json b/frontend/settings/Skyrim/Bash.All.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Body-F.json b/frontend/settings/Skyrim/Bash.Body-F.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Body-M.json b/frontend/settings/Skyrim/Bash.Body-M.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Body-Size-F.json b/frontend/settings/Skyrim/Bash.Body-Size-F.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Body-Size-M.json b/frontend/settings/Skyrim/Bash.Body-Size-M.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.Acoustic.json b/frontend/settings/Skyrim/Bash.C.Acoustic.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.Climate.json b/frontend/settings/Skyrim/Bash.C.Climate.json
old mode 100644
new mode 100755
index 30ce65e..5f1e704
--- a/frontend/settings/Skyrim/Bash.C.Climate.json
+++ b/frontend/settings/Skyrim/Bash.C.Climate.json
@@ -1 +1 @@
-{"records":"CELL","description":"C.Climate tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell climates.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":8,"n":"Colors","c":[{"t":6,"n":"Color #0 (X+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #1 (X-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #2 (Y+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #3 (Y-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #4 (Z+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #5 (Z-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Specular","c":[{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fresnel Power"}]}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Climate","hash":"$595B86E0","color":255}
\ No newline at end of file
+{"records":"CELL","description":"C.Climate tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell climates.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"},{"t":4,"n":"Has Water"},{"t":4,"n":"Can't Travel From Here"},{"t":4,"n":"No LOD Water"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Public Area"},{"t":4,"n":"Hand Changed"},{"t":4,"p":1,"n":"Show Sky"},{"t":4,"n":"Use Sky Lighting"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land","c":[{"t":4,"n":"Quad 1"},{"t":4,"n":"Quad 2"},{"t":4,"n":"Quad 3"},{"t":4,"n":"Quad 4"}]}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits","c":[{"t":4,"n":"Ambient Color"},{"t":4,"n":"Directional Color"},{"t":4,"n":"Fog Color"},{"t":4,"n":"Fog Near"},{"t":4,"n":"Fog Far"},{"t":4,"n":"Directional Rotation"},{"t":4,"n":"Directional Fade"},{"t":4,"n":"Clip Distance"},{"t":4,"n":"Fog Power"},{"t":4,"n":"Fog Max"},{"t":4,"n":"Light Fade Distances"}]}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":7,"n":"XCLR - Regions"},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"XOWN - Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Climate","hash":"500FBC09","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.C.Encounter.json b/frontend/settings/Skyrim/Bash.C.Encounter.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.ForceHideLand.json b/frontend/settings/Skyrim/Bash.C.ForceHideLand.json
new file mode 100755
index 0000000..ea1c23a
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.C.ForceHideLand.json
@@ -0,0 +1 @@
+{"records":"CELL","description":"","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"p":1,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"p":1,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":8,"n":"Colors","c":[{"t":6,"n":"Color #0 (X+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #1 (X-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #2 (Y+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #3 (Y-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #4 (Z+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #5 (Z-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Specular","c":[{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fresnel Power"}]}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.ForceHideLand","hash":"94C8152F","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.C.ImageSpace.json b/frontend/settings/Skyrim/Bash.C.ImageSpace.json
old mode 100644
new mode 100755
index a229328..f49b2d8
--- a/frontend/settings/Skyrim/Bash.C.ImageSpace.json
+++ b/frontend/settings/Skyrim/Bash.C.ImageSpace.json
@@ -1 +1 @@
-{"records":"CELL","description":"","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":8,"n":"Colors","c":[{"t":6,"n":"Color #0 (X+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #1 (X-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #2 (Y+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #3 (Y-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #4 (Z+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #5 (Z-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Specular","c":[{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fresnel Power"}]}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","d":1,"c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.ImageSpace","hash":"$B06BA239","color":255}
\ No newline at end of file
+{"records":"CELL","description":"","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":8,"n":"Colors","c":[{"t":6,"n":"Color #0 (X+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #1 (X-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #2 (Y+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #3 (Y-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #4 (Z+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #5 (Z-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Specular","c":[{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fresnel Power"}]}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.ImageSpace","hash":"625A0C61","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.C.Light.json b/frontend/settings/Skyrim/Bash.C.Light.json
old mode 100644
new mode 100755
index 1233825..5c96bfe
--- a/frontend/settings/Skyrim/Bash.C.Light.json
+++ b/frontend/settings/Skyrim/Bash.C.Light.json
@@ -1 +1 @@
-{"records":"CELL","description":"C.Light tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell lighting or fog.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"s":1,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"s":1,"p":1,"n":"Ambient Colors","c":[{"t":8,"p":1,"n":"Colors","c":[{"t":6,"p":1,"n":"Color #0 (X+)","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color #1 (X-)","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color #2 (Y+)","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color #3 (Y-)","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color #4 (Z+)","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color #5 (Z-)","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Fresnel Power"}]}]},{"t":6,"s":1,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Light","hash":"$4E94E72C","color":255}
\ No newline at end of file
+{"records":"CELL","description":"C.Light tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell lighting or fog.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"},{"t":4,"n":"Has Water"},{"t":4,"n":"Can't Travel From Here"},{"t":4,"n":"No LOD Water"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Public Area"},{"t":4,"n":"Hand Changed"},{"t":4,"n":"Show Sky"},{"t":4,"n":"Use Sky Lighting"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land","c":[{"t":4,"n":"Quad 1"},{"t":4,"n":"Quad 2"},{"t":4,"n":"Quad 3"},{"t":4,"n":"Quad 4"}]}]},{"t":6,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"s":1,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"s":1,"p":1,"n":"Ambient Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"s":1,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":3,"p":1,"n":"Inherits","c":[{"t":4,"p":1,"n":"Ambient Color"},{"t":4,"p":1,"n":"Directional Color"},{"t":4,"p":1,"n":"Fog Color"},{"t":4,"p":1,"n":"Fog Near"},{"t":4,"p":1,"n":"Fog Far"},{"t":4,"p":1,"n":"Directional Rotation"},{"t":4,"p":1,"n":"Directional Fade"},{"t":4,"p":1,"n":"Clip Distance"},{"t":4,"p":1,"n":"Fog Power"},{"t":4,"p":1,"n":"Fog Max"},{"t":4,"p":1,"n":"Light Fade Distances"}]}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"p":1,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":7,"n":"XCLR - Regions"},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"XOWN - Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Light","hash":"94154BF2","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.C.Location.json b/frontend/settings/Skyrim/Bash.C.Location.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.LockList.json b/frontend/settings/Skyrim/Bash.C.LockList.json
new file mode 100755
index 0000000..6b2e724
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.C.LockList.json
@@ -0,0 +1 @@
+{"records":"CELL","description":"Modifies cell lock list.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":8,"n":"Colors","c":[{"t":6,"n":"Color #0 (X+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #1 (X-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #2 (Y+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #3 (Y-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #4 (Z+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #5 (Z-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Specular","c":[{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fresnel Power"}]}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"p":1,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.LockList","hash":"1BC13B82","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.C.Music.json b/frontend/settings/Skyrim/Bash.C.Music.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.Name.json b/frontend/settings/Skyrim/Bash.C.Name.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.Owner.json b/frontend/settings/Skyrim/Bash.C.Owner.json
old mode 100644
new mode 100755
index a49d50d..a89c251
--- a/frontend/settings/Skyrim/Bash.C.Owner.json
+++ b/frontend/settings/Skyrim/Bash.C.Owner.json
@@ -1 +1 @@
-{"records":"CELL","description":"C.Owner tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell ownership.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":8,"n":"Colors","c":[{"t":6,"n":"Color #0 (X+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #1 (X-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #2 (Y+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #3 (Y-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #4 (Z+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #5 (Z-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Specular","c":[{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fresnel Power"}]}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Owner","hash":"$C13A1CEE","color":255}
\ No newline at end of file
+{"records":"CELL","description":"C.Owner tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell ownership.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"},{"t":4,"n":"Has Water"},{"t":4,"n":"Can't Travel From Here"},{"t":4,"n":"No LOD Water"},{"t":4,"n":"Unknown 5"},{"t":4,"p":1,"n":"Public Area"},{"t":4,"n":"Hand Changed"},{"t":4,"n":"Show Sky"},{"t":4,"n":"Use Sky Lighting"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land","c":[{"t":4,"n":"Quad 1"},{"t":4,"n":"Quad 2"},{"t":4,"n":"Quad 3"},{"t":4,"n":"Quad 4"}]}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits","c":[{"t":4,"n":"Ambient Color"},{"t":4,"n":"Directional Color"},{"t":4,"n":"Fog Color"},{"t":4,"n":"Fog Near"},{"t":4,"n":"Fog Far"},{"t":4,"n":"Directional Rotation"},{"t":4,"n":"Directional Fade"},{"t":4,"n":"Clip Distance"},{"t":4,"n":"Fog Power"},{"t":4,"n":"Fog Max"},{"t":4,"n":"Light Fade Distances"}]}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":7,"n":"XCLR - Regions"},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"p":1,"n":"XOWN - Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Owner","hash":"6E20980F","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.C.RecordFlags.json b/frontend/settings/Skyrim/Bash.C.RecordFlags.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.Regions.json b/frontend/settings/Skyrim/Bash.C.Regions.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.C.SkyLighting.json b/frontend/settings/Skyrim/Bash.C.SkyLighting.json
new file mode 100755
index 0000000..e1ce9ee
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.C.SkyLighting.json
@@ -0,0 +1 @@
+{"records":"CELL","description":"Modifies Use Sky Lighting cell flag.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"},{"t":4,"n":"Has Water"},{"t":4,"n":"Can't Travel From Here"},{"t":4,"n":"No LOD Water"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Public Area"},{"t":4,"n":"Hand Changed"},{"t":4,"n":"Show Sky"},{"t":4,"p":1,"n":"Use Sky Lighting"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land","c":[{"t":4,"n":"Quad 1"},{"t":4,"n":"Quad 2"},{"t":4,"n":"Quad 3"},{"t":4,"n":"Quad 4"}]}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits","c":[{"t":4,"n":"Ambient Color"},{"t":4,"n":"Directional Color"},{"t":4,"n":"Fog Color"},{"t":4,"n":"Fog Near"},{"t":4,"n":"Fog Far"},{"t":4,"n":"Directional Rotation"},{"t":4,"n":"Directional Fade"},{"t":4,"n":"Clip Distance"},{"t":4,"n":"Fog Power"},{"t":4,"n":"Fog Max"},{"t":4,"n":"Light Fade Distances"}]}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":7,"n":"XCLR - Regions"},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"XOWN - Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.SkyLighting","hash":"3CB3D09F","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.C.Water.json b/frontend/settings/Skyrim/Bash.C.Water.json
old mode 100644
new mode 100755
index 6ff1581..6a62eb7
--- a/frontend/settings/Skyrim/Bash.C.Water.json
+++ b/frontend/settings/Skyrim/Bash.C.Water.json
@@ -1 +1 @@
-{"records":"CELL","description":"C.Water tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell water type or level.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":8,"n":"Colors","c":[{"t":6,"n":"Color #0 (X+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #1 (X-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #2 (Y+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #3 (Y-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #4 (Z+)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Color #5 (Z-)","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Specular","c":[{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fresnel Power"}]}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Unknown"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":9,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Water","hash":"$1C99179F","color":255}
\ No newline at end of file
+{"records":"CELL","description":"C.Water tag from Wrye Bash.\r\n\r\nUsed when the mod modifies cell water type or level.","tree":{"records":[{"t":1,"p":1,"n":"CELL - Cell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"n":"Is Interior Cell"},{"t":4,"p":1,"n":"Has Water"},{"t":4,"n":"Can't Travel From Here"},{"t":4,"n":"No LOD Water"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Public Area"},{"t":4,"n":"Hand Changed"},{"t":4,"n":"Show Sky"},{"t":4,"n":"Use Sky Lighting"}]},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land","c":[{"t":4,"n":"Quad 1"},{"t":4,"n":"Quad 2"},{"t":4,"n":"Quad 3"},{"t":4,"n":"Quad 4"}]}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits","c":[{"t":4,"n":"Ambient Color"},{"t":4,"n":"Directional Color"},{"t":4,"n":"Fog Color"},{"t":4,"n":"Fog Near"},{"t":4,"n":"Fog Far"},{"t":4,"n":"Directional Rotation"},{"t":4,"n":"Directional Fade"},{"t":4,"n":"Clip Distance"},{"t":4,"n":"Fog Power"},{"t":4,"n":"Fog Max"},{"t":4,"n":"Light Fade Distances"}]}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":2,"p":1,"n":"XNAM - Water Noise Texture"},{"t":7,"n":"XCLR - Regions"},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"n":"XOWN - Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]}]},"name":"Bash.C.Water","hash":"09EC9E77","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Delev.json b/frontend/settings/Skyrim/Bash.Delev.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Destructable.json b/frontend/settings/Skyrim/Bash.Destructable.json
new file mode 100755
index 0000000..076f483
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Destructable.json
@@ -0,0 +1 @@
+{"records":"ACTI,ALCH,AMMO,APPA,ARMO,BOOK,CONT,DOOR,FLOR,FURN,KEYM,LIGH,MISC,MSTT,NPC_,PROJ,SCRL,SLGM,TACT,WEAP","description":"Modifies destructible records.","tree":{"records":[{"t":1,"p":1,"n":"ACTI - Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]},{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"QUAL - Quality"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"},{"t":11,"n":"MO2T - Texture Files Hashes"},{"t":7,"n":"MO2S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"},{"t":11,"n":"MO4T - Texture Files Hashes"},{"t":7,"n":"MO4S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"},{"t":2,"n":"MIC2 - Small Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"BODT - Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":8,"n":"Armature","c":[{"t":3,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"n":"Skill"},{"t":3,"n":"Spell"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"CONT - Container","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"DOOR - Door","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"ANAM - Sound - Close"},{"t":3,"n":"BNAM - Sound - Loop"},{"t":3,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"FLOR - Flora","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"},{"t":6,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Disabled Points"}]},{"t":3,"n":"FNMK - Marker Keyword"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"LIGH - Light","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Gravity"},{"t":5,"n":"Speed"},{"t":5,"n":"Range"},{"t":3,"n":"Light"},{"t":3,"n":"Muzzle Flash - Light"},{"t":5,"n":"Tracer Chance"},{"t":5,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"n":"Explosion"},{"t":3,"n":"Sound"},{"t":5,"n":"Muzzle Flash - Duration"},{"t":5,"n":"Fade Duration"},{"t":5,"n":"Impact Force"},{"t":3,"n":"Sound - Countdown"},{"t":3,"n":"Sound - Disable"},{"t":3,"n":"Default Weapon Source"},{"t":5,"n":"Cone Spread"},{"t":5,"n":"Collision Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Relaunch Interval"},{"t":3,"n":"Decal Data"},{"t":3,"n":"Collision Layer"}]},{"t":6,"n":"Muzzle Flash Model","c":[{"t":2,"n":"NAM1 - Model Filename"},{"t":11,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"TACT - Talking Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"},{"t":11,"n":"MO3T - Texture Files Hashes"},{"t":7,"n":"MO3S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":3,"n":"Skill"},{"t":3,"n":"Resist"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unknown"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]}]},"name":"Bash.Destructable","hash":"AD4652D3","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.EffectStats.json b/frontend/settings/Skyrim/Bash.EffectStats.json
new file mode 100755
index 0000000..71d3c73
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.EffectStats.json
@@ -0,0 +1 @@
+{"records":"MGEF","description":"Modifies (MGEF) Magic Effect \/ Base Effect stats.","tree":{"records":[{"t":1,"p":1,"n":"MGEF - Magic Effect","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":6,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Hostile"},{"t":4,"p":1,"n":"Recover"},{"t":4,"p":1,"n":"Detrimental"},{"t":4,"p":1,"n":"Snap to Navmesh"},{"t":4,"p":1,"n":"No Hit Event"},{"t":4,"p":1,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unknown 7"},{"t":4,"p":1,"n":"Unknown 8"},{"t":4,"p":1,"n":"Dispel with Keywords"},{"t":4,"p":1,"n":"No Duration"},{"t":4,"p":1,"n":"No Magnitude"},{"t":4,"p":1,"n":"No Area"},{"t":4,"p":1,"n":"FX Persist"},{"t":4,"p":1,"n":"Unknown 14"},{"t":4,"p":1,"n":"Gory Visuals"},{"t":4,"p":1,"n":"Hide in UI"},{"t":4,"p":1,"n":"Unknown 17"},{"t":4,"p":1,"n":"No Recast"},{"t":4,"p":1,"n":"Unknown 19"},{"t":4,"p":1,"n":"Unknown 20"},{"t":4,"p":1,"n":"Unknown 21"},{"t":4,"p":1,"n":"Power Affects Magnitude"},{"t":4,"p":1,"n":"Power Affects Duration"},{"t":4,"p":1,"n":"Unknown 24"},{"t":4,"p":1,"n":"Unknown 25"},{"t":4,"p":1,"n":"Unknown 26"},{"t":4,"p":1,"n":"Painless"},{"t":4,"p":1,"n":"No Hit Effect"},{"t":4,"p":1,"n":"No Death Dispel"},{"t":4,"p":1,"n":"Unknown 30"},{"t":4,"p":1,"n":"Unknown 31"},{"t":4,"p":1,"n":"Unknown 32"}]},{"t":5,"p":1,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Assoc. Item"},{"t":3,"p":1,"n":"Magic Skill"},{"t":3,"p":1,"n":"Resist Value"},{"t":3,"n":"Counter Effect count"},{"t":3,"n":"Casting Light"},{"t":5,"p":1,"n":"Taper Weight"},{"t":3,"n":"Hit Shader"},{"t":3,"n":"Enchant Shader"},{"t":3,"p":1,"n":"Minimum Skill Level"},{"t":6,"p":1,"n":"Spellmaking","c":[{"t":3,"p":1,"n":"Area"},{"t":5,"p":1,"n":"Casting Time"}]},{"t":5,"p":1,"n":"Taper Curve"},{"t":5,"p":1,"n":"Taper Duration"},{"t":5,"p":1,"n":"Second AV Weight"},{"t":3,"p":1,"n":"Archtype"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Delivery"},{"t":3,"p":1,"n":"Second Actor Value"},{"t":3,"n":"Casting Art"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data"},{"t":5,"p":1,"n":"Skill Usage Multiplier"},{"t":6,"n":"Dual Casting","c":[{"t":3,"n":"Art"},{"t":5,"n":"Scale"}]},{"t":3,"n":"Enchant Art"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Equip Ability"},{"t":3,"n":"Image Space Modifier"},{"t":3,"p":1,"n":"Perk to Apply"},{"t":3,"n":"Casting Sound Level"},{"t":6,"p":1,"n":"Script Effect AI","c":[{"t":5,"p":1,"n":"Score"},{"t":5,"p":1,"n":"Delay Time"}]}]}]},{"t":8,"n":"Counter Effects","c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"n":"SNDD - Sounds"},{"t":2,"n":"DNAM - Magic Item Description"},{"t":10,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]},"name":"Bash.EffectStats","hash":"6A6CEB1A","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.EnchantmentStats.json b/frontend/settings/Skyrim/Bash.EnchantmentStats.json
new file mode 100755
index 0000000..7e4ed51
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.EnchantmentStats.json
@@ -0,0 +1 @@
+{"records":"ENCH","description":"Modifies (ENCH) Enchantment \/ Object Effect stats.","tree":{"records":[{"t":1,"p":1,"n":"ENCH - Object Effect","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Enchantment Cost"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Auto-Calc"},{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Extend Duration On Recast"}]},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Enchantment Amount"},{"t":3,"p":1,"n":"Target Type"},{"t":3,"p":1,"n":"Enchant Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Base Enchantment"},{"t":3,"p":1,"n":"Worn Restrictions"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - EFIT","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":10,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},"name":"Bash.EnchantmentStats","hash":"BBA72A3B","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Eyes.json b/frontend/settings/Skyrim/Bash.Eyes.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Factions.json b/frontend/settings/Skyrim/Bash.Factions.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Graphics.json b/frontend/settings/Skyrim/Bash.Graphics.json
old mode 100644
new mode 100755
index 4680c90..eada6d2
--- a/frontend/settings/Skyrim/Bash.Graphics.json
+++ b/frontend/settings/Skyrim/Bash.Graphics.json
@@ -1 +1 @@
-{"records":"ACTI,AMMO,APPA,ARMA,ARMO,ARTO,BOOK,DEBR,DOOR,EFSH,EXPL,FLOR,FURN,GRAS,INGR,LIGH,LSCR,MGEF,MISC,MSTT,PROJ,SCRL,SLGM,STAT,TREE,WEAP,ALCH","description":"Graphics tag from Wrye Bash.\r\n\r\nUsed when the mod is a graphics replacer.\r\n\r\nNote: I tried my best to get all appropriate records and subrecords for Skyrim in the spirit of this Bash Tag, but I may have missed things. Please let me know if I did. -Mator","tree":{"records":[{"t":1,"p":1,"n":"ACTI - Activator","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"QUAL - Quality"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":3,"n":"RNAM - Race"},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Male Priority"},{"t":3,"n":"Female Priority"},{"t":3,"n":"Weight slider - Male"},{"t":3,"n":"Weight slider - Female"},{"t":11,"n":"Unknown"},{"t":3,"n":"Detection Sound Value"},{"t":11,"n":"Unknown"},{"t":5,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model Filename"}]},{"t":3,"n":"NAM0 - Male Skin Texture"},{"t":3,"n":"NAM1 - Female Skin texture"},{"t":3,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"n":"NAM3 - Female Skin Texture Swap List"},{"t":9,"n":"Additional Races","c":[{"t":3,"n":"MODL - Race"}]},{"t":3,"n":"SNDD - Footstep Sound"},{"t":3,"n":"ONAM - Art Object"}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":7,"p":1,"n":"Armature","c":[{"t":3,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"ARTO - Art Object","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":3,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"n":"Skill"},{"t":3,"n":"Spell"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"p":1,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"DEBR - Debris","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":8,"p":1,"n":"Models","c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model Filename"},{"t":3,"p":1,"n":"Flags"}]}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"ANAM - Sound - Close"},{"t":3,"n":"BNAM - Sound - Loop"},{"t":3,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture","lt":"ICO2 - Particle Shader Texture","lf":"DATA - "},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture","lt":"NAM7 - Holes Texture","lf":"ICON - Fill Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture","lt":"NAM8 - Membrane Palette Texture","lf":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture","lt":"NAM9 - Particle Palette Texture","lf":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture","lt":"DATA - ","lf":"NAM8 - Membrane Palette Texture"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":11,"p":1,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}],"lt":"ICON - Fill Texture","lf":"NAM9 - Particle Palette Texture"}]},{"t":1,"p":1,"n":"EXPL - Explosion","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Light"},{"t":3,"n":"Sound 1"},{"t":3,"n":"Sound 2"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Placed Object"},{"t":3,"n":"Spawn Projectile"},{"t":5,"n":"Force"},{"t":5,"n":"Damage"},{"t":5,"n":"Radius"},{"t":5,"n":"IS Radius"},{"t":5,"n":"Vertical Offset Mult"},{"t":3,"n":"Flags"},{"t":3,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"FLOR - Flora","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"GRAS - Grass","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Density"},{"t":3,"n":"Min Slope"},{"t":3,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"n":"Units From Water"},{"t":11,"n":"Unknown"},{"t":3,"n":"Units From Water Type"},{"t":5,"n":"Position Range"},{"t":5,"n":"Height Range"},{"t":5,"n":"Color Range"},{"t":5,"n":"Wave Period"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"LIGH - Light","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unknown"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":2,"n":"DESC - Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]},{"t":3,"n":"NNAM - Loading Screen NIF"},{"t":5,"n":"SNAM - Initial Scale"},{"t":6,"n":"RNAM - Initial Rotation","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Z"}]},{"t":6,"n":"ONAM - Rotation Offset Constraints","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":6,"n":"XNAM - Initial Translation Offset","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":2,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Magic Effect Data","c":[{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Base Cost"},{"t":12,"n":"Assoc. Item"},{"t":3,"n":"Magic Skill"},{"t":3,"n":"Resist Value"},{"t":3,"n":"Counter Effect count"},{"t":11,"n":"Unused"},{"t":3,"n":"Casting Light"},{"t":5,"n":"Taper Weight"},{"t":3,"n":"Hit Shader"},{"t":3,"n":"Enchant Shader"},{"t":3,"n":"Minimum Skill Level"},{"t":6,"n":"Spellmaking","c":[{"t":3,"n":"Area"},{"t":5,"n":"Casting Time"}]},{"t":5,"n":"Taper Curve"},{"t":5,"n":"Taper Duration"},{"t":5,"n":"Second AV Weight"},{"t":3,"n":"Archtype"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Delivery"},{"t":3,"n":"Second Actor Value"},{"t":3,"n":"Casting Art"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data"},{"t":5,"n":"Skill Usage Multiplier"},{"t":6,"n":"Dual Casting","c":[{"t":3,"n":"Art"},{"t":5,"n":"Scale"}]},{"t":3,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":11,"n":"Unknown"},{"t":3,"n":"Equip Ability"},{"t":3,"n":"Image Space Modifier"},{"t":3,"n":"Perk to Apply"},{"t":3,"n":"Casting Sound Level"},{"t":6,"n":"Script Effect AI","c":[{"t":5,"n":"Score"},{"t":5,"n":"Delay Time"}]}]}]},{"t":9,"n":"Counter Effects","c":[{"t":3,"n":"ESCE - Effect"}]},{"t":8,"n":"SNDD - Sounds","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Type"},{"t":3,"n":"Sound"}]}]},{"t":2,"n":"DNAM - Magic Item Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"PROJ - Projectile","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Gravity"},{"t":5,"n":"Speed"},{"t":5,"n":"Range"},{"t":3,"n":"Light"},{"t":3,"n":"Muzzle Flash - Light"},{"t":5,"n":"Tracer Chance"},{"t":5,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"n":"Explosion"},{"t":3,"n":"Sound"},{"t":5,"n":"Muzzle Flash - Duration"},{"t":5,"n":"Fade Duration"},{"t":5,"n":"Impact Force"},{"t":3,"n":"Sound - Countdown"},{"t":3,"n":"Sound - Disable"},{"t":3,"n":"Default Weapon Source"},{"t":5,"n":"Cone Spread"},{"t":5,"n":"Collision Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Relaunch Interval"},{"t":3,"n":"Decal Data"},{"t":3,"n":"Collision Layer"}]},{"t":6,"n":"Muzzle Flash Model","c":[{"t":2,"n":"NAM1 - Model Filename"}]},{"t":3,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"STAT - Static","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"DNAM - Direction Material","c":[{"t":5,"n":"Max Angle (30-120)"},{"t":3,"n":"Material"}]},{"t":8,"n":"MNAM - Distant LOD","c":[{"t":6,"n":"LOD #0 (Level 0)","c":[{"t":2,"n":"Mesh"}]},{"t":6,"n":"LOD #1 (Level 1)","c":[{"t":2,"n":"Mesh"}]},{"t":6,"n":"LOD #2 (Level 2)","c":[{"t":2,"n":"Mesh"}]},{"t":6,"n":"LOD #3 (Level 3)","c":[{"t":2,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TREE - Tree","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Harvest Sound"},{"t":6,"n":"PFPC - Ingredient Production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer"},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"CNAM - Tree Data","c":[{"t":5,"n":"Trunk Flexibility"},{"t":5,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Leaf Amplitude"},{"t":5,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Unknown"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":11,"n":"Unknown"},{"t":3,"n":"Skill"},{"t":11,"n":"Unknown"},{"t":3,"n":"Resist"},{"t":11,"n":"Unknown"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unused"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]}]},"name":"Bash.Graphics","hash":"8A68A29F","color":255}
\ No newline at end of file
+{"records":"ALCH,AMMO,APPA,ARMA,ARMO,ARTO,BOOK,CLAS,CONT,DEBR,DOOR,EFSH,EXPL,FLOR,FURN,GRAS,INGR,KEYM,LIGH,LSCR,MGEF,SCRL,SLGM,SPEL,STAT,TREE,WEAP,WTHR,ACTI","description":"Graphics tag from Wrye Bash.\r\n\r\nUsed when the mod is a graphics replacer.\r\n\r\nNote: I tried my best to get all appropriate records and subrecords for Skyrim in the spirit of this Bash Tag, but I may have missed things. Please let me know if I did. -Mator","tree":{"records":[{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"QUAL - Quality"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":3,"n":"RNAM - Race"},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Male Priority"},{"t":3,"n":"Female Priority"},{"t":3,"n":"Weight slider - Male"},{"t":3,"n":"Weight slider - Female"},{"t":11,"n":"Unknown"},{"t":3,"n":"Detection Sound Value"},{"t":11,"n":"Unknown"},{"t":5,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model Filename"}]},{"t":3,"n":"NAM0 - Male Skin Texture"},{"t":3,"n":"NAM1 - Female Skin texture"},{"t":3,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"n":"NAM3 - Female Skin Texture Swap List"},{"t":9,"n":"Additional Races","c":[{"t":3,"n":"MODL - Race"}]},{"t":3,"n":"SNDD - Footstep Sound"},{"t":3,"n":"ONAM - Art Object"}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon 2 (female)","c":[{"t":2,"p":1,"n":"ICO2 - Large Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":7,"p":1,"n":"Armature","c":[{"t":3,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"ARTO - Art Object","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":3,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"n":"Skill"},{"t":3,"n":"Spell"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"p":1,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"CLAS - Class","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Teaches"},{"t":3,"n":"Maximum training level"},{"t":7,"n":"Skill Weights","c":[{"t":3,"n":"Weight"}]},{"t":5,"n":"Bleedout Default"},{"t":3,"n":"Voice Points"},{"t":7,"n":"Attribute Weights","c":[{"t":3,"n":"Weight"}]}]}]},{"t":1,"p":1,"n":"CONT - Container","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"DEBR - Debris","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":8,"p":1,"n":"Models","c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model Filename"},{"t":3,"p":1,"n":"Flags"}]}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"ANAM - Sound - Close"},{"t":3,"n":"BNAM - Sound - Loop"},{"t":3,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture","lt":"ICO2 - Particle Shader Texture","lf":"DATA - "},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture","lt":"NAM7 - Holes Texture","lf":"ICON - Fill Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture","lt":"NAM8 - Membrane Palette Texture","lf":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture","lt":"NAM9 - Particle Palette Texture","lf":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture","lt":"DATA - ","lf":"NAM8 - Membrane Palette Texture"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":11,"p":1,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}],"lt":"ICON - Fill Texture","lf":"NAM9 - Particle Palette Texture"}]},{"t":1,"p":1,"n":"EXPL - Explosion","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Light"},{"t":3,"n":"Sound 1"},{"t":3,"n":"Sound 2"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Placed Object"},{"t":3,"n":"Spawn Projectile"},{"t":5,"n":"Force"},{"t":5,"n":"Damage"},{"t":5,"n":"Radius"},{"t":5,"n":"IS Radius"},{"t":5,"n":"Vertical Offset Mult"},{"t":3,"n":"Flags"},{"t":3,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"FLOR - Flora","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"GRAS - Grass","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Density"},{"t":3,"n":"Min Slope"},{"t":3,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"n":"Units From Water"},{"t":11,"n":"Unknown"},{"t":3,"n":"Units From Water Type"},{"t":5,"n":"Position Range"},{"t":5,"n":"Height Range"},{"t":5,"n":"Color Range"},{"t":5,"n":"Wave Period"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"LIGH - Light","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unknown"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":2,"n":"DESC - Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]},{"t":3,"n":"NNAM - Loading Screen NIF"},{"t":5,"n":"SNAM - Initial Scale"},{"t":6,"n":"RNAM - Initial Rotation","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Z"}]},{"t":6,"n":"ONAM - Rotation Offset Constraints","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":6,"n":"XNAM - Initial Translation Offset","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":2,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Base Cost"},{"t":12,"n":"Assoc. Item"},{"t":3,"n":"Magic Skill"},{"t":3,"n":"Resist Value"},{"t":3,"n":"Counter Effect count"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Casting Light"},{"t":5,"n":"Taper Weight"},{"t":3,"p":1,"n":"Hit Shader"},{"t":3,"p":1,"n":"Enchant Shader"},{"t":3,"n":"Minimum Skill Level"},{"t":6,"n":"Spellmaking","c":[{"t":3,"n":"Area"},{"t":5,"n":"Casting Time"}]},{"t":5,"n":"Taper Curve"},{"t":5,"n":"Taper Duration"},{"t":5,"n":"Second AV Weight"},{"t":3,"n":"Archtype"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Delivery"},{"t":3,"n":"Second Actor Value"},{"t":3,"p":1,"n":"Casting Art"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data"},{"t":5,"n":"Skill Usage Multiplier"},{"t":6,"p":1,"n":"Dual Casting","c":[{"t":3,"p":1,"n":"Art"},{"t":5,"n":"Scale"}]},{"t":3,"p":1,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":11,"n":"Unknown"},{"t":3,"n":"Equip Ability"},{"t":3,"n":"Image Space Modifier"},{"t":3,"n":"Perk to Apply"},{"t":3,"n":"Casting Sound Level"},{"t":6,"n":"Script Effect AI","c":[{"t":5,"n":"Score"},{"t":5,"n":"Delay Time"}]}]}]},{"t":9,"n":"Counter Effects","c":[{"t":3,"n":"ESCE - Effect"}]},{"t":8,"n":"SNDD - Sounds","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Type"},{"t":3,"n":"Sound"}]}]},{"t":2,"n":"DNAM - Magic Item Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"STAT - Static","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"DNAM - Direction Material","c":[{"t":5,"n":"Max Angle (30-120)"},{"t":3,"n":"Material"}]},{"t":8,"n":"MNAM - Distant LOD","c":[{"t":6,"n":"LOD #0 (Level 0)","c":[{"t":2,"n":"Mesh"}]},{"t":6,"n":"LOD #1 (Level 1)","c":[{"t":2,"n":"Mesh"}]},{"t":6,"n":"LOD #2 (Level 2)","c":[{"t":2,"n":"Mesh"}]},{"t":6,"n":"LOD #3 (Level 3)","c":[{"t":2,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TREE - Tree","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Harvest Sound"},{"t":6,"n":"PFPC - Ingredient Production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer"},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"CNAM - Tree Data","c":[{"t":5,"n":"Trunk Flexibility"},{"t":5,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Leaf Amplitude"},{"t":5,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"p":1,"n":"Has Scope","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Unknown"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":11,"n":"Unknown"},{"t":3,"n":"Skill"},{"t":11,"n":"Unknown"},{"t":3,"n":"Resist"},{"t":11,"n":"Unknown"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unused"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"WTHR - Weather","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"DNAM - Unused"},{"t":11,"n":"CNAM - Unused"},{"t":11,"n":"ANAM - Unused"},{"t":11,"n":"BNAM - Unused"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"n":"MNAM - Precipitation Type"},{"t":3,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"n":"Cloud Speed","c":[{"t":7,"n":"RNAM - Y Speed","c":[{"t":3,"n":"Layer"}]},{"t":7,"n":"QNAM - X Speed","c":[{"t":3,"n":"Layer"}]}]},{"t":7,"n":"PNAM - Cloud Colors","c":[{"t":6,"n":"Layer","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"n":"JNAM - Cloud Alphas","c":[{"t":6,"n":"Layer","c":[{"t":5,"n":"Sunrise"},{"t":5,"n":"Day"},{"t":5,"n":"Sunset"},{"t":5,"n":"Night"}]}]},{"t":6,"n":"NAM0 - Weather Colors","c":[{"t":6,"n":"Sky-Upper","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Fog Near","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Ambient","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sunlight","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sun","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Stars","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sky-Lower","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Horizon","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Effect Lighting","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Cloud LOD Diffuse","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Cloud LOD Ambient","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Fog Far","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sky Statics","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Water Multiplier","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sun Glare","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Moon Glare","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":6,"n":"FNAM - Fog Distance","c":[{"t":5,"n":"Day - Near"},{"t":5,"n":"Day - Far"},{"t":5,"n":"Night - Near"},{"t":5,"n":"Night - Far"},{"t":5,"n":"Day - Power"},{"t":5,"n":"Night - Power"},{"t":5,"n":"Day - Max"},{"t":5,"n":"Night - Max"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"n":"Trans Delta"},{"t":3,"n":"Sun Glare"},{"t":3,"n":"Sun Damage"},{"t":3,"n":"Precipitation - Begin Fade In"},{"t":3,"n":"Precipitation - End Fade Out"},{"t":3,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"n":"Thunder\/Lightning - Frequency"},{"t":3,"n":"Flags"},{"t":6,"n":"Lightning Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"}]},{"t":3,"n":"Visual Effect - Begin"},{"t":3,"n":"Visual Effect - End"},{"t":3,"n":"Wind Direction"},{"t":3,"n":"Wind Direction Range"}]},{"t":3,"n":"NAM1 - Disabled Cloud Layers"},{"t":8,"n":"Sounds","c":[{"t":6,"n":"SNAM - Sound","c":[{"t":3,"n":"Sound"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Sky Statics","c":[{"t":3,"n":"TNAM - Static"}]},{"t":6,"n":"IMSP - Image Spaces","c":[{"t":3,"n":"Sunrise"},{"t":3,"n":"Day"},{"t":3,"n":"Sunset"},{"t":3,"n":"Night"}]},{"t":6,"n":"HNAM - Volumetric Lighting","c":[{"t":3,"n":"Sunrise"},{"t":3,"n":"Day"},{"t":3,"n":"Sunset"},{"t":3,"n":"Night"}]},{"t":6,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"DALC - Sunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Day","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Sunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Night","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"p":1,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":6,"n":"Aurora","c":[{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":3,"n":"GNAM - Sun Glare Lens Flare"}]},{"t":1,"p":1,"n":"ACTI - Activator","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]}]},"name":"Bash.Graphics","hash":"F407AD9E","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Hairs.json b/frontend/settings/Skyrim/Bash.Hairs.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Invent.Add.json b/frontend/settings/Skyrim/Bash.Invent.Add.json
new file mode 100755
index 0000000..cda05c8
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Invent.Add.json
@@ -0,0 +1 @@
+{"records":"CONT,NPC_","description":"Adds items to inventories.","tree":{"records":[{"t":1,"p":1,"n":"CONT - Container","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","c":[{"t":6,"s":1,"p":1,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - DATA","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Allow Sounds When Animation"},{"t":4,"n":"Respawns"},{"t":4,"n":"Show Owner"}]},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Female"},{"t":4,"n":"Essential"},{"t":4,"n":"Is CharGen Face Preset"},{"t":4,"n":"Respawn"},{"t":4,"n":"Auto-calc stats"},{"t":4,"n":"Unique"},{"t":4,"n":"Doesn't affect stealth meter"},{"t":4,"n":"PC Level Mult"},{"t":4,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Bleedout Override"},{"t":4,"n":"Opposite Gender Anims"},{"t":4,"n":"Simple Actor"},{"t":4,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"looped audio?"},{"t":4,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Invulnerable"}]},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags","c":[{"t":4,"n":"Use Traits"},{"t":4,"n":"Use Stats"},{"t":4,"n":"Use Factions"},{"t":4,"n":"Use Spell List"},{"t":4,"n":"Use AI Data"},{"t":4,"n":"Use AI Packages"},{"t":4,"n":"Use Model\/Animation?"},{"t":4,"n":"Use Base Data"},{"t":4,"n":"Use Inventory"},{"t":4,"n":"Use Script"},{"t":4,"n":"Use Def Pack List"},{"t":4,"n":"Use Attack Data"},{"t":4,"n":"Use Keywords"}]},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","c":[{"t":6,"s":1,"p":1,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]}]},"name":"Bash.Invent.Add","hash":"9EAB411D","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Invent.Change.json b/frontend/settings/Skyrim/Bash.Invent.Change.json
new file mode 100755
index 0000000..0277d83
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Invent.Change.json
@@ -0,0 +1 @@
+{"records":"CONT,NPC_","description":"Changes other properties (like count and owner) of items in inventories.","tree":{"records":[{"t":1,"p":1,"n":"CONT - Container","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"o":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"n":"Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - DATA","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Allow Sounds When Animation"},{"t":4,"n":"Respawns"},{"t":4,"n":"Show Owner"}]},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Female"},{"t":4,"n":"Essential"},{"t":4,"n":"Is CharGen Face Preset"},{"t":4,"n":"Respawn"},{"t":4,"n":"Auto-calc stats"},{"t":4,"n":"Unique"},{"t":4,"n":"Doesn't affect stealth meter"},{"t":4,"n":"PC Level Mult"},{"t":4,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Bleedout Override"},{"t":4,"n":"Opposite Gender Anims"},{"t":4,"n":"Simple Actor"},{"t":4,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"looped audio?"},{"t":4,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Invulnerable"}]},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags","c":[{"t":4,"n":"Use Traits"},{"t":4,"n":"Use Stats"},{"t":4,"n":"Use Factions"},{"t":4,"n":"Use Spell List"},{"t":4,"n":"Use AI Data"},{"t":4,"n":"Use AI Packages"},{"t":4,"n":"Use Model\/Animation?"},{"t":4,"n":"Use Base Data"},{"t":4,"n":"Use Inventory"},{"t":4,"n":"Use Script"},{"t":4,"n":"Use Def Pack List"},{"t":4,"n":"Use Attack Data"},{"t":4,"n":"Use Keywords"}]},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"o":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]}]},"name":"Bash.Invent.Change","hash":"E7029CE0","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Invent.Remove.json b/frontend/settings/Skyrim/Bash.Invent.Remove.json
new file mode 100755
index 0000000..d6519de
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Invent.Remove.json
@@ -0,0 +1 @@
+{"records":"CONT,NPC_","description":"Removes items from inventories.","tree":{"records":[{"t":1,"p":1,"n":"CONT - Container","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - DATA","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Allow Sounds When Animation"},{"t":4,"n":"Respawns"},{"t":4,"n":"Show Owner"}]},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Female"},{"t":4,"n":"Essential"},{"t":4,"n":"Is CharGen Face Preset"},{"t":4,"n":"Respawn"},{"t":4,"n":"Auto-calc stats"},{"t":4,"n":"Unique"},{"t":4,"n":"Doesn't affect stealth meter"},{"t":4,"n":"PC Level Mult"},{"t":4,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Bleedout Override"},{"t":4,"n":"Opposite Gender Anims"},{"t":4,"n":"Simple Actor"},{"t":4,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"looped audio?"},{"t":4,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Invulnerable"}]},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags","c":[{"t":4,"n":"Use Traits"},{"t":4,"n":"Use Stats"},{"t":4,"n":"Use Factions"},{"t":4,"n":"Use Spell List"},{"t":4,"n":"Use AI Data"},{"t":4,"n":"Use AI Packages"},{"t":4,"n":"Use Model\/Animation?"},{"t":4,"n":"Use Base Data"},{"t":4,"n":"Use Inventory"},{"t":4,"n":"Use Script"},{"t":4,"n":"Use Def Pack List"},{"t":4,"n":"Use Attack Data"},{"t":4,"n":"Use Keywords"}]},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]}]},"name":"Bash.Invent.Remove","hash":"DFB55892","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Invent.json b/frontend/settings/Skyrim/Bash.Invent.json
old mode 100644
new mode 100755
index e26b0c2..58c9eff
--- a/frontend/settings/Skyrim/Bash.Invent.json
+++ b/frontend/settings/Skyrim/Bash.Invent.json
@@ -1 +1 @@
-{"records":"NPC_,CONT","description":"Invent tag from Wrye Bash.\r\n\r\nUsed when the mod changes inventories.","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":12,"n":"Level"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":10,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":10,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":7,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"},{"t":11,"n":"Unused"}]},{"t":9,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"}]}]}]},{"t":1,"p":1,"n":"CONT - Container","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]}]},"name":"Bash.Invent","hash":"$7F0C9C4C","color":255}
\ No newline at end of file
+{"records":"CONT,NPC_","description":"Invent tag from Wrye Bash.\r\n\r\nUsed when the mod changes inventories.","tree":{"records":[{"t":1,"p":1,"n":"CONT - Container","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"o":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":12,"n":"Level"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":10,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":10,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"o":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":7,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"},{"t":11,"n":"Unused"}]},{"t":9,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"}]}]}]}]},"name":"Bash.Invent","hash":"3E1680F0","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Keywords.json b/frontend/settings/Skyrim/Bash.Keywords.json
new file mode 100755
index 0000000..7173b1c
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Keywords.json
@@ -0,0 +1 @@
+{"records":"ALCH,AMMO,ARMO,BOOK,FLOR,FURN,INGR,KEYM,LCTN,MGEF,MISC,NPC_,SCRL,SLGM,SPEL,TACT,WEAP,ACTI","description":"Modifies the lists of keywords attached to things.","tree":{"records":[{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"DESC - Description"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"},{"t":11,"n":"MO2T - Texture Files Hashes"},{"t":7,"n":"MO2S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"},{"t":11,"n":"MO4T - Texture Files Hashes"},{"t":7,"n":"MO4S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"},{"t":2,"n":"MIC2 - Small Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"BODT - Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":2,"n":"DESC - Description"},{"t":8,"n":"Armature","c":[{"t":3,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"n":"Skill"},{"t":3,"n":"Spell"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"FLOR - Flora","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"},{"t":6,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Disabled Points"}]},{"t":3,"n":"FNMK - Marker Keyword"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"LCTN - Location","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":3,"n":"NAM0 - Horse Marker Ref"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"Magic Effect Data","c":[{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"n":"Assoc. Item"},{"t":3,"n":"Magic Skill"},{"t":3,"n":"Resist Value"},{"t":3,"n":"Counter Effect count"},{"t":3,"n":"Casting Light"},{"t":5,"n":"Taper Weight"},{"t":3,"n":"Hit Shader"},{"t":3,"n":"Enchant Shader"},{"t":3,"n":"Minimum Skill Level"},{"t":6,"n":"Spellmaking","c":[{"t":3,"n":"Area"},{"t":5,"n":"Casting Time"}]},{"t":5,"n":"Taper Curve"},{"t":5,"n":"Taper Duration"},{"t":5,"n":"Second AV Weight"},{"t":3,"n":"Archtype"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Delivery"},{"t":3,"n":"Second Actor Value"},{"t":3,"n":"Casting Art"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data"},{"t":5,"n":"Skill Usage Multiplier"},{"t":6,"n":"Dual Casting","c":[{"t":3,"n":"Art"},{"t":5,"n":"Scale"}]},{"t":3,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":3,"n":"Equip Ability"},{"t":3,"n":"Image Space Modifier"},{"t":3,"n":"Perk to Apply"},{"t":3,"n":"Casting Sound Level"},{"t":6,"n":"Script Effect AI","c":[{"t":5,"n":"Score"},{"t":5,"n":"Delay Time"}]}]}]},{"t":8,"n":"Counter Effects","c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"n":"SNDD - Sounds","c":[{"t":6,"n":"","c":[{"t":3,"n":"Type"},{"t":3,"n":"Sound"}]}]},{"t":2,"n":"DNAM - Magic Item Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"},{"t":11,"n":"MO3T - Texture Files Hashes"},{"t":7,"n":"MO3S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":3,"n":"Skill"},{"t":3,"n":"Resist"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unknown"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"ACTI - Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count","lf":"KWDA - Keywords"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}],"lt":"KSIZ - Keyword Count"},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]}]},"name":"Bash.Keywords","hash":"0D4F54E6","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Lev.json b/frontend/settings/Skyrim/Bash.Lev.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.NPC.AIPackageOverrides.json b/frontend/settings/Skyrim/Bash.NPC.AIPackageOverrides.json
new file mode 100755
index 0000000..53bd3b2
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.NPC.AIPackageOverrides.json
@@ -0,0 +1 @@
+{"records":"NPC_","description":"","tree":{"records":[{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Female"},{"t":4,"n":"Essential"},{"t":4,"n":"Is CharGen Face Preset"},{"t":4,"n":"Respawn"},{"t":4,"n":"Auto-calc stats"},{"t":4,"n":"Unique"},{"t":4,"n":"Doesn't affect stealth meter"},{"t":4,"n":"PC Level Mult"},{"t":4,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Bleedout Override"},{"t":4,"n":"Opposite Gender Anims"},{"t":4,"n":"Simple Actor"},{"t":4,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"looped audio?"},{"t":4,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Invulnerable"}]},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags","c":[{"t":4,"n":"Use Traits"},{"t":4,"n":"Use Stats"},{"t":4,"n":"Use Factions"},{"t":4,"n":"Use Spell List"},{"t":4,"n":"Use AI Data"},{"t":4,"n":"Use AI Packages"},{"t":4,"n":"Use Model\/Animation?"},{"t":4,"n":"Use Base Data"},{"t":4,"n":"Use Inventory"},{"t":4,"n":"Use Script"},{"t":4,"n":"Use Def Pack List"},{"t":4,"n":"Use Attack Data"},{"t":4,"n":"Use Keywords"}]},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"OneHanded"},{"t":3,"n":"TwoHanded"},{"t":3,"n":"Marksman"},{"t":3,"n":"Block"},{"t":3,"n":"Smithing"},{"t":3,"n":"HeavyArmor"},{"t":3,"n":"LightArmor"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Lockpicking"},{"t":3,"n":"Sneak"},{"t":3,"n":"Alchemy"},{"t":3,"n":"Speechcraft"},{"t":3,"n":"Alteration"},{"t":3,"n":"Conjuration"},{"t":3,"n":"Destruction"},{"t":3,"n":"Illusion"},{"t":3,"n":"Restoration"},{"t":3,"n":"Enchanting"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]}]},"name":"Bash.NPC.AIPackageOverrides","hash":"F3D39EF3","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.NPC.Class.json b/frontend/settings/Skyrim/Bash.NPC.Class.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.NPC.Race.json b/frontend/settings/Skyrim/Bash.NPC.Race.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Names.json b/frontend/settings/Skyrim/Bash.Names.json
old mode 100644
new mode 100755
index 0cb8e66..f5fe887
--- a/frontend/settings/Skyrim/Bash.Names.json
+++ b/frontend/settings/Skyrim/Bash.Names.json
@@ -1 +1 @@
-{"records":"ACTI,AMMO,ARMO,AVIF,BOOK,CLAS,CONT,DIAL,DOOR,ENCH,EXPL,FACT,FLOR,FURN,HAZD,HDPT,INGR,KEYM,LCTN,LIGH,MESG,MGEF,MISC,MSTT,NPC_,PERK,PROJ,QUST,RACE,REFR,SCRL,SHOU,SLGM,SNCT,SPEL,TREE,WATR,WEAP,WRLD,ALCH","description":"Names tag from Wrye Bash.\r\n\r\nUsed when the mod changes the names of things.","tree":{"records":[{"t":1,"p":1,"n":"ACTI - Activator","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":7,"n":"Armature","c":[{"t":3,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":2,"n":"ANAM - Abbreviation"},{"t":11,"n":"CNAM - Unknown"},{"t":6,"n":"AVSK - Skill","c":[{"t":5,"n":"Skill Use Mult"},{"t":5,"n":"Skill Offset Mult"},{"t":5,"n":"Skill Improve Mult"},{"t":5,"n":"Skill Improve Offset"}]},{"t":8,"n":"Perk Tree","c":[{"t":6,"n":"Node","c":[{"t":3,"n":"PNAM - Perk"}]}]}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Teaches"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"CLAS - Class","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Teaches"},{"t":3,"n":"Maximum training level"},{"t":7,"n":"Skill Weights","c":[{"t":3,"n":"Weight #0 (One Handed)"},{"t":3,"n":"Weight #1 (Two Handed)"},{"t":3,"n":"Weight #2 (Archery)"},{"t":3,"n":"Weight #3 (Block)"},{"t":3,"n":"Weight #4 (Smithing)"},{"t":3,"n":"Weight #5 (Heavy Armor)"},{"t":3,"n":"Weight #6 (Light Armor)"},{"t":3,"n":"Weight #7 (Pickpocket)"},{"t":3,"n":"Weight #8 (Lockpicking)"},{"t":3,"n":"Weight #9 (Sneak)"},{"t":3,"n":"Weight #10 (Alchemy)"},{"t":3,"n":"Weight #11 (Speech)"},{"t":3,"n":"Weight #12 (Alteration)"},{"t":3,"n":"Weight #13 (Conjuration)"},{"t":3,"n":"Weight #14 (Destruction)"},{"t":3,"n":"Weight #15 (Illusion)"},{"t":3,"n":"Weight #16 (Restoration)"},{"t":3,"n":"Weight #17 (Enchanting)"}]},{"t":5,"n":"Bleedout Default"},{"t":3,"n":"Voice Points"},{"t":7,"n":"Attribute Weights","c":[{"t":3,"n":"Weight #0 (Health)"},{"t":3,"n":"Weight #1 (Magicka)"},{"t":3,"n":"Weight #2 (Stamina)"},{"t":3,"n":"Weight #3 (Unknown)"}]}]}]},{"t":1,"p":1,"n":"CONT - Container","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"n":"PNAM - Priority"},{"t":3,"n":"BNAM - Branch"},{"t":3,"n":"QNAM - Quest"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Topic Flags"},{"t":3,"n":"Category"},{"t":3,"n":"Subtype"}]},{"t":2,"n":"SNAM - Subtype Name"},{"t":3,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DOOR - Door","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"ANAM - Sound - Close"},{"t":3,"n":"BNAM - Sound - Loop"},{"t":3,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"ENCH - Object Effect","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Enchantment Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Enchantment Amount"},{"t":3,"n":"Target Type"},{"t":3,"n":"Enchant Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Base Enchantment"},{"t":3,"n":"Worn Restrictions"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"EXPL - Explosion","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Light"},{"t":3,"n":"Sound 1"},{"t":3,"n":"Sound 2"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Placed Object"},{"t":3,"n":"Spawn Projectile"},{"t":5,"n":"Force"},{"t":5,"n":"Damage"},{"t":5,"n":"Radius"},{"t":5,"n":"IS Radius"},{"t":5,"n":"Vertical Offset Mult"},{"t":3,"n":"Flags"},{"t":3,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"FACT - Faction","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":10,"n":"Relations","c":[{"t":6,"n":"XNAM - Relation","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Modifier"},{"t":3,"n":"Group Combat Reaction"}]}]},{"t":6,"n":"DATA - Flags","c":[{"t":3,"n":"Flags"}]},{"t":3,"n":"JAIL - Exterior Jail Marker"},{"t":3,"n":"WAIT - Follower Wait Marker"},{"t":3,"n":"STOL - Stolen Goods Container"},{"t":3,"n":"PLCN - Player Inventory Container"},{"t":3,"n":"CRGR - Shared Crime Faction List"},{"t":3,"n":"JOUT - Jail Outfit"},{"t":6,"n":"CRVA - Crime Values","c":[{"t":3,"n":"Arrest"},{"t":3,"n":"Attack On Sight"},{"t":3,"n":"Murder"},{"t":3,"n":"Assault"},{"t":3,"n":"Trespass"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"n":"Steal Multiplier"},{"t":3,"n":"Escape"},{"t":3,"n":"Werewolf"}]},{"t":10,"n":"Ranks","c":[{"t":6,"n":"Rank","c":[{"t":3,"n":"RNAM - Rank#"}]}]},{"t":3,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"n":"VENC - Merchant Container"},{"t":6,"n":"VENV - Vendor Values","c":[{"t":3,"n":"Start Hour"},{"t":3,"n":"End Hour"},{"t":3,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"n":"Only Buys Stolen Items"},{"t":3,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"n":"PLVD - Location","c":[{"t":3,"n":"Type"},{"t":12,"n":"Location Value"},{"t":3,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"HAZD - Hazard","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Limit"},{"t":5,"n":"Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Image Space Radius"},{"t":5,"n":"Target Interval"},{"t":3,"n":"Flags"},{"t":3,"n":"Spell"},{"t":3,"n":"Light"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Sound"}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"PNAM - Type"},{"t":9,"n":"Extra Parts","c":[{"t":3,"n":"HNAM - Part"}]},{"t":8,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"NAM0 - Part Type"},{"t":2,"n":"NAM1 - Filename"}]}]},{"t":3,"n":"TNAM - Texture Set"},{"t":3,"n":"CNAM - Color"},{"t":3,"n":"RNAM - Valid Races"}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"LCTN - Location","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":8,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":8,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":8,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor #0"}]},{"t":8,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":8,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":8,"n":"Coordinates","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":8,"n":"Coordinates","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":8,"n":"Coordinates","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":8,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":8,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":3,"n":"NAM0 - Horse Marker Ref"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LIGH - Light","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unknown"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"MESG - Message","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"INAM - Icon (unused)"},{"t":3,"n":"QNAM - Owner Quest"},{"t":3,"n":"DNAM - Flags","c":[{"t":4,"n":"Message Box"}]},{"t":3,"n":"TNAM - Display Time"},{"t":8,"n":"Menu Buttons","c":[{"t":6,"n":"Menu Button","c":[{"t":2,"n":"ITXT - Button Text"}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Magic Effect Data","c":[{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Base Cost"},{"t":12,"n":"Assoc. Item"},{"t":3,"n":"Magic Skill"},{"t":3,"n":"Resist Value"},{"t":3,"n":"Counter Effect count"},{"t":11,"n":"Unused"},{"t":3,"n":"Casting Light"},{"t":5,"n":"Taper Weight"},{"t":3,"n":"Hit Shader"},{"t":3,"n":"Enchant Shader"},{"t":3,"n":"Minimum Skill Level"},{"t":6,"n":"Spellmaking","c":[{"t":3,"n":"Area"},{"t":5,"n":"Casting Time"}]},{"t":5,"n":"Taper Curve"},{"t":5,"n":"Taper Duration"},{"t":5,"n":"Second AV Weight"},{"t":3,"n":"Archtype"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Delivery"},{"t":3,"n":"Second Actor Value"},{"t":3,"n":"Casting Art"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data"},{"t":5,"n":"Skill Usage Multiplier"},{"t":6,"n":"Dual Casting","c":[{"t":3,"n":"Art"},{"t":5,"n":"Scale"}]},{"t":3,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":11,"n":"Unknown"},{"t":3,"n":"Equip Ability"},{"t":3,"n":"Image Space Modifier"},{"t":3,"n":"Perk to Apply"},{"t":3,"n":"Casting Sound Level"},{"t":6,"n":"Script Effect AI","c":[{"t":5,"n":"Score"},{"t":5,"n":"Delay Time"}]}]}]},{"t":9,"n":"Counter Effects","c":[{"t":3,"n":"ESCE - Effect"}]},{"t":8,"n":"SNDD - Sounds","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Type"},{"t":3,"n":"Sound"}]}]},{"t":2,"n":"DNAM - Magic Item Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":12,"n":"Level"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":10,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":10,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":7,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"},{"t":11,"n":"Unused"}]},{"t":9,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"}]}]}]},{"t":1,"p":1,"n":"PERK - Perk","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":6,"n":"Perk VMAD","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]},{"t":6,"n":"Script Fragments Perk","c":[{"t":3,"n":"Unknown"},{"t":2,"n":"fileName"},{"t":9,"n":"Perk Fragments","c":[{"t":6,"n":"Perk Fragment","c":[{"t":3,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Trait"},{"t":3,"n":"Level"},{"t":3,"n":"Num Ranks"},{"t":3,"n":"Playable"},{"t":3,"n":"Hidden"}]},{"t":3,"n":"NNAM - Next Perk"},{"t":10,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":6,"n":"PRKE - Header","c":[{"t":3,"n":"Type"},{"t":3,"n":"Rank"},{"t":3,"n":"Priority"}]},{"t":12,"n":"DATA - Effect Data","c":[{"t":6,"n":"Quest + Stage","c":[{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":11,"n":"Unused"}]}]},{"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Gravity"},{"t":5,"n":"Speed"},{"t":5,"n":"Range"},{"t":3,"n":"Light"},{"t":3,"n":"Muzzle Flash - Light"},{"t":5,"n":"Tracer Chance"},{"t":5,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"n":"Explosion"},{"t":3,"n":"Sound"},{"t":5,"n":"Muzzle Flash - Duration"},{"t":5,"n":"Fade Duration"},{"t":5,"n":"Impact Force"},{"t":3,"n":"Sound - Countdown"},{"t":3,"n":"Sound - Disable"},{"t":3,"n":"Default Weapon Source"},{"t":5,"n":"Cone Spread"},{"t":5,"n":"Collision Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Relaunch Interval"},{"t":3,"n":"Decal Data"},{"t":3,"n":"Collision Layer"}]},{"t":6,"n":"Muzzle Flash Model","c":[{"t":2,"n":"NAM1 - Model Filename"}]},{"t":3,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"QUST - Quest","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":6,"n":"Quest VMAD","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]},{"t":6,"n":"Script Fragments Quest","c":[{"t":3,"n":"Unknown"},{"t":3,"n":"fragmentCount"},{"t":2,"n":"fileName"},{"t":9,"n":"Quest Fragments","c":[{"t":6,"n":"Quest Fragment","c":[{"t":3,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"n":"Quest Stage Index"},{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]},{"t":9,"n":"Aliases","c":[{"t":6,"n":"Alias","c":[{"t":12,"n":"Object Union","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":9,"n":"Alias Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"DNAM - General","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Priority"},{"t":3,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"n":"Type"}]},{"t":2,"n":"ENAM - Event"},{"t":7,"n":"Text Display Globals","c":[{"t":3,"n":"QTGL - Global"}]},{"t":2,"n":"FLTR - Object Window Filter"},{"t":6,"n":"Quest Dialogue Conditions","c":[{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"n":"NEXT - Marker"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]},{"t":10,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"INDX - Stage Index","c":[{"t":3,"n":"Stage Index"},{"t":3,"n":"Flags"},{"t":3,"n":"Unknown"}]}]}]},{"t":8,"n":"Objectives","c":[{"t":6,"n":"Objective","c":[{"t":3,"n":"QOBJ - Objective Index"},{"t":2,"n":"NNAM - Display Text"}]}]},{"t":11,"n":"ANAM - Aliases Marker"},{"t":8,"n":"Aliases","c":[{"t":6,"n":"Alias","c":[{"t":3,"n":"ALST - Reference Alias ID"},{"n":"ALED - Alias End"}]}]},{"t":2,"n":"NNAM - Description"},{"t":8,"n":"Targets","c":[{"t":6,"n":"Target","c":[{"t":6,"n":"QSTA - Target","c":[{"t":3,"n":"Target"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]}]}]},{"t":1,"p":1,"n":"RACE - Race","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":3,"n":"WNAM - Skin"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":10,"n":"Skill Boosts","c":[{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]}]},{"t":11,"n":"Unknown"},{"t":5,"n":"Male Height"},{"t":5,"n":"Female Height"},{"t":5,"n":"Male Weight"},{"t":5,"n":"Female Weight"},{"t":3,"n":"Flags"},{"t":5,"n":"Starting Health"},{"t":5,"n":"Starting Magicka"},{"t":5,"n":"Starting Stamina"},{"t":5,"n":"Base Carry Weight"},{"t":5,"n":"Base Mass"},{"t":5,"n":"Acceleration rate"},{"t":5,"n":"Deceleration rate"},{"t":3,"n":"Size"},{"t":3,"n":"Head Biped Object"},{"t":3,"n":"Hair Biped Object"},{"t":5,"n":"Injured Health Pct"},{"t":3,"n":"Shield Biped Object"},{"t":5,"n":"Health Regen"},{"t":5,"n":"Magicka Regen"},{"t":5,"n":"Stamina Regen"},{"t":5,"n":"Unarmed Damage"},{"t":5,"n":"Unarmed Reach"},{"t":3,"n":"Body Biped Object"},{"t":5,"n":"Aim Angle Tolerance"},{"t":5,"n":"Flight Radius"},{"t":5,"n":"Angular Acceleration Rate"},{"t":5,"n":"Angular Tolerance"},{"t":3,"n":"Flags 2"},{"t":6,"n":"Mount Data","c":[{"t":5,"n":"Offset X"},{"t":5,"n":"Offset Y"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"}]}]},{"n":"MNAM - Male Marker"},{"t":2,"n":"ANAM - Male Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"FNAM - Female Marker"},{"t":2,"n":"ANAM - Female Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"NAM2 - Marker NAM2 #1"},{"t":9,"n":"Movement Type Names","c":[{"t":2,"n":"MTNM - Name"}]},{"t":7,"n":"VTCK - Voices","c":[{"t":3,"n":"Voice #0 (Male)"},{"t":3,"n":"Voice #1 (Female)"}]},{"t":7,"n":"DNAM - Decapitate Armors","c":[{"t":3,"n":"Decapitate Armor #0 (Male)"},{"t":3,"n":"Decapitate Armor #1 (Female)"}]},{"t":7,"n":"HCLF - Default Hair Colors","c":[{"t":3,"n":"Default Hair Color #0 (Male)"},{"t":3,"n":"Default Hair Color #1 (Female)"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":6,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"}]}]}]},{"t":6,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"}]}]}]}]},{"t":9,"n":"HNAM - Hairs","c":[{"t":3,"n":"Hair"}]},{"t":9,"n":"ENAM - Eyes","c":[{"t":3,"n":"Eye"}]},{"t":3,"n":"GNAM - Body Part Data"},{"n":"NAM2 - Marker NAM2 #2"},{"n":"NAM3 - Marker NAM3 #3"},{"t":6,"n":"Male Behavior Graph","c":[{"n":"MNAM - Male Data Marker"}]},{"t":6,"n":"Female Behavior Graph","c":[{"n":"FNAM - Female Data Marker"}]},{"t":3,"n":"NAM4 - Material Type"},{"t":3,"n":"NAM5 - Impact Data Set"},{"t":3,"n":"NAM7 - Decapitation FX"},{"t":3,"n":"ONAM - Open Loot Sound"},{"t":3,"n":"LNAM - Close Loot Sound"},{"t":7,"n":"Biped Object Names","c":[{"t":2,"n":"NAME - Name"}]},{"t":10,"n":"Movement Types","c":[{"t":6,"n":"Movement Types","c":[{"t":3,"n":"MTYP - Movement Type"}]}]},{"t":3,"n":"VNAM - Equipment Flags"},{"t":9,"n":"Equip Slots","c":[{"t":3,"n":"QNAM - Equip Slot"}]},{"t":3,"n":"UNES - Unarmed Equip Slot"},{"t":7,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]}]},{"t":3,"n":"WKMV - Base Movement Default - Walk"},{"t":3,"n":"RNMV - Base Movement Default - Run"},{"t":3,"n":"SWMV - Base Movement Default - Swim"},{"t":3,"n":"FLMV - Base Movement Default - Fly"},{"t":3,"n":"SNMV - Base Movement Default - Sneak"},{"t":3,"n":"SPMV - Base Movement Default - Sprint"},{"t":6,"n":"Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"t":6,"n":"Male Head Data","c":[{"n":"MNAM - Male Data Marker"}]},{"t":6,"n":"Female Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"n":"FNAM - Female Data Marker"}]}]},{"t":3,"n":"NAM8 - Morph race"},{"t":3,"n":"RNAM - Armor race"}]},{"t":1,"p":1,"n":"REFR - Placed Object","c":[{"t":3,"n":"Cell"},{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags","c":[{"t":4,"n":"Persistent"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":3,"n":"NAME - Base"},{"t":6,"n":"XMBO - Bound Half Extents","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"XPRM - Primitive","c":[{"t":6,"n":"Bounds","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Color","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"n":"Type"}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"n":"Size","c":[{"t":5,"n":"Width"},{"t":5,"n":"Height"}]},{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation (Quaternion?)","c":[{"t":5,"n":"q1"},{"t":5,"n":"q2"},{"t":5,"n":"q3"},{"t":5,"n":"q4"}]}]},{"t":8,"n":"XPOD - Portal Data","c":[{"t":6,"n":"References #0","c":[{"t":3,"n":"Origin"},{"t":3,"n":"Destination"}]}]},{"t":6,"n":"XPTL - Room Portal (unused)","c":[{"t":6,"n":"Size","c":[{"t":5,"n":"Width"},{"t":5,"n":"Height"}]},{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation (Quaternion?)","c":[{"t":5,"n":"q1"},{"t":5,"n":"q2"},{"t":5,"n":"q3"},{"t":5,"n":"q4"}]}]},{"t":6,"n":"Bound Data","c":[{"t":6,"n":"XRMR - Header","c":[{"t":3,"n":"Linked Rooms Count"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"n":"XRDS - Radius"},{"t":10,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":9,"n":"Lit Water","c":[{"t":3,"n":"XLTW - Water"}]},{"t":3,"n":"XEMI - Emittance"},{"t":6,"n":"XLIG - Light Data","c":[{"t":5,"n":"FOV 90+\/-"},{"t":5,"n":"Fade 1.35+\/-"},{"t":11,"n":"Unknown"},{"t":5,"n":"Shadow Depth Bias"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"XALP - Alpha","c":[{"t":3,"n":"Cutoff"},{"t":3,"n":"Base"}]},{"t":6,"n":"XTEL - Teleport Destination","c":[{"t":3,"n":"Door"},{"t":6,"n":"Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]},{"t":3,"n":"Flags"}]},{"t":3,"n":"XTNM - Teleport Message Box"},{"t":3,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"XCVL - Unknown","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":5,"n":"XSCL - Scale"},{"t":3,"n":"XSPC - Spawn Container"},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"}]},{"t":3,"n":"XLIB - Leveled Item Base Object"},{"t":3,"n":"XLCM - Level Modifier"},{"t":3,"n":"XLCN - Persistent Location"},{"t":3,"n":"XTRI - Collision Layer"},{"t":6,"n":"XLOC - Lock Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"n":"Key"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"XNDP - Navigation Door Link","c":[{"t":3,"n":"Navigation Mesh"},{"t":3,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref #0"}]},{"n":"XIS2 - Ignored by Sandbox"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XCNT - Item Count"},{"t":5,"n":"XCHG - Charge"},{"t":3,"n":"XLRL - Location Reference"},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":8,"n":"Patrol","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"XPRD - Idle Time"},{"n":"XPPA - Patrol Script Marker"},{"t":3,"n":"INAM - Idle"}]}]},{"t":3,"n":"XACT - Action Flag"},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"n":"ONAM - Open by Default"},{"t":6,"p":1,"n":"Map Marker","c":[{"n":"XMRK - Map Marker Data"},{"t":3,"n":"FNAM - Map Flags"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"TNAM - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"XATR - Attach Ref"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown #0"},{"t":5,"n":"Unknown #1"},{"t":5,"n":"Unknown #2"}]},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"SHOU - Shout","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":2,"n":"DESC - Description"},{"t":8,"n":"Words of Power","c":[{"t":6,"n":"SNAM - ","c":[{"t":3,"n":"Word"},{"t":3,"n":"Spell"},{"t":5,"n":"Recovery Time"}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SNCT - Sound Category","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"PNAM - Parent"},{"t":3,"n":"VNAM - Static Volume Multiplier"},{"t":3,"n":"UNAM - Default Menu Value"}]},{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"TREE - Tree","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Harvest Sound"},{"t":6,"n":"PFPC - Ingredient Production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer"},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"CNAM - Tree Data","c":[{"t":5,"n":"Trunk Flexibility"},{"t":5,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Leaf Amplitude"},{"t":5,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"WATR - Water","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":7,"n":"Unused","c":[{"t":2,"n":"NNAM - Noise Map"}]},{"t":3,"n":"ANAM - Opacity"},{"t":3,"n":"FNAM - Flags"},{"t":11,"n":"MNAM - Unused"},{"t":3,"n":"TNAM - Material"},{"t":3,"n":"SNAM - Open Sound"},{"t":3,"n":"XNAM - Spell"},{"t":3,"n":"INAM - Image Space"},{"t":3,"n":"DATA - Damage Per Second"},{"t":6,"n":"DNAM - Visual Data","c":[{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Specular Properties - Sun Specular Power"},{"t":5,"n":"Water Properties - Reflectivity Amount"},{"t":5,"n":"Water Properties - Fresnel Amount"},{"t":11,"n":"Unknown"},{"t":5,"n":"Fog Properties - Above Water - Fog Distance - Near Plane"},{"t":5,"n":"Fog Properties - Above Water - Fog Distance - Far Plane"},{"t":6,"n":"Shallow Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Deep Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Reflection Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Displacement Simulator - Starting Size"},{"t":5,"n":"Displacement Simulator - Force"},{"t":5,"n":"Displacement Simulator - Velocity"},{"t":5,"n":"Displacement Simulator - Falloff"},{"t":5,"n":"Displacement Simulator - Dampner"},{"t":5,"n":"Unknown"},{"t":5,"n":"Noise Properties - Noise Falloff"},{"t":5,"n":"Noise Properties - Layer One - Wind Direction"},{"t":5,"n":"Noise Properties - Layer Two - Wind Direction"},{"t":5,"n":"Noise Properties - Layer Three - Wind Direction"},{"t":5,"n":"Noise Properties - Layer One - Wind Speed"},{"t":5,"n":"Noise Properties - Layer Two - Wind Speed"},{"t":5,"n":"Noise Properties - Layer Three - Wind Speed"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Fog Properties - Above Water - Fog Amount"},{"t":5,"n":"Unknown"},{"t":5,"n":"Fog Properties - Under Water - Fog Amount"},{"t":5,"n":"Fog Properties - Under Water - Fog Distance - Near Plane"},{"t":5,"n":"Fog Properties - Under Water - Fog Distance - Far Plane"},{"t":5,"n":"Water Properties - Refraction Magnitude"},{"t":5,"n":"Specular Properties - Specular Power"},{"t":5,"n":"Unknown"},{"t":5,"n":"Specular Properties - Specular Radius"},{"t":5,"n":"Specular Properties - Specular Brightness"},{"t":5,"n":"Noise Properties - Layer One - UV Scale"},{"t":5,"n":"Noise Properties - Layer Two - UV Scale"},{"t":5,"n":"Noise Properties - Layer Three - UV Scale"},{"t":5,"n":"Noise Properties - Layer One - Amplitude Scale"},{"t":5,"n":"Noise Properties - Layer Two - Amplitude Scale"},{"t":5,"n":"Noise Properties - Layer Three - Amplitude Scale"},{"t":5,"n":"Water Properties - Reflection Magnitude"},{"t":5,"n":"Specular Properties - Sun Sparkle Magnitude"},{"t":5,"n":"Specular Properties - Sun Specular Magnitude"},{"t":5,"n":"Depth Properties - Reflections"},{"t":5,"n":"Depth Properties - Refraction"},{"t":5,"n":"Depth Properties - Normals"},{"t":5,"n":"Depth Properties - Specular Lighting"},{"t":5,"n":"Specular Properties - Sun Sparkle Power"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"n":"NAM0 - Linear Velocity","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"NAM1 - Angular Velocity","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":2,"n":"NAM2 - Noise Texture"},{"t":2,"n":"NAM3 - Unused"},{"t":2,"n":"NAM4 - Unused"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Unknown"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":11,"n":"Unknown"},{"t":3,"n":"Skill"},{"t":11,"n":"Unknown"},{"t":3,"n":"Resist"},{"t":11,"n":"Unknown"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unused"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"Unused RNAM","c":[{"t":11,"n":"RNAM - Unknown"}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":3,"n":"LTMP - Interior Lighting"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XLCN - Location"},{"t":6,"n":"Parent","c":[{"t":3,"n":"WNAM - Worldspace"},{"t":6,"n":"PNAM - ","c":[{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"CNAM - Climate"},{"t":3,"n":"NAM2 - Water"},{"t":3,"n":"NAM3 - LOD Water Type"},{"t":5,"n":"NAM4 - LOD Water Height"},{"t":6,"n":"DNAM - Land Data","c":[{"t":5,"n":"Default Land Height"},{"t":5,"n":"Default Water Height"}]},{"t":2,"n":"ICON - Map Image"},{"t":6,"n":"Cloud Model","c":[{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]}]},{"t":6,"n":"MNAM - Map Data","c":[{"t":6,"n":"Usable Dimensions","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":6,"n":"Cell Coordinates","c":[{"t":6,"n":"NW Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":6,"n":"SE Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]}]},{"t":6,"n":"Camera Data","c":[{"t":5,"n":"Min Height"},{"t":5,"n":"Max Height"},{"t":5,"n":"Initial Pitch"}]}]},{"t":6,"n":"ONAM - World Map Offset Data","c":[{"t":5,"n":"World Map Scale"},{"t":5,"n":"Cell X Offset"},{"t":5,"n":"Cell Y Offset"},{"t":5,"n":"Cell Z Offset"}]},{"t":5,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"n":"DATA - Flags"},{"t":6,"n":"Object Bounds","c":[{"t":6,"n":"NAM0 - Min","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":6,"n":"NAM9 - Max","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"}]}]},{"t":3,"n":"ZNAM - Music"},{"t":2,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":2,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"n":"UNAM - HD LOD Normal Texture"},{"t":2,"n":"XWEM - Water Environment Map (unused)"},{"t":11,"n":"OFST - Offset Data"}]},{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]}]},"name":"Bash.Names","hash":"$BB2ECCA2","color":255}
\ No newline at end of file
+{"records":"ALCH,AMMO,APPA,ARMO,AVIF,BOOK,CLAS,CLFM,CONT,DIAL,DOOR,ENCH,EXPL,EYES,FACT,FLOR,FURN,HAZD,HDPT,INGR,KEYM,LCTN,LIGH,MESG,MGEF,MISC,MSTT,NPC_,PERK,PROJ,QUST,RACE,REFR,SCRL,SHOU,SLGM,SNCT,SPEL,TREE,WATR,WEAP,WRLD,ACTI","description":"Names tag from Wrye Bash.\r\n\r\nUsed when the mod changes the names of things.","tree":{"records":[{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"QUAL - Quality"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":7,"n":"Armature","c":[{"t":3,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":2,"n":"ANAM - Abbreviation"},{"t":11,"n":"CNAM - Unknown"},{"t":6,"n":"AVSK - Skill","c":[{"t":5,"n":"Skill Use Mult"},{"t":5,"n":"Skill Offset Mult"},{"t":5,"n":"Skill Improve Mult"},{"t":5,"n":"Skill Improve Offset"}]},{"t":8,"n":"Perk Tree","c":[{"t":6,"n":"Node","c":[{"t":3,"n":"PNAM - Perk"}]}]}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Teaches"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"CLAS - Class","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Teaches"},{"t":3,"n":"Maximum training level"},{"t":7,"n":"Skill Weights","c":[{"t":3,"n":"Weight #0 (One Handed)"},{"t":3,"n":"Weight #1 (Two Handed)"},{"t":3,"n":"Weight #2 (Archery)"},{"t":3,"n":"Weight #3 (Block)"},{"t":3,"n":"Weight #4 (Smithing)"},{"t":3,"n":"Weight #5 (Heavy Armor)"},{"t":3,"n":"Weight #6 (Light Armor)"},{"t":3,"n":"Weight #7 (Pickpocket)"},{"t":3,"n":"Weight #8 (Lockpicking)"},{"t":3,"n":"Weight #9 (Sneak)"},{"t":3,"n":"Weight #10 (Alchemy)"},{"t":3,"n":"Weight #11 (Speech)"},{"t":3,"n":"Weight #12 (Alteration)"},{"t":3,"n":"Weight #13 (Conjuration)"},{"t":3,"n":"Weight #14 (Destruction)"},{"t":3,"n":"Weight #15 (Illusion)"},{"t":3,"n":"Weight #16 (Restoration)"},{"t":3,"n":"Weight #17 (Enchanting)"}]},{"t":5,"n":"Bleedout Default"},{"t":3,"n":"Voice Points"},{"t":7,"n":"Attribute Weights","c":[{"t":3,"n":"Weight #0 (Health)"},{"t":3,"n":"Weight #1 (Magicka)"},{"t":3,"n":"Weight #2 (Stamina)"},{"t":3,"n":"Weight #3 (Unknown)"}]}]}]},{"t":1,"p":1,"n":"CLFM - Color","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"FNAM - Playable"}]},{"t":1,"p":1,"n":"CONT - Container","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"n":"PNAM - Priority"},{"t":3,"n":"BNAM - Branch"},{"t":3,"n":"QNAM - Quest"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Topic Flags"},{"t":3,"n":"Category"},{"t":3,"n":"Subtype"}]},{"t":2,"n":"SNAM - Subtype Name"},{"t":3,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DOOR - Door","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"ANAM - Sound - Close"},{"t":3,"n":"BNAM - Sound - Loop"},{"t":3,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"ENCH - Object Effect","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Enchantment Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Enchantment Amount"},{"t":3,"n":"Target Type"},{"t":3,"n":"Enchant Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Base Enchantment"},{"t":3,"n":"Worn Restrictions"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"EXPL - Explosion","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Light"},{"t":3,"n":"Sound 1"},{"t":3,"n":"Sound 2"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Placed Object"},{"t":3,"n":"Spawn Projectile"},{"t":5,"n":"Force"},{"t":5,"n":"Damage"},{"t":5,"n":"Radius"},{"t":5,"n":"IS Radius"},{"t":5,"n":"Vertical Offset Mult"},{"t":3,"n":"Flags"},{"t":3,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"EYES - Eyes","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"ICON - Texture"},{"t":3,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"FACT - Faction","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":10,"n":"Relations","c":[{"t":6,"n":"XNAM - Relation","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Modifier"},{"t":3,"n":"Group Combat Reaction"}]}]},{"t":6,"n":"DATA - Flags","c":[{"t":3,"n":"Flags"}]},{"t":3,"n":"JAIL - Exterior Jail Marker"},{"t":3,"n":"WAIT - Follower Wait Marker"},{"t":3,"n":"STOL - Stolen Goods Container"},{"t":3,"n":"PLCN - Player Inventory Container"},{"t":3,"n":"CRGR - Shared Crime Faction List"},{"t":3,"n":"JOUT - Jail Outfit"},{"t":6,"n":"CRVA - Crime Values","c":[{"t":3,"n":"Arrest"},{"t":3,"n":"Attack On Sight"},{"t":3,"n":"Murder"},{"t":3,"n":"Assault"},{"t":3,"n":"Trespass"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"n":"Steal Multiplier"},{"t":3,"n":"Escape"},{"t":3,"n":"Werewolf"}]},{"t":10,"n":"Ranks","c":[{"t":6,"n":"Rank","c":[{"t":3,"n":"RNAM - Rank#"}]}]},{"t":3,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"n":"VENC - Merchant Container"},{"t":6,"n":"VENV - Vendor Values","c":[{"t":3,"n":"Start Hour"},{"t":3,"n":"End Hour"},{"t":3,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"n":"Only Buys Stolen Items"},{"t":3,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"n":"PLVD - Location","c":[{"t":3,"n":"Type"},{"t":12,"n":"Location Value"},{"t":3,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"HAZD - Hazard","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Limit"},{"t":5,"n":"Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Image Space Radius"},{"t":5,"n":"Target Interval"},{"t":3,"n":"Flags"},{"t":3,"n":"Spell"},{"t":3,"n":"Light"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Sound"}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"PNAM - Type"},{"t":9,"n":"Extra Parts","c":[{"t":3,"n":"HNAM - Part"}]},{"t":8,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"NAM0 - Part Type"},{"t":2,"n":"NAM1 - Filename"}]}]},{"t":3,"n":"TNAM - Texture Set"},{"t":3,"n":"CNAM - Color"},{"t":3,"n":"RNAM - Valid Races"}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"LCTN - Location","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":8,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":8,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":8,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor #0"}]},{"t":8,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":8,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":8,"n":"Coordinates","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":8,"n":"Coordinates","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":8,"n":"Coordinates","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref #0"}]},{"t":8,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":8,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":3,"n":"NAM0 - Horse Marker Ref"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LIGH - Light","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unknown"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"MESG - Message","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"INAM - Icon (unused)"},{"t":3,"n":"QNAM - Owner Quest"},{"t":3,"n":"DNAM - Flags","c":[{"t":4,"n":"Message Box"}]},{"t":3,"n":"TNAM - Display Time"},{"t":8,"n":"Menu Buttons","c":[{"t":6,"n":"Menu Button","c":[{"t":2,"n":"ITXT - Button Text"}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Magic Effect Data","c":[{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Base Cost"},{"t":12,"n":"Assoc. Item"},{"t":3,"n":"Magic Skill"},{"t":3,"n":"Resist Value"},{"t":3,"n":"Counter Effect count"},{"t":11,"n":"Unused"},{"t":3,"n":"Casting Light"},{"t":5,"n":"Taper Weight"},{"t":3,"n":"Hit Shader"},{"t":3,"n":"Enchant Shader"},{"t":3,"n":"Minimum Skill Level"},{"t":6,"n":"Spellmaking","c":[{"t":3,"n":"Area"},{"t":5,"n":"Casting Time"}]},{"t":5,"n":"Taper Curve"},{"t":5,"n":"Taper Duration"},{"t":5,"n":"Second AV Weight"},{"t":3,"n":"Archtype"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Delivery"},{"t":3,"n":"Second Actor Value"},{"t":3,"n":"Casting Art"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data"},{"t":5,"n":"Skill Usage Multiplier"},{"t":6,"n":"Dual Casting","c":[{"t":3,"n":"Art"},{"t":5,"n":"Scale"}]},{"t":3,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":11,"n":"Unknown"},{"t":3,"n":"Equip Ability"},{"t":3,"n":"Image Space Modifier"},{"t":3,"n":"Perk to Apply"},{"t":3,"n":"Casting Sound Level"},{"t":6,"n":"Script Effect AI","c":[{"t":5,"n":"Score"},{"t":5,"n":"Delay Time"}]}]}]},{"t":9,"n":"Counter Effects","c":[{"t":3,"n":"ESCE - Effect"}]},{"t":8,"n":"SNDD - Sounds","c":[{"t":6,"n":" #0","c":[{"t":3,"n":"Type"},{"t":3,"n":"Sound"}]}]},{"t":2,"n":"DNAM - Magic Item Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":12,"n":"Level"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":10,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":10,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":7,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill #0 (OneHanded)"},{"t":3,"n":"Skill #1 (TwoHanded)"},{"t":3,"n":"Skill #2 (Marksman)"},{"t":3,"n":"Skill #3 (Block)"},{"t":3,"n":"Skill #4 (Smithing)"},{"t":3,"n":"Skill #5 (HeavyArmor)"},{"t":3,"n":"Skill #6 (LightArmor)"},{"t":3,"n":"Skill #7 (Pickpocket)"},{"t":3,"n":"Skill #8 (Lockpicking)"},{"t":3,"n":"Skill #9 (Sneak)"},{"t":3,"n":"Skill #10 (Alchemy)"},{"t":3,"n":"Skill #11 (Speechcraft)"},{"t":3,"n":"Skill #12 (Alteration)"},{"t":3,"n":"Skill #13 (Conjuration)"},{"t":3,"n":"Skill #14 (Destruction)"},{"t":3,"n":"Skill #15 (Illusion)"},{"t":3,"n":"Skill #16 (Restoration)"},{"t":3,"n":"Skill #17 (Enchanting)"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"},{"t":11,"n":"Unused"}]},{"t":9,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"}]}]}]},{"t":1,"p":1,"n":"PERK - Perk","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":6,"n":"Perk VMAD","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]},{"t":6,"n":"Script Fragments Perk","c":[{"t":3,"n":"Unknown"},{"t":2,"n":"fileName"},{"t":9,"n":"Perk Fragments","c":[{"t":6,"n":"Perk Fragment","c":[{"t":3,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Trait"},{"t":3,"n":"Level"},{"t":3,"n":"Num Ranks"},{"t":3,"n":"Playable"},{"t":3,"n":"Hidden"}]},{"t":3,"n":"NNAM - Next Perk"},{"t":10,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":6,"n":"PRKE - Header","c":[{"t":3,"n":"Type"},{"t":3,"n":"Rank"},{"t":3,"n":"Priority"}]},{"t":12,"n":"DATA - Effect Data","c":[{"t":6,"n":"Quest + Stage","c":[{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":11,"n":"Unused"}]}]},{"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Gravity"},{"t":5,"n":"Speed"},{"t":5,"n":"Range"},{"t":3,"n":"Light"},{"t":3,"n":"Muzzle Flash - Light"},{"t":5,"n":"Tracer Chance"},{"t":5,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"n":"Explosion"},{"t":3,"n":"Sound"},{"t":5,"n":"Muzzle Flash - Duration"},{"t":5,"n":"Fade Duration"},{"t":5,"n":"Impact Force"},{"t":3,"n":"Sound - Countdown"},{"t":3,"n":"Sound - Disable"},{"t":3,"n":"Default Weapon Source"},{"t":5,"n":"Cone Spread"},{"t":5,"n":"Collision Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Relaunch Interval"},{"t":3,"n":"Decal Data"},{"t":3,"n":"Collision Layer"}]},{"t":6,"n":"Muzzle Flash Model","c":[{"t":2,"n":"NAM1 - Model Filename"}]},{"t":3,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"QUST - Quest","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":6,"n":"Quest VMAD","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]},{"t":6,"n":"Script Fragments Quest","c":[{"t":3,"n":"Unknown"},{"t":3,"n":"fragmentCount"},{"t":2,"n":"fileName"},{"t":9,"n":"Quest Fragments","c":[{"t":6,"n":"Quest Fragment","c":[{"t":3,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"n":"Quest Stage Index"},{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]},{"t":9,"n":"Aliases","c":[{"t":6,"n":"Alias","c":[{"t":12,"n":"Object Union","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":9,"n":"Alias Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"DNAM - General","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Priority"},{"t":3,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"n":"Type"}]},{"t":2,"n":"ENAM - Event"},{"t":7,"n":"Text Display Globals","c":[{"t":3,"n":"QTGL - Global"}]},{"t":2,"n":"FLTR - Object Window Filter"},{"t":6,"n":"Quest Dialogue Conditions","c":[{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]}]},{"n":"NEXT - Marker"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":12,"n":"Comparison Value"},{"t":3,"n":"Function"},{"t":11,"n":"Unused"},{"t":12,"n":"Parameter #1"},{"t":12,"n":"Parameter #2"},{"t":3,"n":"Run On"},{"t":12,"n":"Reference"},{"t":3,"n":"Parameter #3"}]}]}]},{"t":10,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"INDX - Stage Index","c":[{"t":3,"n":"Stage Index"},{"t":3,"n":"Flags"},{"t":3,"n":"Unknown"}]}]}]},{"t":8,"n":"Objectives","c":[{"t":6,"n":"Objective","c":[{"t":3,"n":"QOBJ - Objective Index"},{"t":2,"n":"NNAM - Display Text"}]}]},{"t":11,"n":"ANAM - Aliases Marker"},{"t":8,"n":"Aliases","c":[{"t":6,"n":"Alias","c":[{"t":3,"n":"ALST - Reference Alias ID"},{"n":"ALED - Alias End"}]}]},{"t":2,"n":"NNAM - Description"},{"t":8,"n":"Targets","c":[{"t":6,"n":"Target","c":[{"t":6,"n":"QSTA - Target","c":[{"t":3,"n":"Target"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]}]}]},{"t":1,"p":1,"n":"RACE - Race","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":9,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":3,"n":"WNAM - Skin"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":10,"n":"Skill Boosts","c":[{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]},{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]}]},{"t":11,"n":"Unknown"},{"t":5,"n":"Male Height"},{"t":5,"n":"Female Height"},{"t":5,"n":"Male Weight"},{"t":5,"n":"Female Weight"},{"t":3,"n":"Flags"},{"t":5,"n":"Starting Health"},{"t":5,"n":"Starting Magicka"},{"t":5,"n":"Starting Stamina"},{"t":5,"n":"Base Carry Weight"},{"t":5,"n":"Base Mass"},{"t":5,"n":"Acceleration rate"},{"t":5,"n":"Deceleration rate"},{"t":3,"n":"Size"},{"t":3,"n":"Head Biped Object"},{"t":3,"n":"Hair Biped Object"},{"t":5,"n":"Injured Health Pct"},{"t":3,"n":"Shield Biped Object"},{"t":5,"n":"Health Regen"},{"t":5,"n":"Magicka Regen"},{"t":5,"n":"Stamina Regen"},{"t":5,"n":"Unarmed Damage"},{"t":5,"n":"Unarmed Reach"},{"t":3,"n":"Body Biped Object"},{"t":5,"n":"Aim Angle Tolerance"},{"t":5,"n":"Flight Radius"},{"t":5,"n":"Angular Acceleration Rate"},{"t":5,"n":"Angular Tolerance"},{"t":3,"n":"Flags 2"},{"t":6,"n":"Mount Data","c":[{"t":5,"n":"Offset X"},{"t":5,"n":"Offset Y"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"}]}]},{"n":"MNAM - Male Marker"},{"t":2,"n":"ANAM - Male Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"FNAM - Female Marker"},{"t":2,"n":"ANAM - Female Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"NAM2 - Marker NAM2 #1"},{"t":9,"n":"Movement Type Names","c":[{"t":2,"n":"MTNM - Name"}]},{"t":7,"n":"VTCK - Voices","c":[{"t":3,"n":"Voice #0 (Male)"},{"t":3,"n":"Voice #1 (Female)"}]},{"t":7,"n":"DNAM - Decapitate Armors","c":[{"t":3,"n":"Decapitate Armor #0 (Male)"},{"t":3,"n":"Decapitate Armor #1 (Female)"}]},{"t":7,"n":"HCLF - Default Hair Colors","c":[{"t":3,"n":"Default Hair Color #0 (Male)"},{"t":3,"n":"Default Hair Color #1 (Female)"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]}]}]},{"t":6,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"}]}]}]},{"t":6,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"}]}]}]}]},{"t":9,"n":"HNAM - Hairs","c":[{"t":3,"n":"Hair"}]},{"t":9,"n":"ENAM - Eyes","c":[{"t":3,"n":"Eye"}]},{"t":3,"n":"GNAM - Body Part Data"},{"n":"NAM2 - Marker NAM2 #2"},{"n":"NAM3 - Marker NAM3 #3"},{"t":6,"n":"Male Behavior Graph","c":[{"n":"MNAM - Male Data Marker"}]},{"t":6,"n":"Female Behavior Graph","c":[{"n":"FNAM - Female Data Marker"}]},{"t":3,"n":"NAM4 - Material Type"},{"t":3,"n":"NAM5 - Impact Data Set"},{"t":3,"n":"NAM7 - Decapitation FX"},{"t":3,"n":"ONAM - Open Loot Sound"},{"t":3,"n":"LNAM - Close Loot Sound"},{"t":7,"n":"Biped Object Names","c":[{"t":2,"n":"NAME - Name"}]},{"t":10,"n":"Movement Types","c":[{"t":6,"n":"Movement Types","c":[{"t":3,"n":"MTYP - Movement Type"}]}]},{"t":3,"n":"VNAM - Equipment Flags"},{"t":9,"n":"Equip Slots","c":[{"t":3,"n":"QNAM - Equip Slot"}]},{"t":3,"n":"UNES - Unarmed Equip Slot"},{"t":7,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]}]},{"t":3,"n":"WKMV - Base Movement Default - Walk"},{"t":3,"n":"RNMV - Base Movement Default - Run"},{"t":3,"n":"SWMV - Base Movement Default - Swim"},{"t":3,"n":"FLMV - Base Movement Default - Fly"},{"t":3,"n":"SNMV - Base Movement Default - Sneak"},{"t":3,"n":"SPMV - Base Movement Default - Sprint"},{"t":6,"n":"Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"t":6,"n":"Male Head Data","c":[{"n":"MNAM - Male Data Marker"}]},{"t":6,"n":"Female Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"n":"FNAM - Female Data Marker"}]}]},{"t":3,"n":"NAM8 - Morph race"},{"t":3,"n":"RNAM - Armor race"}]},{"t":1,"p":1,"n":"REFR - Placed Object","c":[{"t":3,"n":"Cell"},{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags","c":[{"t":4,"n":"Persistent"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":3,"n":"NAME - Base"},{"t":6,"n":"XMBO - Bound Half Extents","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"XPRM - Primitive","c":[{"t":6,"n":"Bounds","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Color","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"n":"Type"}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"n":"Size","c":[{"t":5,"n":"Width"},{"t":5,"n":"Height"}]},{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation (Quaternion?)","c":[{"t":5,"n":"q1"},{"t":5,"n":"q2"},{"t":5,"n":"q3"},{"t":5,"n":"q4"}]}]},{"t":8,"n":"XPOD - Portal Data","c":[{"t":6,"n":"References #0","c":[{"t":3,"n":"Origin"},{"t":3,"n":"Destination"}]}]},{"t":6,"n":"XPTL - Room Portal (unused)","c":[{"t":6,"n":"Size","c":[{"t":5,"n":"Width"},{"t":5,"n":"Height"}]},{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation (Quaternion?)","c":[{"t":5,"n":"q1"},{"t":5,"n":"q2"},{"t":5,"n":"q3"},{"t":5,"n":"q4"}]}]},{"t":6,"n":"Bound Data","c":[{"t":6,"n":"XRMR - Header","c":[{"t":3,"n":"Linked Rooms Count"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"n":"XRDS - Radius"},{"t":10,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":9,"n":"Lit Water","c":[{"t":3,"n":"XLTW - Water"}]},{"t":3,"n":"XEMI - Emittance"},{"t":6,"n":"XLIG - Light Data","c":[{"t":5,"n":"FOV 90+\/-"},{"t":5,"n":"Fade 1.35+\/-"},{"t":11,"n":"Unknown"},{"t":5,"n":"Shadow Depth Bias"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"XALP - Alpha","c":[{"t":3,"n":"Cutoff"},{"t":3,"n":"Base"}]},{"t":6,"n":"XTEL - Teleport Destination","c":[{"t":3,"n":"Door"},{"t":6,"n":"Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]},{"t":3,"n":"Flags"}]},{"t":3,"n":"XTNM - Teleport Message Box"},{"t":3,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"XCVL - Unknown","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":5,"n":"XSCL - Scale"},{"t":3,"n":"XSPC - Spawn Container"},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"}]},{"t":3,"n":"XLIB - Leveled Item Base Object"},{"t":3,"n":"XLCM - Level Modifier"},{"t":3,"n":"XLCN - Persistent Location"},{"t":3,"n":"XTRI - Collision Layer"},{"t":6,"n":"XLOC - Lock Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"n":"Key"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"XNDP - Navigation Door Link","c":[{"t":3,"n":"Navigation Mesh"},{"t":3,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref #0"}]},{"n":"XIS2 - Ignored by Sandbox"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"}]},{"t":3,"n":"XCNT - Item Count"},{"t":5,"n":"XCHG - Charge"},{"t":3,"n":"XLRL - Location Reference"},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":8,"n":"Patrol","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"XPRD - Idle Time"},{"n":"XPPA - Patrol Script Marker"},{"t":3,"n":"INAM - Idle"}]}]},{"t":3,"n":"XACT - Action Flag"},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"n":"ONAM - Open by Default"},{"t":6,"p":1,"n":"Map Marker","c":[{"n":"XMRK - Map Marker Data"},{"t":3,"n":"FNAM - Map Flags"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"TNAM - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"XATR - Attach Ref"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown #0"},{"t":5,"n":"Unknown #1"},{"t":5,"n":"Unknown #2"}]},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"SHOU - Shout","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":2,"n":"DESC - Description"},{"t":8,"n":"Words of Power","c":[{"t":6,"n":"SNAM - ","c":[{"t":3,"n":"Word"},{"t":3,"n":"Spell"},{"t":5,"n":"Recovery Time"}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SNCT - Sound Category","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"PNAM - Parent"},{"t":3,"n":"VNAM - Static Volume Multiplier"},{"t":3,"n":"UNAM - Default Menu Value"}]},{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"TREE - Tree","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Harvest Sound"},{"t":6,"n":"PFPC - Ingredient Production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer"},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"CNAM - Tree Data","c":[{"t":5,"n":"Trunk Flexibility"},{"t":5,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Leaf Amplitude"},{"t":5,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"WATR - Water","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":7,"n":"Unused","c":[{"t":2,"n":"NNAM - Noise Map"}]},{"t":3,"n":"ANAM - Opacity"},{"t":3,"n":"FNAM - Flags"},{"t":11,"n":"MNAM - Unused"},{"t":3,"n":"TNAM - Material"},{"t":3,"n":"SNAM - Open Sound"},{"t":3,"n":"XNAM - Spell"},{"t":3,"n":"INAM - Image Space"},{"t":3,"n":"DATA - Damage Per Second"},{"t":6,"n":"DNAM - Visual Data","c":[{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Specular Properties - Sun Specular Power"},{"t":5,"n":"Water Properties - Reflectivity Amount"},{"t":5,"n":"Water Properties - Fresnel Amount"},{"t":11,"n":"Unknown"},{"t":5,"n":"Fog Properties - Above Water - Fog Distance - Near Plane"},{"t":5,"n":"Fog Properties - Above Water - Fog Distance - Far Plane"},{"t":6,"n":"Shallow Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Deep Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Reflection Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Displacement Simulator - Starting Size"},{"t":5,"n":"Displacement Simulator - Force"},{"t":5,"n":"Displacement Simulator - Velocity"},{"t":5,"n":"Displacement Simulator - Falloff"},{"t":5,"n":"Displacement Simulator - Dampner"},{"t":5,"n":"Unknown"},{"t":5,"n":"Noise Properties - Noise Falloff"},{"t":5,"n":"Noise Properties - Layer One - Wind Direction"},{"t":5,"n":"Noise Properties - Layer Two - Wind Direction"},{"t":5,"n":"Noise Properties - Layer Three - Wind Direction"},{"t":5,"n":"Noise Properties - Layer One - Wind Speed"},{"t":5,"n":"Noise Properties - Layer Two - Wind Speed"},{"t":5,"n":"Noise Properties - Layer Three - Wind Speed"},{"t":5,"n":"Unknown"},{"t":5,"n":"Unknown"},{"t":5,"n":"Fog Properties - Above Water - Fog Amount"},{"t":5,"n":"Unknown"},{"t":5,"n":"Fog Properties - Under Water - Fog Amount"},{"t":5,"n":"Fog Properties - Under Water - Fog Distance - Near Plane"},{"t":5,"n":"Fog Properties - Under Water - Fog Distance - Far Plane"},{"t":5,"n":"Water Properties - Refraction Magnitude"},{"t":5,"n":"Specular Properties - Specular Power"},{"t":5,"n":"Unknown"},{"t":5,"n":"Specular Properties - Specular Radius"},{"t":5,"n":"Specular Properties - Specular Brightness"},{"t":5,"n":"Noise Properties - Layer One - UV Scale"},{"t":5,"n":"Noise Properties - Layer Two - UV Scale"},{"t":5,"n":"Noise Properties - Layer Three - UV Scale"},{"t":5,"n":"Noise Properties - Layer One - Amplitude Scale"},{"t":5,"n":"Noise Properties - Layer Two - Amplitude Scale"},{"t":5,"n":"Noise Properties - Layer Three - Amplitude Scale"},{"t":5,"n":"Water Properties - Reflection Magnitude"},{"t":5,"n":"Specular Properties - Sun Sparkle Magnitude"},{"t":5,"n":"Specular Properties - Sun Specular Magnitude"},{"t":5,"n":"Depth Properties - Reflections"},{"t":5,"n":"Depth Properties - Refraction"},{"t":5,"n":"Depth Properties - Normals"},{"t":5,"n":"Depth Properties - Specular Lighting"},{"t":5,"n":"Specular Properties - Sun Sparkle Power"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"n":"NAM0 - Linear Velocity","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"NAM1 - Angular Velocity","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":2,"n":"NAM2 - Noise Texture"},{"t":2,"n":"NAM3 - Unused"},{"t":2,"n":"NAM4 - Unused"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Unknown"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":11,"n":"Unknown"},{"t":3,"n":"Skill"},{"t":11,"n":"Unknown"},{"t":3,"n":"Resist"},{"t":11,"n":"Unknown"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unused"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"Unused RNAM","c":[{"t":11,"n":"RNAM - Unknown"}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":3,"n":"LTMP - Interior Lighting"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XLCN - Location"},{"t":6,"n":"Parent","c":[{"t":3,"n":"WNAM - Worldspace"},{"t":6,"n":"PNAM - ","c":[{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"CNAM - Climate"},{"t":3,"n":"NAM2 - Water"},{"t":3,"n":"NAM3 - LOD Water Type"},{"t":5,"n":"NAM4 - LOD Water Height"},{"t":6,"n":"DNAM - Land Data","c":[{"t":5,"n":"Default Land Height"},{"t":5,"n":"Default Water Height"}]},{"t":2,"n":"ICON - Map Image"},{"t":6,"n":"Cloud Model","c":[{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]}]},{"t":6,"n":"MNAM - Map Data","c":[{"t":6,"n":"Usable Dimensions","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":6,"n":"Cell Coordinates","c":[{"t":6,"n":"NW Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":6,"n":"SE Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]}]},{"t":6,"n":"Camera Data","c":[{"t":5,"n":"Min Height"},{"t":5,"n":"Max Height"},{"t":5,"n":"Initial Pitch"}]}]},{"t":6,"n":"ONAM - World Map Offset Data","c":[{"t":5,"n":"World Map Scale"},{"t":5,"n":"Cell X Offset"},{"t":5,"n":"Cell Y Offset"},{"t":5,"n":"Cell Z Offset"}]},{"t":5,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"n":"DATA - Flags"},{"t":6,"n":"Object Bounds","c":[{"t":6,"n":"NAM0 - Min","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":6,"n":"NAM9 - Max","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"}]}]},{"t":3,"n":"ZNAM - Music"},{"t":2,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":2,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"n":"UNAM - HD LOD Normal Texture"},{"t":2,"n":"XWEM - Water Environment Map (unused)"},{"t":11,"n":"OFST - Offset Data"}]},{"t":1,"p":1,"n":"ACTI - Activator","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]}]},"name":"Bash.Names","hash":"8886AE4C","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.NpcFaces.json b/frontend/settings/Skyrim/Bash.NpcFaces.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.NpcFacesForceFullImport.json b/frontend/settings/Skyrim/Bash.NpcFacesForceFullImport.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.ObjectBounds.json b/frontend/settings/Skyrim/Bash.ObjectBounds.json
new file mode 100755
index 0000000..94a79f0
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.ObjectBounds.json
@@ -0,0 +1 @@
+{"records":"ACTI,ADDN,ALCH,AMMO,APPA,ARMO,ARTO,ASPC,BOOK,CONT,DOOR,DUAL,ENCH,EXPL,FLOR,FURN,GRAS,HAZD,IDLM,INGR,KEYM,LIGH,LVLI,LVLN,LVSP,MISC,MSTT,NPC_,PROJ,SCRL,SLGM,SOUN,SPEL,STAT,TACT,TREE,TXST,WEAP","description":"Changes the object bounds of things.","tree":{"records":[{"t":1,"p":1,"n":"ACTI - Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]},{"t":1,"p":1,"n":"ADDN - Addon Node","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"DATA - Node Index"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Master Particle System Cap"},{"t":3,"n":"Flags"}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"QUAL - Quality"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"},{"t":11,"n":"MO2T - Texture Files Hashes"},{"t":7,"n":"MO2S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"},{"t":11,"n":"MO4T - Texture Files Hashes"},{"t":7,"n":"MO4S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"},{"t":2,"n":"MIC2 - Small Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"BODT - Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":8,"n":"Armature","c":[{"t":3,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"ARTO - Art Object","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"ASPC - Acoustic Space","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"SNAM - Ambient Sound"},{"t":3,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"n":"BNAM - Environment Type (reverb)"}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"n":"Skill"},{"t":3,"n":"Spell"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"CONT - Container","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"DOOR - Door","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"ANAM - Sound - Close"},{"t":3,"n":"BNAM - Sound - Loop"},{"t":3,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"DUAL - Dual Cast Data","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Effect Shader"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Inherit Scale"}]}]},{"t":1,"p":1,"n":"ENCH - Object Effect","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Enchantment Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Enchantment Amount"},{"t":3,"n":"Target Type"},{"t":3,"n":"Enchant Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Base Enchantment"},{"t":3,"n":"Worn Restrictions"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"EXPL - Explosion","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Light"},{"t":3,"n":"Sound 1"},{"t":3,"n":"Sound 2"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Placed Object"},{"t":3,"n":"Spawn Projectile"},{"t":5,"n":"Force"},{"t":5,"n":"Damage"},{"t":5,"n":"Radius"},{"t":5,"n":"IS Radius"},{"t":5,"n":"Vertical Offset Mult"},{"t":3,"n":"Flags"},{"t":3,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"FLOR - Flora","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"},{"t":6,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Disabled Points"}]},{"t":3,"n":"FNMK - Marker Keyword"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"GRAS - Grass","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Density"},{"t":3,"n":"Min Slope"},{"t":3,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"n":"Units From Water"},{"t":3,"n":"Units From Water Type"},{"t":5,"n":"Position Range"},{"t":5,"n":"Height Range"},{"t":5,"n":"Color Range"},{"t":5,"n":"Wave Period"},{"t":3,"n":"Flags"}]}]},{"t":1,"p":1,"n":"HAZD - Hazard","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Limit"},{"t":5,"n":"Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Image Space Radius"},{"t":5,"n":"Target Interval"},{"t":3,"n":"Flags"},{"t":3,"n":"Spell"},{"t":3,"n":"Light"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Sound"}]}]},{"t":1,"p":1,"n":"IDLM - Idle Marker","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"IDLF - Flags"},{"t":3,"n":"IDLC - Animation Count"},{"t":5,"n":"IDLT - Idle Timer Setting"},{"t":7,"n":"IDLA - Animations","c":[{"t":3,"n":"Animation"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"LIGH - Light","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LVLI - Leveled Item","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"LVLD - Chance None"},{"t":3,"n":"LVLF - Flags"},{"t":3,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"n":"Leveled List Entries","c":[{"t":6,"n":"Leveled List Entry","c":[{"t":6,"n":"LVLO - Base Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"n":"Reference"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]}]},{"t":1,"p":1,"n":"LVLN - Leveled NPC","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"LVLD - Chance None"},{"t":3,"n":"LVLF - Flags"},{"t":3,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"n":"Leveled List Entries","c":[{"t":6,"n":"Leveled List Entry","c":[{"t":6,"n":"LVLO - Base Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"n":"Reference"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"LVSP - Leveled Spell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"n":"LVLD - Chance None"},{"t":3,"n":"LVLF - Flags"},{"t":3,"n":"LLCT - Count"},{"t":10,"n":"Leveled List Entries","c":[{"t":6,"n":"Leveled List Entry","c":[{"t":6,"n":"LVLO - Base Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"n":"Reference"},{"t":3,"n":"Count"}]}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Gravity"},{"t":5,"n":"Speed"},{"t":5,"n":"Range"},{"t":3,"n":"Light"},{"t":3,"n":"Muzzle Flash - Light"},{"t":5,"n":"Tracer Chance"},{"t":5,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"n":"Explosion"},{"t":3,"n":"Sound"},{"t":5,"n":"Muzzle Flash - Duration"},{"t":5,"n":"Fade Duration"},{"t":5,"n":"Impact Force"},{"t":3,"n":"Sound - Countdown"},{"t":3,"n":"Sound - Disable"},{"t":3,"n":"Default Weapon Source"},{"t":5,"n":"Cone Spread"},{"t":5,"n":"Collision Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Relaunch Interval"},{"t":3,"n":"Decal Data"},{"t":3,"n":"Collision Layer"}]},{"t":6,"n":"Muzzle Flash Model","c":[{"t":2,"n":"NAM1 - Model Filename"},{"t":11,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SOUN - Sound Marker","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":11,"n":"FNAM - Unknown"},{"t":11,"n":"SNDD - Unknown"},{"t":3,"n":"SDSC - Sound Descriptor"}]},{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"STAT - Static","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"DNAM - Direction Material","c":[{"t":5,"n":"Max Angle (30-120)"},{"t":3,"n":"Material"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":7,"n":"MNAM - Distant LOD","c":[{"t":6,"n":"LOD","c":[{"t":2,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"TREE - Tree","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Harvest Sound"},{"t":6,"n":"PFPC - Ingredient Production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer"},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"CNAM - Tree Data","c":[{"t":5,"n":"Trunk Flexibility"},{"t":5,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"n":"Leaf Amplitude"},{"t":5,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"TXST - Texture Set","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"n":"Textures (RGB\/A)","c":[{"t":2,"n":"TX00 - Difuse"},{"t":2,"n":"TX01 - Normal\/Gloss"},{"t":2,"n":"TX02 - Environment Mask\/Subsurface Tint"},{"t":2,"n":"TX03 - Glow\/Detail Map"},{"t":2,"n":"TX04 - Height"},{"t":2,"n":"TX05 - Environment"},{"t":2,"n":"TX06 - Multilayer"},{"t":2,"n":"TX07 - Backlight Mask\/Specular"}]},{"t":6,"n":"DODT - Decal Data","c":[{"t":5,"n":"Min Width"},{"t":5,"n":"Max Width"},{"t":5,"n":"Min Height"},{"t":5,"n":"Max Height"},{"t":5,"n":"Depth"},{"t":5,"n":"Shininess"},{"t":6,"n":"Parallax","c":[{"t":5,"n":"Scale"},{"t":3,"n":"Passes"}]},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"DNAM - Flags"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"},{"t":11,"n":"MO3T - Texture Files Hashes"},{"t":7,"n":"MO3S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":3,"n":"Skill"},{"t":3,"n":"Resist"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unknown"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]}]},"name":"Bash.ObjectBounds","hash":"BB958321","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Outfits.Add.json b/frontend/settings/Skyrim/Bash.Outfits.Add.json
new file mode 100755
index 0000000..a4167d9
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Outfits.Add.json
@@ -0,0 +1 @@
+{"records":"OTFT","description":"Adds items to outfits.","tree":{"records":[{"t":1,"p":1,"n":"OTFT - Outfit","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"INAM - Items"}]}]},"name":"Bash.Outfits.Add","hash":"0731D103","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Outfits.Remove.json b/frontend/settings/Skyrim/Bash.Outfits.Remove.json
new file mode 100755
index 0000000..1be5c3e
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Outfits.Remove.json
@@ -0,0 +1 @@
+{"records":"OTFT","description":"Adds items to outfits.","tree":{"records":[{"t":1,"p":1,"n":"OTFT - Outfit","d":1,"c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"INAM - Items"}]}]},"name":"Bash.Outfits.Remove","hash":"2A83645B","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.R.AddSpells.json b/frontend/settings/Skyrim/Bash.R.AddSpells.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.R.ChangeSpells.json b/frontend/settings/Skyrim/Bash.R.ChangeSpells.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.R.Description.json b/frontend/settings/Skyrim/Bash.R.Description.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.R.Head.json b/frontend/settings/Skyrim/Bash.R.Head.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.R.Skills.json b/frontend/settings/Skyrim/Bash.R.Skills.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Relations.Add.json b/frontend/settings/Skyrim/Bash.Relations.Add.json
new file mode 100755
index 0000000..cf26c88
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Relations.Add.json
@@ -0,0 +1 @@
+{"records":"FACT","description":"Adds faction relationships.","tree":{"records":[{"t":1,"p":1,"n":"FACT - Faction","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":8,"p":1,"n":"Relations","c":[{"t":6,"s":1,"p":1,"n":"XNAM - Relation","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Modifier"},{"t":3,"n":"Group Combat Reaction"}]}]},{"t":6,"n":"DATA - Flags","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Hidden From NPC"},{"t":4,"n":"Special Combat"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Track Crime"},{"t":4,"n":"Ignore Crimes: Murder"},{"t":4,"n":"Ignore Crimes: Assault"},{"t":4,"n":"Ignore Crimes: Stealing"},{"t":4,"n":"Ignore Crimes: Trespass"},{"t":4,"n":"Do Not Report Crimes Against Members"},{"t":4,"n":"Crime Gold - Use Defaults"},{"t":4,"n":"Ignore Crimes: Pickpocket"},{"t":4,"n":"Vendor"},{"t":4,"n":"Can Be Owner"},{"t":4,"n":"Ignore Crimes: Werewolf"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]}]},{"t":3,"n":"JAIL - Exterior Jail Marker"},{"t":3,"n":"WAIT - Follower Wait Marker"},{"t":3,"n":"STOL - Stolen Goods Container"},{"t":3,"n":"PLCN - Player Inventory Container"},{"t":3,"n":"CRGR - Shared Crime Faction List"},{"t":3,"n":"JOUT - Jail Outfit"},{"t":6,"n":"CRVA - Crime Values","c":[{"t":3,"n":"Arrest"},{"t":3,"n":"Attack On Sight"},{"t":3,"n":"Murder"},{"t":3,"n":"Assault"},{"t":3,"n":"Trespass"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"n":"Steal Multiplier"},{"t":3,"n":"Escape"},{"t":3,"n":"Werewolf"}]},{"t":10,"n":"Ranks","c":[{"t":6,"n":"Rank","c":[{"t":3,"n":"RNAM - Rank#"},{"t":2,"n":"MNAM - Male Title"},{"t":2,"n":"FNAM - Female Title"},{"t":2,"n":"INAM - Insignia Unused"}]}]},{"t":3,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"n":"VENC - Merchant Container"},{"t":6,"n":"VENV - Vendor Values","c":[{"t":3,"n":"Start Hour"},{"t":3,"n":"End Hour"},{"t":3,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"n":"Only Buys Stolen Items"},{"t":3,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"n":"PLVD - Location","c":[{"t":3,"n":"Type"},{"t":3,"n":"Reference"},{"t":3,"n":"Cell"},{"t":11,"n":"Near Package Start Location"},{"t":11,"n":"Near Editor Location"},{"t":3,"n":"Object ID"},{"t":3,"n":"Object Type"},{"t":3,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]},"name":"Bash.Relations.Add","hash":"E940522E","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Relations.Change.json b/frontend/settings/Skyrim/Bash.Relations.Change.json
new file mode 100755
index 0000000..5f5d8f8
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Relations.Change.json
@@ -0,0 +1 @@
+{"records":"FACT","description":"Changes faction relationships.","tree":{"records":[{"t":1,"p":1,"n":"FACT - Faction","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":8,"p":1,"o":1,"n":"Relations","c":[{"t":6,"p":1,"n":"XNAM - Relation","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Modifier"},{"t":3,"p":1,"n":"Group Combat Reaction"}]}]},{"t":6,"n":"DATA - Flags","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Hidden From NPC"},{"t":4,"n":"Special Combat"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Track Crime"},{"t":4,"n":"Ignore Crimes: Murder"},{"t":4,"n":"Ignore Crimes: Assault"},{"t":4,"n":"Ignore Crimes: Stealing"},{"t":4,"n":"Ignore Crimes: Trespass"},{"t":4,"n":"Do Not Report Crimes Against Members"},{"t":4,"n":"Crime Gold - Use Defaults"},{"t":4,"n":"Ignore Crimes: Pickpocket"},{"t":4,"n":"Vendor"},{"t":4,"n":"Can Be Owner"},{"t":4,"n":"Ignore Crimes: Werewolf"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]}]},{"t":3,"n":"JAIL - Exterior Jail Marker"},{"t":3,"n":"WAIT - Follower Wait Marker"},{"t":3,"n":"STOL - Stolen Goods Container"},{"t":3,"n":"PLCN - Player Inventory Container"},{"t":3,"n":"CRGR - Shared Crime Faction List"},{"t":3,"n":"JOUT - Jail Outfit"},{"t":6,"n":"CRVA - Crime Values","c":[{"t":3,"n":"Arrest"},{"t":3,"n":"Attack On Sight"},{"t":3,"n":"Murder"},{"t":3,"n":"Assault"},{"t":3,"n":"Trespass"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"n":"Steal Multiplier"},{"t":3,"n":"Escape"},{"t":3,"n":"Werewolf"}]},{"t":10,"n":"Ranks","c":[{"t":6,"n":"Rank","c":[{"t":3,"n":"RNAM - Rank#"},{"t":2,"n":"MNAM - Male Title"},{"t":2,"n":"FNAM - Female Title"},{"t":2,"n":"INAM - Insignia Unused"}]}]},{"t":3,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"n":"VENC - Merchant Container"},{"t":6,"n":"VENV - Vendor Values","c":[{"t":3,"n":"Start Hour"},{"t":3,"n":"End Hour"},{"t":3,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"n":"Only Buys Stolen Items"},{"t":3,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"n":"PLVD - Location","c":[{"t":3,"n":"Type"},{"t":3,"n":"Reference"},{"t":3,"n":"Cell"},{"t":11,"n":"Near Package Start Location"},{"t":11,"n":"Near Editor Location"},{"t":3,"n":"Object ID"},{"t":3,"n":"Object Type"},{"t":3,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]},"name":"Bash.Relations.Change","hash":"B1BB42FB","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Relations.Remove.json b/frontend/settings/Skyrim/Bash.Relations.Remove.json
new file mode 100755
index 0000000..5bad449
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Relations.Remove.json
@@ -0,0 +1 @@
+{"records":"FACT","description":"Removes faction relationships.","tree":{"records":[{"t":1,"p":1,"n":"FACT - Faction","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":8,"p":1,"n":"Relations","d":1,"c":[{"t":6,"s":1,"p":1,"n":"XNAM - Relation","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Modifier"},{"t":3,"n":"Group Combat Reaction"}]}]},{"t":6,"n":"DATA - Flags","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Hidden From NPC"},{"t":4,"n":"Special Combat"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Track Crime"},{"t":4,"n":"Ignore Crimes: Murder"},{"t":4,"n":"Ignore Crimes: Assault"},{"t":4,"n":"Ignore Crimes: Stealing"},{"t":4,"n":"Ignore Crimes: Trespass"},{"t":4,"n":"Do Not Report Crimes Against Members"},{"t":4,"n":"Crime Gold - Use Defaults"},{"t":4,"n":"Ignore Crimes: Pickpocket"},{"t":4,"n":"Vendor"},{"t":4,"n":"Can Be Owner"},{"t":4,"n":"Ignore Crimes: Werewolf"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]}]},{"t":3,"n":"JAIL - Exterior Jail Marker"},{"t":3,"n":"WAIT - Follower Wait Marker"},{"t":3,"n":"STOL - Stolen Goods Container"},{"t":3,"n":"PLCN - Player Inventory Container"},{"t":3,"n":"CRGR - Shared Crime Faction List"},{"t":3,"n":"JOUT - Jail Outfit"},{"t":6,"n":"CRVA - Crime Values","c":[{"t":3,"n":"Arrest"},{"t":3,"n":"Attack On Sight"},{"t":3,"n":"Murder"},{"t":3,"n":"Assault"},{"t":3,"n":"Trespass"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"n":"Steal Multiplier"},{"t":3,"n":"Escape"},{"t":3,"n":"Werewolf"}]},{"t":10,"n":"Ranks","c":[{"t":6,"n":"Rank","c":[{"t":3,"n":"RNAM - Rank#"},{"t":2,"n":"MNAM - Male Title"},{"t":2,"n":"FNAM - Female Title"},{"t":2,"n":"INAM - Insignia Unused"}]}]},{"t":3,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"n":"VENC - Merchant Container"},{"t":6,"n":"VENV - Vendor Values","c":[{"t":3,"n":"Start Hour"},{"t":3,"n":"End Hour"},{"t":3,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"n":"Only Buys Stolen Items"},{"t":3,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"n":"PLVD - Location","c":[{"t":3,"n":"Type"},{"t":3,"n":"Reference"},{"t":3,"n":"Cell"},{"t":11,"n":"Near Package Start Location"},{"t":11,"n":"Near Editor Location"},{"t":3,"n":"Object ID"},{"t":3,"n":"Object Type"},{"t":3,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]},"name":"Bash.Relations.Remove","hash":"4E293056","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Relations.json b/frontend/settings/Skyrim/Bash.Relations.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Relev.json b/frontend/settings/Skyrim/Bash.Relev.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Scripts.json b/frontend/settings/Skyrim/Bash.Scripts.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Sound.json b/frontend/settings/Skyrim/Bash.Sound.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.SpellStats.json b/frontend/settings/Skyrim/Bash.SpellStats.json
old mode 100644
new mode 100755
index 9fdc7ea..aac13c6
--- a/frontend/settings/Skyrim/Bash.SpellStats.json
+++ b/frontend/settings/Skyrim/Bash.SpellStats.json
@@ -1 +1 @@
-{"records":"SPEL","description":"SpellStats tag from Wrye Bash.\r\n\r\nUsed when the mod modifies spell stats.","tree":{"records":[{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]}]},"name":"Bash.SpellStats","hash":"$33DCE408","color":255}
\ No newline at end of file
+{"records":"SPEL","description":"SpellStats tag from Wrye Bash.\r\n\r\nUsed when the mod modifies spell stats.","tree":{"records":[{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Manual Cost Calc"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"PC Start Spell"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Area Effect Ignores LOS"},{"t":4,"n":"Ignore Resistance"},{"t":4,"n":"No Absorb\/Reflect"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"No Dual Cast Modification"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"n":"EFID - Effects","c":[{"t":6,"n":"EFID - Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - EFIT","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":10,"n":"CTDA - Conditions","c":[{"t":6,"n":"CTDA - Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},"name":"Bash.SpellStats","hash":"A34FB204","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Stats.json b/frontend/settings/Skyrim/Bash.Stats.json
old mode 100644
new mode 100755
index 7c15f87..f3af033
--- a/frontend/settings/Skyrim/Bash.Stats.json
+++ b/frontend/settings/Skyrim/Bash.Stats.json
@@ -1 +1 @@
-{"records":"AMMO,APPA,ARMO,BOOK,INGR,KEYM,MISC,PROJ,WEAP,ALCH","description":"Stats tag from Wrye Bash.\r\n\r\nUsed when the mod modifies item stats.","tree":{"records":[{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Damage"},{"t":3,"p":1,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"QUAL - Quality"},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":7,"n":"Armature","c":[{"t":3,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating","p":1},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":12,"p":1,"n":"Teaches"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"p":1,"n":"Gravity","lt":"Range","lf":"Speed"},{"t":5,"p":1,"n":"Speed","lt":"Gravity","lf":"Range"},{"t":5,"p":1,"n":"Range","lt":"Speed","lf":"Gravity"},{"t":3,"n":"Light"},{"t":3,"n":"Muzzle Flash - Light"},{"t":5,"n":"Tracer Chance"},{"t":5,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"n":"Explosion"},{"t":3,"n":"Sound"},{"t":5,"n":"Muzzle Flash - Duration"},{"t":5,"n":"Fade Duration"},{"t":5,"n":"Impact Force"},{"t":3,"n":"Sound - Countdown"},{"t":3,"n":"Sound - Disable"},{"t":3,"n":"Default Weapon Source"},{"t":5,"n":"Cone Spread"},{"t":5,"n":"Collision Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Relaunch Interval"},{"t":3,"n":"Decal Data"},{"t":3,"n":"Collision Layer"}]},{"t":6,"n":"Muzzle Flash Model","c":[{"t":2,"n":"NAM1 - Model Filename"}]},{"t":3,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":12,"n":"Data","c":[{"t":9,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":9,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":12,"n":"Value"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"s":1,"p":1,"n":"DATA - Game Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Damage"}]},{"t":6,"p":1,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Speed","lt":"Reach","lf":"Stagger"},{"t":5,"p":1,"n":"Reach","lt":"Resist","lf":"Speed"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Unknown"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":11,"n":"Unknown"},{"t":3,"n":"Skill"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Resist","lt":"Stagger","lf":"Reach"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Stagger","lt":"Speed","lf":"Resist"}]},{"t":6,"s":1,"p":1,"n":"CRDT - Critical Data","c":[{"t":3,"p":1,"n":"Damage"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"% Mult"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags"},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":9,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Drop"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]}]}]}]}]},"name":"Bash.Stats","hash":"9BB78E19","color":255}
\ No newline at end of file
+{"records":"ALCH,APPA,ARMO,BOOK,INGR,KEYM,LIGH,MISC,SLGM,WEAP,AMMO","description":"Stats tag from Wrye Bash.\r\n\r\nUsed when the mod modifies item stats.","tree":{"records":[{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Auto-Calc"},{"t":4,"p":1,"n":"Food Item"},{"t":4,"p":1,"n":"Unknown 3"},{"t":4,"p":1,"n":"Unknown 4"},{"t":4,"p":1,"n":"Unknown 5"},{"t":4,"p":1,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unknown 7"},{"t":4,"p":1,"n":"Unknown 8"},{"t":4,"p":1,"n":"Unknown 9"},{"t":4,"p":1,"n":"Unknown 10"},{"t":4,"p":1,"n":"Unknown 11"},{"t":4,"p":1,"n":"Unknown 12"},{"t":4,"p":1,"n":"Unknown 13"},{"t":4,"p":1,"n":"Unknown 14"},{"t":4,"p":1,"n":"Unknown 15"},{"t":4,"p":1,"n":"Unknown 16"},{"t":4,"p":1,"n":"Medicine"},{"t":4,"p":1,"n":"Poison"}]},{"t":3,"p":1,"n":"Addiction"},{"t":5,"p":1,"n":"Addiction Chance"},{"t":3,"p":1,"n":"Sound - Consume"}]},{"t":8,"n":"EFID - Effects","c":[{"t":6,"n":"EFID - Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - EFIT","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":10,"n":"CTDA - Conditions","c":[{"t":6,"n":"CTDA - Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"QUAL - Quality"},{"t":2,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"MOD2 - Male world model","c":[{"t":2,"n":"MOD2 - Model FileName"},{"t":11,"n":"MO2T - Texture Files Hashes"},{"t":7,"n":"MO2S - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"n":"MOD4 - Female world model","c":[{"t":2,"n":"MOD4 - Model FileName"},{"t":11,"n":"MO4T - Texture Files Hashes"},{"t":7,"n":"MO4S - Alternate Textures"}]},{"t":6,"n":"ICO2 - Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon FileName"},{"t":2,"n":"MIC2 - Small Icon FileName"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags","c":[{"t":4,"n":"30 - Head"},{"t":4,"n":"31 - Hair"},{"t":4,"n":"32 - Body"},{"t":4,"n":"33 - Hands"},{"t":4,"n":"34 - Forearms"},{"t":4,"n":"35 - Amulet"},{"t":4,"n":"36 - Ring"},{"t":4,"n":"37 - Feet"},{"t":4,"n":"38 - Calves"},{"t":4,"n":"39 - Shield"},{"t":4,"n":"40 - Tail"},{"t":4,"n":"41 - LongHair"},{"t":4,"n":"42 - Circlet"},{"t":4,"n":"43 - Ears"},{"t":4,"n":"44 - Unnamed"},{"t":4,"n":"45 - Unnamed"},{"t":4,"n":"46 - Unnamed"},{"t":4,"n":"47 - Unnamed"},{"t":4,"n":"48 - Unnamed"},{"t":4,"n":"49 - Unnamed"},{"t":4,"n":"50 - DecapitateHead"},{"t":4,"n":"51 - Decapitate"},{"t":4,"n":"52 - Unnamed"},{"t":4,"n":"53 - Unnamed"},{"t":4,"n":"54 - Unnamed"},{"t":4,"n":"55 - Unnamed"},{"t":4,"n":"56 - Unnamed"},{"t":4,"n":"57 - Unnamed"},{"t":4,"n":"58 - Unnamed"},{"t":4,"n":"59 - Unnamed"},{"t":4,"n":"60 - Unnamed"},{"t":4,"n":"61 - FX01"}]},{"t":3,"n":"General Flags","c":[{"t":4,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"BODT - Body Template","c":[{"t":3,"n":"First Person Flags","c":[{"t":4,"n":"30 - Head"},{"t":4,"n":"31 - Hair"},{"t":4,"n":"32 - Body"},{"t":4,"n":"33 - Hands"},{"t":4,"n":"34 - Forearms"},{"t":4,"n":"35 - Amulet"},{"t":4,"n":"36 - Ring"},{"t":4,"n":"37 - Feet"},{"t":4,"n":"38 - Calves"},{"t":4,"n":"39 - Shield"},{"t":4,"n":"40 - Tail"},{"t":4,"n":"41 - LongHair"},{"t":4,"n":"42 - Circlet"},{"t":4,"n":"43 - Ears"},{"t":4,"n":"44 - Unnamed"},{"t":4,"n":"45 - Unnamed"},{"t":4,"n":"46 - Unnamed"},{"t":4,"n":"47 - Unnamed"},{"t":4,"n":"48 - Unnamed"},{"t":4,"n":"49 - Unnamed"},{"t":4,"n":"50 - DecapitateHead"},{"t":4,"n":"51 - Decapitate"},{"t":4,"n":"52 - Unnamed"},{"t":4,"n":"53 - Unnamed"},{"t":4,"n":"54 - Unnamed"},{"t":4,"n":"55 - Unnamed"},{"t":4,"n":"56 - Unnamed"},{"t":4,"n":"57 - Unnamed"},{"t":4,"n":"58 - Unnamed"},{"t":4,"n":"59 - Unnamed"},{"t":4,"n":"60 - Unnamed"},{"t":4,"n":"61 - FX01"}]},{"t":3,"n":"General Flags","c":[{"t":4,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"t":11,"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":2,"n":"DESC - Description"},{"t":8,"n":"MODL - Armature","c":[{"t":3,"n":"MODL - Model FileName"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":2,"n":"DESC - Book Text"},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Teaches Skill"},{"t":4,"n":"Can't be Taken"},{"t":4,"n":"Teaches Spell"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"n":"Skill"},{"t":3,"n":"Spell"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"INGR - Ingredient","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags","c":[{"t":4,"n":"No auto-calculation"},{"t":4,"n":"Food item"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"References Persist"}]}]},{"t":8,"n":"EFID - Effects","c":[{"t":6,"n":"EFID - Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - EFIT","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":10,"n":"CTDA - Conditions","c":[{"t":6,"n":"CTDA - Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"LIGH - Light","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Flags","c":[{"t":4,"n":"Dynamic"},{"t":4,"n":"Can be Carried"},{"t":4,"n":"Negative"},{"t":4,"n":"Flicker"},{"t":4,"n":"Unknown"},{"t":4,"n":"Off By Default"},{"t":4,"n":"Flicker Slow"},{"t":4,"n":"Pulse"},{"t":4,"n":"Pulse Slow"},{"t":4,"n":"Spot Light"},{"t":4,"n":"Shadow Spotlight"},{"t":4,"n":"Shadow Hemisphere"},{"t":4,"n":"Shadow Omnidirectional"},{"t":4,"n":"Portal-strict"}]},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"MISC - Misc. Item","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts"}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"MOD3 - Has Scope","c":[{"t":2,"n":"MOD3 - Model FileName"},{"t":11,"n":"MO3T - Texture Files Hashes"},{"t":7,"n":"MO3S - Alternate Textures"}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"s":1,"p":1,"n":"DATA - Game Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Damage"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Reach"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Ignores Normal Weapon Resistance"},{"t":4,"n":"Automatic (unused)"},{"t":4,"n":"Has Scope (unused)"},{"t":4,"n":"Can't Drop"},{"t":4,"n":"Hide Backpack (unused)"},{"t":4,"n":"Embedded Weapon (unused)"},{"t":4,"n":"Don't Use 1st Person IS Anim (unused)"},{"t":4,"n":"Non-playable"}]},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2","c":[{"t":4,"n":"Player Only"},{"t":4,"n":"NPCs Use Ammo"},{"t":4,"n":"No Jam After Reload (unused)"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Minor Crime"},{"t":4,"n":"Range Fixed"},{"t":4,"n":"Not Used in Normal Combat"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Don't Use 3rd Person IS Anim (unused)"},{"t":4,"n":"Burst Shot"},{"t":4,"n":"Rumble - Alternate"},{"t":4,"n":"Long Bursts"},{"t":4,"n":"Non-hostile"},{"t":4,"n":"Bound Weapon"}]},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":3,"n":"Skill"},{"t":3,"n":"Resist"},{"t":5,"p":1,"n":"Stagger"}]},{"t":6,"p":1,"n":"CRDT - Critical Data","c":[{"t":3,"p":1,"n":"Damage"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"% Mult"},{"t":3,"n":"Flags","c":[{"t":4,"n":"On Death"}]},{"t":3,"p":1,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"MODL - Model","c":[{"t":2,"n":"MODL - Model FileName"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures"}]},{"t":6,"n":"ICON - Icon","c":[{"t":2,"n":"ICON - Large Icon FileName"},{"t":2,"n":"MICO - Small Icon FileName"}]},{"t":6,"n":"DEST - Destructible","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"DSTD - Stages","c":[{"t":6,"n":"DSTD - Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Cap Damage"},{"t":4,"n":"Disable"},{"t":4,"n":"Destroy"},{"t":4,"n":"Ignore External Dmg"}]},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"DMDL - Model","c":[{"t":2,"n":"DMDL - Model FileName"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures"}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags","c":[{"t":4,"n":"Ignores Normal Weapon Resistance"},{"t":4,"n":"Non-Playable"},{"t":4,"n":"Non-Bolt"}]},{"t":5,"p":1,"n":"Damage"},{"t":3,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":2,"n":"ONAM - Short Name"}]}]},"name":"Bash.Stats","hash":"BB16C7CA","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Text.json b/frontend/settings/Skyrim/Bash.Text.json
new file mode 100755
index 0000000..3577f23
--- /dev/null
+++ b/frontend/settings/Skyrim/Bash.Text.json
@@ -0,0 +1 @@
+{"records":"ALCH,AMMO,APPA,ARMO,AVIF,BOOK,CLAS,LSCR,MESG,MGEF,SCRL,SHOU,SPEL,WEAP","description":"Modifies long-form text (e.g. the text in a book, or descriptions of armor, spells, weapons, etc.) of things.","tree":{"records":[{"t":1,"n":"AACT - Action","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"n":"ACTI - Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"PNAM - Marker Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"SNAM - Sound - Looping"},{"t":3,"n":"VNAM - Sound - Activation"},{"t":3,"n":"WNAM - Water Type"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"}]},{"t":1,"n":"ADDN - Addon Node","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"DATA - Node Index"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Master Particle System Cap"},{"t":3,"n":"Flags"}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"ETYP - Equipment Type"},{"t":5,"n":"DATA - Weight"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Value"},{"t":3,"n":"Flags"},{"t":3,"n":"Addiction"},{"t":5,"n":"Addiction Chance"},{"t":3,"n":"Sound - Consume"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Flags"},{"t":5,"n":"Damage"},{"t":3,"n":"Value"}]},{"t":2,"n":"ONAM - Short Name"}]},{"t":1,"n":"ANIO - Animated Object","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":2,"n":"BNAM - Unload Event"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"QUAL - Quality"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"n":"ARMA - Armor Addon","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"BODT - Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":3,"n":"RNAM - Race"},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Male Priority"},{"t":3,"n":"Female Priority"},{"t":3,"n":"Weight slider - Male"},{"t":3,"n":"Weight slider - Female"},{"t":11,"n":"Unknown"},{"t":3,"n":"Detection Sound Value"},{"t":5,"n":"Weapon Adjust"}]},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"},{"t":11,"n":"MO2T - Texture Files Hashes"},{"t":7,"n":"MO2S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD3 - Model Filename"},{"t":11,"n":"MO3T - Texture Files Hashes"},{"t":7,"n":"MO3S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Male 1st Person","c":[{"t":2,"n":"MOD4 - Model Filename"},{"t":11,"n":"MO4T - Texture Files Hashes"},{"t":7,"n":"MO4S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Female 1st Person","c":[{"t":2,"n":"MOD5 - Model Filename"},{"t":11,"n":"MO5T - Texture Files Hashes"},{"t":7,"n":"MO5S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"NAM0 - Male Skin Texture"},{"t":3,"n":"NAM1 - Female Skin texture"},{"t":3,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"n":"NAM3 - Female Skin Texture Swap List"},{"t":8,"n":"Additional Races","c":[{"t":3,"n":"MODL - Race"}]},{"t":3,"n":"SNDD - Footstep Sound"},{"t":3,"n":"ONAM - Art Object"}]},{"t":1,"p":1,"n":"ARMO - Armor","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Male world model","c":[{"t":2,"n":"MOD2 - Model Filename"},{"t":11,"n":"MO2T - Texture Files Hashes"},{"t":7,"n":"MO2S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Female world model","c":[{"t":2,"n":"MOD4 - Model Filename"},{"t":11,"n":"MO4T - Texture Files Hashes"},{"t":7,"n":"MO4S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon 2 (female)","c":[{"t":2,"n":"ICO2 - Large Icon filename"},{"t":2,"n":"MIC2 - Small Icon filename"}]},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"BODT - Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":2,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"n":"Armature","c":[{"t":3,"n":"MODL - Model Filename"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"DNAM - Armor Rating"},{"t":3,"n":"TNAM - Template Armor"}]},{"t":1,"n":"ARTO - Art Object","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"DNAM - Art Type"}]},{"t":1,"n":"ASPC - Acoustic Space","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":3,"n":"SNAM - Ambient Sound"},{"t":3,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"n":"BNAM - Environment Type (reverb)"}]},{"t":1,"n":"ASTP - Association Type","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"MPRT - Male Parent Title"},{"t":2,"n":"FPRT - Female Parent Title"},{"t":2,"n":"MCHT - Male Child Title"},{"t":2,"n":"FCHT - Female Child Title"},{"t":3,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"n":"ANAM - Abbreviation"},{"t":11,"n":"CNAM - Unknown"},{"t":6,"n":"AVSK - Skill","c":[{"t":5,"n":"Skill Use Mult"},{"t":5,"n":"Skill Offset Mult"},{"t":5,"n":"Skill Improve Mult"},{"t":5,"n":"Skill Improve Offset"}]},{"t":8,"n":"Perk Tree","c":[{"t":6,"n":"Node","c":[{"t":3,"n":"PNAM - Perk"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"XNAM - Perk-Grid X"},{"t":3,"n":"YNAM - Perk-Grid Y"},{"t":5,"n":"HNAM - Horizontal Position"},{"t":5,"n":"VNAM - Vertical Position"},{"t":3,"n":"SNAM - Associated Skill"},{"t":8,"n":"Connections","c":[{"t":3,"n":"CNAM - Line to Index"}]},{"t":3,"n":"INAM - Index"}]}]}]},{"t":1,"p":1,"n":"BOOK - Book","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":2,"p":1,"n":"DESC - Book Text"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"n":"Skill"},{"t":3,"n":"Spell"},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"INAM - Inventory Art"},{"t":2,"p":1,"n":"CNAM - Description"}]},{"t":1,"n":"BPTD - Body Part Data","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":10,"n":"Body Parts","c":[{"t":6,"n":"Body Part","c":[{"t":2,"n":"BPTN - Part Name"},{"t":2,"n":"PNAM - Pose Matching"},{"t":2,"n":"BPNN - Part Node"},{"t":2,"n":"BPNT - VATS Target"},{"t":2,"n":"BPNI - IK Data - Start Node"},{"t":6,"n":"BPND - ","c":[{"t":5,"n":"Damage Mult"},{"t":3,"n":"Flags"},{"t":3,"n":"Part Type"},{"t":3,"n":"Health Percent"},{"t":3,"n":"Actor Value"},{"t":3,"n":"To Hit Chance"},{"t":3,"n":"Explodable - Explosion Chance %"},{"t":3,"n":"Explodable - Debris Count"},{"t":3,"n":"Explodable - Debris"},{"t":3,"n":"Explodable - Explosion"},{"t":5,"n":"Tracking Max Angle"},{"t":5,"n":"Explodable - Debris Scale"},{"t":3,"n":"Severable - Debris Count"},{"t":3,"n":"Severable - Debris"},{"t":3,"n":"Severable - Explosion"},{"t":5,"n":"Severable - Debris Scale"},{"t":6,"n":"Gore Effects Positioning","c":[{"t":6,"n":"Translate","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]},{"t":3,"n":"Severable - Impact DataSet"},{"t":3,"n":"Explodable - Impact DataSet"},{"t":3,"n":"Severable - Decal Count"},{"t":3,"n":"Explodable - Decal Count"},{"t":11,"n":"Unknown"},{"t":5,"n":"Limb Replacement Scale"}]},{"t":2,"n":"NAM1 - Limb Replacement Model"},{"t":2,"n":"NAM4 - Gore Effects - Target Bone"},{"t":11,"n":"NAM5 - Texture Files Hashes"}]}]}]},{"t":1,"n":"CAMS - Camera Shot","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Action"},{"t":3,"n":"Location"},{"t":3,"n":"Target"},{"t":3,"n":"Flags"},{"t":6,"n":"Time Multipliers","c":[{"t":5,"n":"Player"},{"t":5,"n":"Target"},{"t":5,"n":"Global"}]},{"t":5,"n":"Max Time"},{"t":5,"n":"Min Time"},{"t":5,"n":"Target % Between Actors"},{"t":5,"n":"Near Target Distance"}]},{"t":3,"n":"MNAM - Image Space Modifier"}]},{"t":1,"n":"CELL - Cell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"DATA - Flags"},{"t":6,"n":"XCLC - Grid","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Force Hide Land"}]},{"t":6,"n":"XCLL - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Distance"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Max"},{"t":5,"n":"Light Fade Begin"},{"t":5,"n":"Light Fade End"},{"t":3,"n":"Inherits"}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"n":"XCLW - Water Height"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":7,"n":"XCLR - Regions","c":[{"t":3,"n":"Region"}]},{"t":3,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"}]},{"t":3,"n":"XCWT - Water"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XILL - Lock List"},{"t":2,"n":"XWEM - Water Environment Map"},{"t":3,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"n":"XCAS - Acoustic Space"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XCMO - Music Type"},{"t":3,"n":"XCIM - Image Space"}]},{"t":1,"p":1,"n":"CLAS - Class","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Teaches"},{"t":3,"n":"Maximum training level"},{"t":7,"n":"Skill Weights","c":[{"t":3,"n":"Weight"}]},{"t":5,"n":"Bleedout Default"},{"t":3,"n":"Voice Points"},{"t":7,"n":"Attribute Weights","c":[{"t":3,"n":"Weight"}]}]}]},{"t":1,"n":"CLDC","c":[{"t":2,"n":"EDID - Editor ID"}]},{"t":1,"n":"CLFM - Color","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"FNAM - Playable"}]},{"t":1,"n":"CLMT - Climate","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"WLST - Weather Types","c":[{"t":6,"n":"Weather Type","c":[{"t":3,"n":"Weather"},{"t":3,"n":"Chance"},{"t":3,"n":"Global"}]}]},{"t":2,"n":"FNAM - Sun Texture"},{"t":2,"n":"GNAM - Sun Glare Texture"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"TNAM - Timing","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Begin"},{"t":3,"n":"End"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Begin"},{"t":3,"n":"End"}]},{"t":3,"n":"Volatility"},{"t":3,"n":"Moons \/ Phase Length"}]}]},{"t":1,"n":"COBJ - Constructible Object","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"CNAM - Created Object"},{"t":3,"n":"BNAM - Workbench Keyword"},{"t":3,"n":"NAM1 - Created Object Count"}]},{"t":1,"n":"COLL - Collision Layer","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"BNAM - Index"},{"t":6,"n":"FNAM - Debug Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"n":"GNAM - Flags"},{"t":2,"n":"MNAM - Name"},{"t":3,"n":"INTV - Interactables Count"},{"t":7,"n":"CNAM - Collides With","c":[{"t":3,"n":"Forms"}]}]},{"t":1,"n":"CONT - Container","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"QNAM - Sound - Close"}]},{"t":1,"n":"CPTH - Camera Path","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"n":"ANAM - Related Camera Paths","c":[{"t":3,"n":"Related Camera Path"}]},{"t":3,"n":"DATA - Camera Zoom"},{"t":8,"n":"Camera Shots","c":[{"t":3,"n":"SNAM - Camera Shot"}]}]},{"t":1,"n":"CSTY - Combat Style","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"CSGD - General","c":[{"t":5,"n":"Offensive Mult"},{"t":5,"n":"Defensive Mult"},{"t":5,"n":"Group Offensive Mult"},{"t":5,"n":"Equipment Score Mult - Melee"},{"t":5,"n":"Equipment Score Mult - Magic"},{"t":5,"n":"Equipment Score Mult - Ranged"},{"t":5,"n":"Equipment Score Mult - Shout"},{"t":5,"n":"Equipment Score Mult - Unarmed"},{"t":5,"n":"Equipment Score Mult - Staff"},{"t":5,"n":"Avoid Threat Chance"}]},{"t":11,"n":"CSMD - Unknown"},{"t":6,"n":"CSME - Melee","c":[{"t":5,"n":"Attack Staggered Mult"},{"t":5,"n":"Power Attack Staggered Mult"},{"t":5,"n":"Power Attack Blocking Mult"},{"t":5,"n":"Bash Mult"},{"t":5,"n":"Bash Recoil Mult"},{"t":5,"n":"Bash Attack Mult"},{"t":5,"n":"Bash Power Attack Mult"},{"t":5,"n":"Special Attack Mult"}]},{"t":6,"n":"CSCR - Close Range","c":[{"t":5,"n":"Circle Mult"},{"t":5,"n":"Fallback Mult"},{"t":5,"n":"Flank Distance"},{"t":5,"n":"Stalk Time"}]},{"t":6,"n":"CSLR - Long Range","c":[{"t":5,"n":"Strafe Mult"}]},{"t":6,"n":"CSFL - Flight","c":[{"t":5,"n":"Hover Chance"},{"t":5,"n":"Dive Bomb Chance"},{"t":5,"n":"Ground Attack Chance"},{"t":5,"n":"Hover Time"},{"t":5,"n":"Ground Attack Time"},{"t":5,"n":"Perch Attack Chance"},{"t":5,"n":"Perch Attack Time"},{"t":5,"n":"Flying Attack Chance"}]},{"t":3,"n":"DATA - Flags"}]},{"t":1,"n":"DEBR - Debris","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Models","c":[{"t":6,"n":"Model","c":[{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Percentage"},{"t":2,"n":"Model Filename"},{"t":3,"n":"Flags"}]},{"t":11,"n":"MODT - Texture Files Hashes"}]}]}]},{"t":1,"n":"DIAL - Dialog Topic","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":5,"n":"PNAM - Priority"},{"t":3,"n":"BNAM - Branch"},{"t":3,"n":"QNAM - Quest"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Topic Flags"},{"t":3,"n":"Category"},{"t":3,"n":"Subtype"}]},{"t":2,"n":"SNAM - Subtype Name"},{"t":3,"n":"TIFC - Info Count"}]},{"t":1,"n":"DLBR - Dialog Branch","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"QNAM - Quest"},{"t":3,"n":"TNAM - Unknown"},{"t":3,"n":"DNAM - Flags"},{"t":3,"n":"SNAM - Starting Topic"}]},{"t":1,"n":"DLVW - Dialog View","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"QNAM - Quest"},{"t":8,"n":"Branches","c":[{"t":3,"n":"BNAM - Branch"}]},{"t":8,"n":"Unknown TNAM","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"TNAM - Unknown"}]}]},{"t":11,"n":"ENAM - Unknown"},{"t":11,"n":"DNAM - Unknown"}]},{"t":1,"n":"DOBJ - Default Object Manager","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"DNAM - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Use"},{"t":3,"n":"Object ID"}]}]}]},{"t":1,"n":"DOOR - Door","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"SNAM - Sound - Open"},{"t":3,"n":"ANAM - Sound - Close"},{"t":3,"n":"BNAM - Sound - Loop"},{"t":3,"n":"FNAM - Flags"}]},{"t":1,"n":"DUAL - Dual Cast Data","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Effect Shader"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Inherit Scale"}]}]},{"t":1,"n":"ECZN - Encounter Zone","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Owner"},{"t":3,"n":"Location"},{"t":3,"n":"Rank"},{"t":3,"n":"Min Level"},{"t":3,"n":"Flags"},{"t":3,"n":"Max Level"}]}]},{"t":1,"n":"EFSH - Effect Shader","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"ICON - Fill Texture"},{"t":2,"n":"ICO2 - Particle Shader Texture"},{"t":2,"n":"NAM7 - Holes Texture"},{"t":2,"n":"NAM8 - Membrane Palette Texture"},{"t":2,"n":"NAM9 - Particle Palette Texture"},{"t":6,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"n":"Membrane Shader - Blend Operation"},{"t":3,"n":"Membrane Shader - Z Test Function"},{"t":6,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"n":"Edge Effect - Fall Off"},{"t":6,"n":"Edge Effect - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"n":"Edge Effect - Full Alpha Time"},{"t":5,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"n":"Particle Shader - Source Blend Mode"},{"t":3,"n":"Particle Shader - Blend Operation"},{"t":3,"n":"Particle Shader - Z Test Function"},{"t":3,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"n":"Particle Shader - Particle Lifetime"},{"t":5,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"n":"Particle Shader - Acceleration #1"},{"t":5,"n":"Particle Shader - Acceleration #2"},{"t":5,"n":"Particle Shader - Acceleration #3"},{"t":5,"n":"Particle Shader - Scale Key 1"},{"t":5,"n":"Particle Shader - Scale Key 2"},{"t":5,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"n":"Color Key 1 - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Color Key 2 - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Color Key 3 - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Color Key 1 - Color Alpha"},{"t":5,"n":"Color Key 2 - Color Alpha"},{"t":5,"n":"Color Key 3 - Color Alpha"},{"t":5,"n":"Color Key 1 - Color Key Time"},{"t":5,"n":"Color Key 2 - Color Key Time"},{"t":5,"n":"Color Key 3 - Color Key Time"},{"t":5,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"n":"Addon Models"},{"t":5,"n":"Holes - Start Time"},{"t":5,"n":"Holes - End Time"},{"t":5,"n":"Holes - Start Val"},{"t":5,"n":"Holes - End Val"},{"t":5,"n":"Edge Width (alpha units)"},{"t":6,"n":"Edge Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Explosion Wind Speed"},{"t":3,"n":"Texture Count U"},{"t":3,"n":"Texture Count V"},{"t":5,"n":"Addon Models - Fade In Time"},{"t":5,"n":"Addon Models - Fade Out Time"},{"t":5,"n":"Addon Models - Scale Start"},{"t":5,"n":"Addon Models - Scale End"},{"t":5,"n":"Addon Models - Scale In Time"},{"t":5,"n":"Addon Models - Scale Out Time"},{"t":3,"n":"Ambient Sound"},{"t":6,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"n":"Color Key 1 - Scale"},{"t":5,"n":"Color Key 2 - Scale"},{"t":5,"n":"Color Key 3 - Scale"},{"t":5,"n":"Color Key 1 - Time"},{"t":5,"n":"Color Key 2 - Time"},{"t":5,"n":"Color Key 3 - Time"}]},{"t":5,"n":"Color Scale"},{"t":5,"n":"Birth Position Offset"},{"t":5,"n":"Birth Position Offset Range +\/-"},{"t":6,"n":"Particle Shader Animated","c":[{"t":3,"n":"Start Frame"},{"t":3,"n":"Start Frame Variation"},{"t":3,"n":"End Frame"},{"t":3,"n":"Loop Start Frame"},{"t":3,"n":"Loop Start Variation"},{"t":3,"n":"Frame Count"},{"t":3,"n":"Frame Count Variation"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"n":"Scene Graph Emit Depth Limit (unused)"}]}]},{"t":1,"n":"ENCH - Object Effect","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Enchantment Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Enchantment Amount"},{"t":3,"n":"Target Type"},{"t":3,"n":"Enchant Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Base Enchantment"},{"t":3,"n":"Worn Restrictions"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"n":"EQUP - Equip Type","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"PNAM - Slot Parents","c":[{"t":3,"n":"Can Be Equipped"}]},{"t":3,"n":"DATA - Use All Parents"}]},{"t":1,"n":"EXPL - Explosion","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Light"},{"t":3,"n":"Sound 1"},{"t":3,"n":"Sound 2"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Placed Object"},{"t":3,"n":"Spawn Projectile"},{"t":5,"n":"Force"},{"t":5,"n":"Damage"},{"t":5,"n":"Radius"},{"t":5,"n":"IS Radius"},{"t":5,"n":"Vertical Offset Mult"},{"t":3,"n":"Flags"},{"t":3,"n":"Sound Level"}]}]},{"t":1,"n":"EYES - Eyes","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"ICON - Texture"},{"t":3,"n":"DATA - Flags"}]},{"t":1,"n":"FACT - Faction","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":8,"n":"Relations","c":[{"t":6,"n":"XNAM - Relation","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Modifier"},{"t":3,"n":"Group Combat Reaction"}]}]},{"t":6,"n":"DATA - Flags","c":[{"t":3,"n":"Flags"}]},{"t":3,"n":"JAIL - Exterior Jail Marker"},{"t":3,"n":"WAIT - Follower Wait Marker"},{"t":3,"n":"STOL - Stolen Goods Container"},{"t":3,"n":"PLCN - Player Inventory Container"},{"t":3,"n":"CRGR - Shared Crime Faction List"},{"t":3,"n":"JOUT - Jail Outfit"},{"t":6,"n":"CRVA - Crime Values","c":[{"t":3,"n":"Arrest"},{"t":3,"n":"Attack On Sight"},{"t":3,"n":"Murder"},{"t":3,"n":"Assault"},{"t":3,"n":"Trespass"},{"t":3,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"n":"Steal Multiplier"},{"t":3,"n":"Escape"},{"t":3,"n":"Werewolf"}]},{"t":10,"n":"Ranks","c":[{"t":6,"n":"Rank","c":[{"t":3,"n":"RNAM - Rank#"},{"t":2,"n":"MNAM - Male Title"},{"t":2,"n":"FNAM - Female Title"},{"t":2,"n":"INAM - Insignia Unused"}]}]},{"t":3,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"n":"VENC - Merchant Container"},{"t":6,"n":"VENV - Vendor Values","c":[{"t":3,"n":"Start Hour"},{"t":3,"n":"End Hour"},{"t":3,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"n":"Only Buys Stolen Items"},{"t":3,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"n":"PLVD - Location","c":[{"t":3,"n":"Type"},{"t":3,"n":"Reference"},{"t":3,"n":"Cell"},{"t":11,"n":"Near Package Start Location"},{"t":11,"n":"Near Editor Location"},{"t":3,"n":"Object ID"},{"t":3,"n":"Object Type"},{"t":3,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"n":"FLOR - Flora","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Sound"},{"t":6,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer "},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]}]},{"t":1,"n":"FLST - FormID List","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"FormIDs","c":[{"t":3,"n":"LNAM - FormID"}]}]},{"t":1,"n":"FSTP - Footstep","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"DATA - Impact Data Set"},{"t":2,"n":"ANAM - Tag"}]},{"t":1,"n":"FSTS - Footstep Set","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"XCNT - Count","c":[{"t":3,"n":"Walk Forward Sets"},{"t":3,"n":"Run Forward Sets"},{"t":3,"n":"Walk Forward Alternate Sets"},{"t":3,"n":"Run Forward Alternate Sets"},{"t":3,"n":"Walk Forward Alternate 2 Sets"}]},{"t":7,"n":"DATA - Footstep Sets","c":[{"t":3,"n":"Footstep"}]}]},{"t":1,"n":"FURN - Furniture","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"KNAM - Interaction Keyword"},{"t":3,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"n":"WBDT - Workbench Data","c":[{"t":3,"n":"Bench Type"},{"t":3,"n":"Uses Skill"}]},{"t":3,"n":"NAM1 - Associated Spell"},{"t":8,"n":"Markers","c":[{"t":6,"n":"Marker","c":[{"t":3,"n":"ENAM - Marker Index"},{"t":6,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Disabled Points"}]},{"t":3,"n":"FNMK - Marker Keyword"}]}]},{"t":8,"n":"Marker Entry Points","c":[{"t":6,"n":"FNPR - Marker","c":[{"t":3,"n":"Type"},{"t":3,"n":"Entry Points"}]}]},{"t":2,"n":"XMRK - Model Filename"}]},{"t":1,"n":"GLOB - Global","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"FNAM - Type"},{"t":5,"n":"FLTV - Value"}]},{"t":1,"n":"GMST - Game Setting","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"Name"},{"t":3,"n":"Int"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"}]},{"t":1,"n":"GRAS - Grass","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Density"},{"t":3,"n":"Min Slope"},{"t":3,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"n":"Units From Water"},{"t":3,"n":"Units From Water Type"},{"t":5,"n":"Position Range"},{"t":5,"n":"Height Range"},{"t":5,"n":"Color Range"},{"t":5,"n":"Wave Period"},{"t":3,"n":"Flags"}]}]},{"t":1,"n":"HAIR","c":[{"t":2,"n":"EDID - Editor ID"}]},{"t":1,"n":"HAZD - Hazard","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"MNAM - Image Space Modifier"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Limit"},{"t":5,"n":"Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Image Space Radius"},{"t":5,"n":"Target Interval"},{"t":3,"n":"Flags"},{"t":3,"n":"Spell"},{"t":3,"n":"Light"},{"t":3,"n":"Impact Data Set"},{"t":3,"n":"Sound"}]}]},{"t":1,"n":"HDPT - Head Part","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"PNAM - Type"},{"t":8,"n":"Extra Parts","c":[{"t":3,"n":"HNAM - Part"}]},{"t":8,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"NAM0 - Part Type"},{"t":2,"n":"NAM1 - Filename"}]}]},{"t":3,"n":"TNAM - Texture Set"},{"t":3,"n":"CNAM - Color"},{"t":3,"n":"RNAM - Valid Races"}]},{"t":1,"n":"IDLE - Idle Animation","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"DNAM - Filename"},{"t":2,"n":"ENAM - Animation Event"},{"t":7,"n":"ANAM - Related Idle Animations","c":[{"t":3,"n":"Related Idle Animation"}]},{"t":6,"n":"DATA - Data (unused)","c":[{"t":6,"n":"Looping seconds (both 255 forever)","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":3,"n":"Flags"},{"t":3,"n":"Animation Group Section"},{"t":3,"n":"Replay Delay"}]}]},{"t":1,"n":"IDLM - Idle Marker","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":3,"n":"IDLF - Flags"},{"t":3,"n":"IDLC - Animation Count"},{"t":5,"n":"IDLT - Idle Timer Setting"},{"t":7,"n":"IDLA - Animations","c":[{"t":3,"n":"Animation"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":1,"n":"IMAD - Image Space Adapter","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"DNAM - Data Count","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Duration"},{"t":6,"n":"HDR","c":[{"t":3,"n":"Eye Adapt Speed Mult"},{"t":3,"n":"Eye Adapt Speed Add"},{"t":3,"n":"Bloom Blur Radius Mult"},{"t":3,"n":"Bloom Blur Radius Add"},{"t":3,"n":"Bloom Threshold Mult"},{"t":3,"n":"Bloom Threshold Add"},{"t":3,"n":"Bloom Scale Mult"},{"t":3,"n":"Bloom Scale Add"},{"t":3,"n":"Target Lum Min Mult"},{"t":3,"n":"Target Lum Min Add"},{"t":3,"n":"Target Lum Max Mult"},{"t":3,"n":"Target Lum Max Add"},{"t":3,"n":"Sunlight Scale Mult"},{"t":3,"n":"Sunlight Scale Add"},{"t":3,"n":"Sky Scale Mult"},{"t":3,"n":"Sky Scale Add"}]},{"t":3,"n":"Unknown08 Mult"},{"t":3,"n":"Unknown48 Add"},{"t":3,"n":"Unknown09 Mult"},{"t":3,"n":"Unknown49 Add"},{"t":3,"n":"Unknown0A Mult"},{"t":3,"n":"Unknown4A Add"},{"t":3,"n":"Unknown0B Mult"},{"t":3,"n":"Unknown4B Add"},{"t":3,"n":"Unknown0C Mult"},{"t":3,"n":"Unknown4C Add"},{"t":3,"n":"Unknown0D Mult"},{"t":3,"n":"Unknown4D Add"},{"t":3,"n":"Unknown0E Mult"},{"t":3,"n":"Unknown4E Add"},{"t":3,"n":"Unknown0F Mult"},{"t":3,"n":"Unknown4F Add"},{"t":3,"n":"Unknown10 Mult"},{"t":3,"n":"Unknown50 Add"},{"t":6,"n":"Cinematic","c":[{"t":3,"n":"Saturation Mult"},{"t":3,"n":"Saturation Add"},{"t":3,"n":"Brightness Mult"},{"t":3,"n":"Brightness Add"},{"t":3,"n":"Contrast Mult"},{"t":3,"n":"Contrast Add"}]},{"t":3,"n":"Unknown14 Mult"},{"t":3,"n":"Unknown54 Add"},{"t":3,"n":"Tint Color"},{"t":3,"n":"Blur Radius"},{"t":3,"n":"Double Vision Strength"},{"t":3,"n":"Radial Blur Strength"},{"t":3,"n":"Radial Blur Ramp Up"},{"t":3,"n":"Radial Blur Start"},{"t":3,"n":"Radial Blur Flags"},{"t":5,"n":"Radial Blur Center X"},{"t":5,"n":"Radial Blur Center Y"},{"t":3,"n":"DoF Strength"},{"t":3,"n":"DoF Distance"},{"t":3,"n":"DoF Range"},{"t":3,"n":"DoF Flags"},{"t":3,"n":"Radial Blur Ramp Down"},{"t":3,"n":"Radial Blur Down Start"},{"t":3,"n":"Fade Color"},{"t":3,"n":"Motion Blur Strength"}]},{"t":7,"n":"BNAM - Blur Radius","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"VNAM - Double Vision Strength","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"TNAM - Tint Color","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"},{"t":5,"n":"Alpha"}]}]},{"t":7,"n":"NAM3 - Fade Color","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"},{"t":5,"n":"Alpha"}]}]},{"t":7,"n":"RNAM - Radial Blur Strength","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"SNAM - Radial Blur Ramp Up","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"UNAM - Radial Blur Start","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"NAM1 - Radial Blur Ramp Down","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"NAM2 - Radial Blur Down Start","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"WNAM - DoF Strength","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"XNAM - DoF Distance","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"YNAM - DoF Range","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"NAM4 - Motion Blur Strength","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":6,"n":"HDR","c":[{"t":7,"n":"aIAD - Eye Adapt Speed Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"@IAD - Eye Adapt Speed Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"bIAD - Bloom Blur Radius Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"AIAD - Bloom Blur Radius Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"cIAD - Bloom Threshold Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"BIAD - Bloom Threshold Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"dIAD - Bloom Scale Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"CIAD - Bloom Scale Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"eIAD - Target Lum Min Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"DIAD - Target Lum Min Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"fIAD - Target Lum Max Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"EIAD - Target Lum Max Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"gIAD - Sunlight Scale Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"FIAD - Sunlight Scale Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"hIAD - Sky Scale Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"GIAD - Sky Scale Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]}]},{"t":11,"n":"iIAD - Unknown"},{"t":11,"n":"HIAD - Unknown"},{"t":11,"n":"jIAD - Unknown"},{"t":11,"n":"IIAD - Unknown"},{"t":11,"n":"kIAD - Unknown"},{"t":11,"n":"JIAD - Unknown"},{"t":11,"n":"lIAD - Unknown"},{"t":11,"n":"KIAD - Unknown"},{"t":11,"n":"mIAD - Unknown"},{"t":11,"n":"LIAD - Unknown"},{"t":11,"n":"nIAD - Unknown"},{"t":11,"n":"MIAD - Unknown"},{"t":11,"n":"oIAD - Unknown"},{"t":11,"n":"NIAD - Unknown"},{"t":11,"n":"pIAD - Unknown"},{"t":11,"n":"OIAD - Unknown"},{"t":11,"n":"qIAD - Unknown"},{"t":11,"n":"PIAD - Unknown"},{"t":6,"n":"Cinematic","c":[{"t":7,"n":"rIAD - Saturation Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"QIAD - Saturation Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"sIAD - Brightness Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"RIAD - Brightness Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"tIAD - Contrast Mult","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]},{"t":7,"n":"SIAD - Contrast Add","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"Time"},{"t":5,"n":"Value"}]}]}]},{"t":11,"n":"uIAD - Unknown"},{"t":11,"n":"TIAD - Unknown"}]},{"t":1,"n":"IMGS - Image Space","c":[{"t":2,"n":"EDID - Editor ID"},{"t":11,"n":"ENAM - Unknown"},{"t":6,"n":"HNAM - HDR","c":[{"t":5,"n":"Eye Adapt Speed"},{"t":5,"n":"Bloom Blur Radius"},{"t":5,"n":"Bloom Threshold"},{"t":5,"n":"Bloom Scale"},{"t":5,"n":"Receive Bloom Threshold"},{"t":5,"n":"White"},{"t":5,"n":"Sunlight Scale"},{"t":5,"n":"Sky Scale"},{"t":5,"n":"Eye Adapt Strength"}]},{"t":6,"n":"CNAM - Cinematic","c":[{"t":5,"n":"Saturation"},{"t":5,"n":"Brightness"},{"t":5,"n":"Contrast"}]},{"t":6,"n":"TNAM - Tint","c":[{"t":5,"n":"Amount"},{"t":6,"n":"Color","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]}]},{"t":6,"n":"DNAM - Depth of Field","c":[{"t":5,"n":"Strength"},{"t":5,"n":"Distance"},{"t":5,"n":"Range"},{"t":11,"n":"Unknown"},{"t":3,"n":"Sky \/ Blur Radius"}]}]},{"t":1,"n":"INFO - Dialog response","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]},{"t":6,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"n":"Flags"},{"t":2,"n":"fileName"},{"t":7,"n":"Fragments","c":[{"t":6,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]}]}]},{"t":11,"n":"DATA - Unknown"},{"t":6,"n":"ENAM - Response flags","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Reset Hours"}]},{"t":3,"n":"TPIC - Topic"},{"t":3,"n":"PNAM - Previous INFO"},{"t":3,"n":"CNAM - Favor Level"},{"t":8,"n":"Link To","c":[{"t":3,"n":"TCLT - Response"}]},{"t":3,"n":"DNAM - Response Data"},{"t":8,"n":"Responses","c":[{"t":6,"n":"Response","c":[{"t":6,"n":"TRDT - Response Data","c":[{"t":3,"n":"Emotion Type"},{"t":3,"n":"Emotion Value"},{"t":11,"n":"Unused"},{"t":3,"n":"Response number"},{"t":3,"n":"Sound"},{"t":3,"n":"Flags"}]},{"t":2,"n":"NAM1 - Response Text"},{"t":2,"n":"NAM2 - Script Notes"},{"t":2,"n":"NAM3 - Edits"},{"t":3,"n":"SNAM - Idle Animations: Speaker"},{"t":3,"n":"LNAM - Idle Animations: Listener"}]}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"SCHR - Unknown"},{"t":3,"n":"QNAM - Unknown"},{"n":"NEXT - Marker"}]}]},{"t":2,"n":"RNAM - Prompt"},{"t":3,"n":"ANAM - Speaker"},{"t":3,"n":"TWAT - Walk Away Topic"},{"t":3,"n":"ONAM - Audio Output Override"}]},{"t":1,"n":"INGR - Ingredient","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"ENIT - Effect Data","c":[{"t":3,"n":"Ingredient Value"},{"t":3,"n":"Flags"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"n":"IPCT - Impact","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"DATA - ","c":[{"t":5,"n":"Effect - Duration"},{"t":3,"n":"Effect - Orientation"},{"t":5,"n":"Angle Threshold"},{"t":5,"n":"Placement Radius"},{"t":3,"n":"Sound Level"},{"t":3,"n":"Flags"},{"t":3,"n":"Impact Result"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"DODT - Decal Data","c":[{"t":5,"n":"Min Width"},{"t":5,"n":"Max Width"},{"t":5,"n":"Min Height"},{"t":5,"n":"Max Height"},{"t":5,"n":"Depth"},{"t":5,"n":"Shininess"},{"t":6,"n":"Parallax","c":[{"t":5,"n":"Scale"},{"t":3,"n":"Passes"}]},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"DNAM - Texture Set"},{"t":3,"n":"ENAM - Secondary Texture Set"},{"t":3,"n":"SNAM - Sound 1"},{"t":3,"n":"NAM1 - Sound 2"},{"t":3,"n":"NAM2 - Hazard"}]},{"t":1,"n":"IPDS - Impact Data Set","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Data","c":[{"t":6,"n":"PNAM - ","c":[{"t":3,"n":"Material"},{"t":3,"n":"Impact"}]}]}]},{"t":1,"n":"KEYM - Key","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"n":"KYWD - Keyword","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"n":"LAND - Landscape","c":[{"t":11,"n":"DATA - Unknown"},{"t":11,"n":"VNML - Vertex Normals"},{"t":11,"n":"VHGT - Vertext Height Map"},{"t":11,"n":"VCLR - Vertex Colours"},{"t":8,"n":"Layers","c":[{"t":6,"n":"Base Layer","c":[{"t":6,"n":"BTXT - Base Layer Header","c":[{"t":3,"n":"Texture"},{"t":3,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"n":"Layer"}]}]},{"t":6,"n":"Alpha Layer","c":[{"t":6,"n":"ATXT - Alpha Layer Header","c":[{"t":3,"n":"Texture"},{"t":3,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"n":"Layer"}]},{"t":11,"n":"VTXT - Alpha Layer Data"}]}]},{"t":7,"n":"VTEX - Textures","c":[{"t":3,"n":"Texture"}]}]},{"t":1,"n":"LCRT - Location Reference Type","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"n":"LCTN - Location","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":3,"n":"NAM0 - Horse Marker Ref"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"n":"LENS - Lens Flare","c":[{"t":2,"n":"EDID - Editor ID"},{"t":5,"n":"CNAM - Color Influence"},{"t":5,"n":"DNAM - Fade Distance Radius Scale"},{"t":3,"n":"LFSP - Count"},{"t":8,"n":"Lens Flare Sprites","c":[{"t":6,"n":"Flare","c":[{"t":2,"n":"DNAM - Lens Flare Sprite ID"},{"t":2,"n":"FNAM - Texture"},{"t":6,"n":"LFSD - Lens Flare Data","c":[{"t":6,"n":"Tint","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":5,"n":"Width"},{"t":5,"n":"Height"},{"t":5,"n":"Position"},{"t":5,"n":"Angular Fade"},{"t":5,"n":"Opacity"},{"t":3,"n":"Flags"}]}]}]}]},{"t":1,"n":"LGTM - Lighting Template","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"DATA - Lighting","c":[{"t":6,"n":"Ambient Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Directional Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Fog Color Near","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Near"},{"t":5,"n":"Fog Far"},{"t":3,"n":"Directional Rotation XY"},{"t":3,"n":"Directional Rotation Z"},{"t":5,"n":"Directional Fade"},{"t":5,"n":"Fog Clip Dist"},{"t":5,"n":"Fog Power"},{"t":6,"n":"Ambient Colors","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"Fog Color Far","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Fog Max"},{"t":6,"n":"Light Fade Distances","c":[{"t":5,"n":"Start"},{"t":5,"n":"End"}]},{"t":11,"n":"Unknown"}]},{"t":6,"n":"DALC - Directional Ambient Lighting Colors","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]}]},{"t":1,"n":"LIGH - Light","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Time"},{"t":3,"n":"Radius"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Flags"},{"t":5,"n":"Falloff Exponent"},{"t":5,"n":"FOV"},{"t":5,"n":"Near Clip"},{"t":6,"n":"Flicker Effect","c":[{"t":5,"n":"Period"},{"t":5,"n":"Intensity Amplitude"},{"t":5,"n":"Movement Amplitude"}]},{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":5,"n":"FNAM - Fade value"},{"t":3,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"NNAM - Loading Screen NIF"},{"t":5,"n":"SNAM - Initial Scale"},{"t":6,"n":"RNAM - Initial Rotation","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Z"}]},{"t":6,"n":"ONAM - Rotation Offset Constraints","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":6,"n":"XNAM - Initial Translation Offset","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":2,"n":"MOD2 - Camera Path"}]},{"t":1,"n":"LTEX - Landscape Texture","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"TNAM - Texture Set"},{"t":3,"n":"MNAM - Material Type"},{"t":6,"n":"HNAM - Havok Data","c":[{"t":3,"n":"Friction"},{"t":3,"n":"Restitution"}]},{"t":3,"n":"SNAM - Texture Specular Exponent"},{"t":8,"n":"Grasses","c":[{"t":3,"n":"GNAM - Grass"}]},{"t":3,"n":"INAM - Flags"}]},{"t":1,"n":"LVLI - Leveled Item","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":3,"n":"LVLD - Chance None"},{"t":3,"n":"LVLF - Flags"},{"t":3,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"n":"Leveled List Entries","c":[{"t":6,"n":"Leveled List Entry","c":[{"t":6,"n":"LVLO - Base Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"n":"Reference"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]}]},{"t":1,"n":"LVLN - Leveled NPC","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":3,"n":"LVLD - Chance None"},{"t":3,"n":"LVLF - Flags"},{"t":3,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"n":"Leveled List Entries","c":[{"t":6,"n":"Leveled List Entry","c":[{"t":6,"n":"LVLO - Base Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"n":"Reference"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":1,"n":"LVSP - Leveled Spell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":3,"n":"LVLD - Chance None"},{"t":3,"n":"LVLF - Flags"},{"t":3,"n":"LLCT - Count"},{"t":10,"n":"Leveled List Entries","c":[{"t":6,"n":"Leveled List Entry","c":[{"t":6,"n":"LVLO - Base Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"n":"Reference"},{"t":3,"n":"Count"}]}]}]}]},{"t":1,"n":"MATO - Material Object","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":8,"n":"Property Data","c":[{"t":11,"n":"DNAM - Data"}]},{"t":6,"n":"DATA - Directional Material Data","c":[{"t":5,"n":"Falloff Scale"},{"t":5,"n":"Falloff Bias"},{"t":5,"n":"Noise UV Scale"},{"t":5,"n":"Material UV Scale"},{"t":6,"n":"Projection Vector","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":5,"n":"Normal Dampener"},{"t":6,"n":"Single Pass Color","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]}]},{"t":1,"n":"MATT - Material Type","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"PNAM - Material Parent"},{"t":2,"n":"MNAM - Material Name"},{"t":6,"n":"CNAM - Havok Display Color","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":5,"n":"BNAM - Buoyancy"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"HNAM - Havok Impact Data Set"}]},{"t":1,"p":1,"n":"MESG - Message","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"INAM - Icon (unused)"},{"t":3,"n":"QNAM - Owner Quest"},{"t":3,"n":"DNAM - Flags"},{"t":3,"n":"TNAM - Display Time"},{"t":8,"n":"Menu Buttons","c":[{"t":6,"n":"Menu Button","c":[{"t":2,"n":"ITXT - Button Text"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"Magic Effect Data","c":[{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"n":"Assoc. Item"},{"t":3,"n":"Magic Skill"},{"t":3,"n":"Resist Value"},{"t":3,"n":"Counter Effect count"},{"t":3,"n":"Casting Light"},{"t":5,"n":"Taper Weight"},{"t":3,"n":"Hit Shader"},{"t":3,"n":"Enchant Shader"},{"t":3,"n":"Minimum Skill Level"},{"t":6,"n":"Spellmaking","c":[{"t":3,"n":"Area"},{"t":5,"n":"Casting Time"}]},{"t":5,"n":"Taper Curve"},{"t":5,"n":"Taper Duration"},{"t":5,"n":"Second AV Weight"},{"t":3,"n":"Archtype"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Projectile"},{"t":3,"n":"Explosion"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Delivery"},{"t":3,"n":"Second Actor Value"},{"t":3,"n":"Casting Art"},{"t":3,"n":"Hit Effect Art"},{"t":3,"n":"Impact Data"},{"t":5,"n":"Skill Usage Multiplier"},{"t":6,"n":"Dual Casting","c":[{"t":3,"n":"Art"},{"t":5,"n":"Scale"}]},{"t":3,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":3,"n":"Equip Ability"},{"t":3,"n":"Image Space Modifier"},{"t":3,"n":"Perk to Apply"},{"t":3,"n":"Casting Sound Level"},{"t":6,"n":"Script Effect AI","c":[{"t":5,"n":"Score"},{"t":5,"n":"Delay Time"}]}]}]},{"t":8,"n":"Counter Effects","c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"n":"SNDD - Sounds","c":[{"t":6,"n":"","c":[{"t":3,"n":"Type"},{"t":3,"n":"Sound"}]}]},{"t":2,"p":1,"n":"DNAM - Magic Item Description"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"n":"MISC - Misc. Item","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]}]},{"t":1,"n":"MOVT - Movement Type","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"MNAM - Name"},{"t":6,"n":"SPED - Default Data","c":[{"t":5,"n":"Left Walk"},{"t":5,"n":"Left Run"},{"t":5,"n":"Right Walk"},{"t":5,"n":"Right Run"},{"t":5,"n":"Forward Walk"},{"t":5,"n":"Forward Run"},{"t":5,"n":"Back Walk"},{"t":5,"n":"Back Run"},{"t":5,"n":"Rotate in Place Walk"},{"t":5,"n":"Rotate in Place Run"},{"t":5,"n":"Rotate while Moving Run"}]},{"t":6,"n":"INAM - Anim Change Thresholds","c":[{"t":5,"n":"Directional"},{"t":5,"n":"Movement Speed"},{"t":5,"n":"Rotation Speed"}]}]},{"t":1,"n":"MSTT - Moveable Static","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"DATA - Flags"},{"t":3,"n":"SNAM - Looping Sound"}]},{"t":1,"n":"MUSC - Music Type","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"FNAM - Flags"},{"t":6,"n":"PNAM - Data","c":[{"t":3,"n":"Priority"},{"t":3,"n":"Ducking (dB)"}]},{"t":5,"n":"WNAM - Fade Duration"},{"t":7,"n":"TNAM - Music Tracks","c":[{"t":3,"n":"Track"}]}]},{"t":1,"n":"MUST - Music Track","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"CNAM - Track Type"},{"t":5,"n":"FLTV - Duration"},{"t":5,"n":"DNAM - Fade-Out"},{"t":2,"n":"ANAM - Track Filename"},{"t":2,"n":"BNAM - Finale Filename"},{"t":7,"n":"FNAM - Cue Points","c":[{"t":5,"n":"Point"}]},{"t":6,"n":"LNAM - Loop Data","c":[{"t":5,"n":"Loop Begins"},{"t":5,"n":"Loop Ends"},{"t":3,"n":"Loop Count"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"n":"SNAM - Tracks","c":[{"t":3,"n":"Track"}]}]},{"t":1,"n":"NAVI - Navigation Mesh Info Map","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"NVER - Version"},{"t":8,"n":"Navigation Map Infos","c":[{"t":6,"n":"NVMI - Navigation Map Info","c":[{"t":3,"n":"Navigation Mesh"},{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"},{"t":3,"n":"Preferred Merges Flag"},{"t":7,"n":"Merged To","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Preferred Merges","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Linked Doors","c":[{"t":6,"n":"Door","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Door Ref"}]}]},{"t":3,"n":"Is Island"},{"t":11,"n":"Unused"},{"t":6,"n":"Island Data","c":[{"t":11,"n":"Unknown"},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]}]},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"}]}]},{"t":6,"n":"NVPP - Preferred Pathing","c":[{"t":7,"n":"NavMeshes","c":[{"t":7,"n":"Set","c":[{"t":3,"n":""}]}]},{"t":7,"n":"NavMesh Tree?","c":[{"t":6,"n":"","c":[{"t":3,"n":"NavMesh"},{"t":3,"n":"Index\/Node"}]}]}]},{"t":7,"n":"NVSI - Unknown","c":[{"t":3,"n":"Navigation Mesh"}]}]},{"t":1,"n":"NAVM - Navigation Mesh","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NVNM - Geometry","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"External Connections","c":[{"t":6,"n":"Connection","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Mesh"},{"t":3,"n":"Triangle"}]}]},{"t":7,"n":"Door Triangles","c":[{"t":6,"n":"Door Triangle","c":[{"t":3,"n":"Triangle before door"},{"t":11,"n":"Unknown"},{"t":3,"n":"Door"}]}]}]},{"t":11,"n":"ONAM - Unknown"},{"t":11,"n":"PNAM - Unknown"},{"t":11,"n":"NNAM - Unknown"}]},{"t":1,"n":"NPC_ - Non-Player Character (Actor)","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"ACBS - Configuration","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Magicka Offset"},{"t":3,"n":"Stamina Offset"},{"t":3,"n":"Level"},{"t":3,"n":"Level Mult"},{"t":3,"n":"Calc min level"},{"t":3,"n":"Calc max level"},{"t":3,"n":"Speed Multiplier"},{"t":3,"n":"Disposition Base (unused)"},{"t":3,"n":"Template Flags"},{"t":3,"n":"Health Offset"},{"t":3,"n":"Bleedout Override"}]},{"t":8,"n":"Factions","c":[{"t":6,"n":"SNAM - Faction","c":[{"t":3,"n":"Faction"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"INAM - Death item"},{"t":3,"n":"VTCK - Voice"},{"t":3,"n":"TPLT - Template"},{"t":3,"n":"RNAM - Race"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"WNAM - Worn Armor"},{"t":3,"n":"ANAM - Far away model"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"n":"Perks","c":[{"t":6,"n":"PRKR - Perk","c":[{"t":3,"n":"Perk"},{"t":3,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":6,"n":"AIDT - AI Data","c":[{"t":3,"n":"Aggression"},{"t":3,"n":"Confidence"},{"t":3,"n":"Energy Level"},{"t":3,"n":"Responsibility"},{"t":3,"n":"Mood"},{"t":3,"n":"Assistance"},{"t":6,"n":"Aggro","c":[{"t":3,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"n":"Warn"},{"t":3,"n":"Warn\/Attack"},{"t":3,"n":"Attack"}]}]},{"t":8,"n":"Packages","c":[{"t":3,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"CNAM - Class"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"n":"DNAM - Player Skills","c":[{"t":7,"n":"Skill Values","c":[{"t":3,"n":"Skill"}]},{"t":7,"n":"Skill Offsets","c":[{"t":3,"n":"Skill"}]},{"t":3,"n":"Health"},{"t":3,"n":"Magicka"},{"t":3,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"n":"Far away model distance"},{"t":3,"n":"Geared up weapons"}]},{"t":8,"n":"Head Parts","c":[{"t":3,"n":"PNAM - Head Part"}]},{"t":3,"n":"HCLF - Hair Color"},{"t":3,"n":"ZNAM - Combat Style"},{"t":3,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"n":"NAM6 - Height"},{"t":5,"n":"NAM7 - Weight"},{"t":3,"n":"NAM8 - Sound Level"},{"t":10,"n":"Sound Types","c":[{"t":6,"n":"Sound Type","c":[{"t":3,"n":"CSDT - Type"},{"t":10,"n":"Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"CSDI - Sound"},{"t":3,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"n":"CSCR - Inherits Sounds From"},{"t":3,"n":"DOFT - Default outfit"},{"t":3,"n":"SOFT - Sleeping outfit"},{"t":3,"n":"DPLT - Default Package List"},{"t":3,"n":"CRIF - Crime faction"},{"t":3,"n":"FTST - Head texture"},{"t":6,"n":"QNAM - Texture lighting","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":6,"n":"NAM9 - Face morph","c":[{"t":5,"n":"Nose Long\/Short"},{"t":5,"n":"Nose Up\/Down"},{"t":5,"n":"Jaw Up\/Down"},{"t":5,"n":"Jaw Narrow\/Wide"},{"t":5,"n":"Jaw Farward\/Back"},{"t":5,"n":"Cheeks Up\/Down"},{"t":5,"n":"Cheeks Farward\/Back"},{"t":5,"n":"Eyes Up\/Down"},{"t":5,"n":"Eyes In\/Out"},{"t":5,"n":"Brows Up\/Down"},{"t":5,"n":"Brows In\/Out"},{"t":5,"n":"Brows Farward\/Back"},{"t":5,"n":"Lips Up\/Down"},{"t":5,"n":"Lips In\/Out"},{"t":5,"n":"Chin Narrow\/Wide"},{"t":5,"n":"Chin Up\/Down"},{"t":5,"n":"Chin Underbite\/Overbite"},{"t":5,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}]},{"t":6,"n":"NAMA - Face parts","c":[{"t":3,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"n":"Eyes"},{"t":3,"n":"Mouth"}]},{"t":10,"n":"Tint Layers","c":[{"t":6,"n":"Layer","c":[{"t":3,"n":"TINI - Tint Index"},{"t":6,"n":"TINC - Tint Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":3,"n":"Alpha"}]},{"t":3,"n":"TINV - Interpolation Value"},{"t":3,"n":"TIAS - Preset"}]}]}]},{"t":1,"n":"OTFT - Outfit","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"INAM - Items","c":[{"t":3,"n":"Item"}]}]},{"t":1,"n":"PACK - Package","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]},{"t":6,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"n":"Flags"},{"t":2,"n":"fileName"},{"t":7,"n":"Fragments","c":[{"t":6,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]}]}]},{"t":6,"n":"PKDT - Pack Data","c":[{"t":3,"n":"General Flags"},{"t":3,"n":"Type"},{"t":3,"n":"Interrupt Override"},{"t":3,"n":"Preferred Speed"},{"t":11,"n":"Unknown"},{"t":3,"n":"Interrupt Flags"}]},{"t":6,"n":"PSDT - Schedule","c":[{"t":3,"n":"Month"},{"t":3,"n":"Day of week"},{"t":3,"n":"Date"},{"t":3,"n":"Hour"},{"t":3,"n":"Minute"},{"t":11,"n":"Unused"},{"t":3,"n":"Duration (minutes)"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"n":"Idle Animations","c":[{"t":3,"n":"IDLF - Flags"},{"t":6,"n":"IDLC - ","c":[{"t":3,"n":"Animation Count"},{"t":11,"n":"Unknown"}]},{"t":5,"n":"IDLT - Idle Timer Setting"},{"t":7,"n":"IDLA - Animations","c":[{"t":3,"n":"Animation"}]},{"t":11,"n":"IDLB - Unknown"}]},{"t":3,"n":"CNAM - Combat Style"},{"t":3,"n":"QNAM - Owner Quest"},{"t":6,"n":"PKCU - Counter","c":[{"t":3,"n":"Data Input Count"},{"t":3,"n":"Package Template"},{"t":3,"n":"Version Counter (autoincremented)"}]},{"t":6,"n":"Package Data","c":[{"t":8,"n":"Data Input Values","c":[{"t":6,"n":"Value","c":[{"t":2,"n":"ANAM - Type"},{"t":11,"n":"Unknown"},{"t":3,"n":"Bool"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"BNAM - Unknown"},{"t":8,"n":"Topic","c":[{"t":6,"n":"PDTO - Topic Data","c":[{"t":3,"n":"Type"},{"t":3,"n":"Topic"},{"t":2,"n":"Subtype"}]}]},{"t":6,"n":"PLDT - Location","c":[{"t":3,"n":"Type"},{"t":3,"n":"Reference"},{"t":3,"n":"Cell"},{"t":11,"n":"Near Package Start Location"},{"t":11,"n":"Near Editor Location"},{"t":3,"n":"Object ID"},{"t":3,"n":"Object Type"},{"t":3,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"n":"Radius"}]},{"t":6,"n":"PTDA - Target","c":[{"t":6,"n":"Target Data","c":[{"t":3,"n":"Type"},{"t":3,"n":"Reference"},{"t":3,"n":"Object ID"},{"t":3,"n":"Object Type"},{"t":3,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"n":"Count \/ Distance"}]}]},{"t":11,"n":"TPIC - Unknown"}]}]},{"t":8,"n":"Data Inputs","c":[{"t":6,"n":"Data Input","c":[{"t":3,"n":"UNAM - Index"},{"t":2,"n":"BNAM - Name"},{"t":3,"n":"PNAM - Flags"}]}]}]},{"t":11,"n":"XNAM - Marker"},{"t":6,"n":"Procedure Tree","c":[{"t":8,"n":"Branches","c":[{"t":6,"n":"Branch","c":[{"t":2,"n":"ANAM - Branch Type"},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"n":"PRCB - Root","c":[{"t":3,"n":"Branch Count"},{"t":3,"n":"Flags"}]},{"t":2,"n":"PNAM - Procedure Type"},{"t":3,"n":"FNAM - Flags"},{"t":8,"n":"Data Input Indexes","c":[{"t":3,"n":"PKC2 - Index"}]},{"t":8,"n":"Flags Override","c":[{"t":6,"n":"PFO2 - Data","c":[{"t":3,"n":"Set General Flags"},{"t":3,"n":"Clear General Flags"},{"t":3,"n":"Set Interrupt Flags"},{"t":3,"n":"Clear Interrupt Flags"},{"t":3,"n":"Preferred Speed Override"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"PFOR - Unknown"}]}]}]}]},{"t":8,"n":"Data Inputs","c":[{"t":6,"n":"Data Input","c":[{"t":3,"n":"UNAM - Index"},{"t":2,"n":"BNAM - Name"},{"t":3,"n":"PNAM - Flags"}]}]},{"t":6,"n":"OnBegin","c":[{"n":"POBA - OnBegin Marker"},{"t":3,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"n":"Topic","c":[{"t":6,"n":"PDTO - Topic Data","c":[{"t":3,"n":"Type"},{"t":3,"n":"Topic"},{"t":2,"n":"Subtype"}]}]}]},{"t":6,"n":"OnEnd","c":[{"n":"POEA - OnEnd Marker"},{"t":3,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"n":"Topic","c":[{"t":6,"n":"PDTO - Topic Data","c":[{"t":3,"n":"Type"},{"t":3,"n":"Topic"},{"t":2,"n":"Subtype"}]}]}]},{"t":6,"n":"OnChange","c":[{"n":"POCA - OnChange Marker"},{"t":3,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCDA - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"n":"Topic","c":[{"t":6,"n":"PDTO - Topic Data","c":[{"t":3,"n":"Type"},{"t":3,"n":"Topic"},{"t":2,"n":"Subtype"}]}]}]}]},{"t":1,"n":"PARW - Placed Arrow","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PBAR - Placed Barrier","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PBEA - Placed Beam","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PCON - Placed Cone\/Voice","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PERK - Perk","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]},{"t":6,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":2,"n":"fileName"},{"t":7,"n":"Fragments","c":[{"t":6,"n":"Fragment","c":[{"t":3,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]}]}]},{"t":2,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Trait"},{"t":3,"n":"Level"},{"t":3,"n":"Num Ranks"},{"t":3,"n":"Playable"},{"t":3,"n":"Hidden"}]},{"t":3,"n":"NNAM - Next Perk"},{"t":10,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":6,"n":"PRKE - Header","c":[{"t":3,"n":"Type"},{"t":3,"n":"Rank"},{"t":3,"n":"Priority"}]},{"t":6,"n":"Quest + Stage","c":[{"t":3,"n":"Quest"},{"t":3,"n":"Quest Stage"},{"t":11,"n":"Unused"}]},{"t":3,"n":"Ability"},{"t":6,"n":"Entry Point","c":[{"t":3,"n":"Entry Point"},{"t":3,"n":"Function"},{"t":3,"n":"Perk Condition Tab Count"}]},{"t":10,"n":"Perk Conditions","c":[{"t":6,"n":"Perk Condition","c":[{"t":3,"n":"PRKC - Run On (Tab Index)"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":6,"n":"Function Parameters","c":[{"t":3,"n":"EPFT - Type"},{"t":2,"n":"EPF2 - Button Label"},{"t":6,"n":"EPF3 - Script Flags","c":[{"t":3,"n":"Script Flags"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"Unknown"},{"t":5,"n":"Float"},{"t":6,"n":"Float, Float","c":[{"t":5,"n":"Float 1"},{"t":5,"n":"Float 2"}]},{"t":3,"n":"Leveled Item"},{"t":3,"n":"Spell"},{"t":2,"n":"Text"},{"t":6,"n":"Actor Value, Float","c":[{"t":3,"n":"Actor Value"},{"t":5,"n":"Float"}]}]},{"n":"PRKF - End Marker"}]}]}]},{"t":1,"n":"PFLA - Placed Flame","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PGRE - Placed Projectile","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PHZD - Placed Hazard","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PMIS - Placed Missile","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Projectile"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"PROJ - Projectile","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Gravity"},{"t":5,"n":"Speed"},{"t":5,"n":"Range"},{"t":3,"n":"Light"},{"t":3,"n":"Muzzle Flash - Light"},{"t":5,"n":"Tracer Chance"},{"t":5,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"n":"Explosion"},{"t":3,"n":"Sound"},{"t":5,"n":"Muzzle Flash - Duration"},{"t":5,"n":"Fade Duration"},{"t":5,"n":"Impact Force"},{"t":3,"n":"Sound - Countdown"},{"t":3,"n":"Sound - Disable"},{"t":3,"n":"Default Weapon Source"},{"t":5,"n":"Cone Spread"},{"t":5,"n":"Collision Radius"},{"t":5,"n":"Lifetime"},{"t":5,"n":"Relaunch Interval"},{"t":3,"n":"Decal Data"},{"t":3,"n":"Collision Layer"}]},{"t":6,"n":"Muzzle Flash Model","c":[{"t":2,"n":"NAM1 - Model Filename"},{"t":11,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"n":"VNAM - Sound Level"}]},{"t":1,"n":"PWAT","c":[{"t":2,"n":"EDID - Editor ID"}]},{"t":1,"n":"QUST - Quest","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]},{"t":6,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"n":"fragmentCount"},{"t":2,"n":"fileName"},{"t":7,"n":"Fragments","c":[{"t":6,"n":"Fragment","c":[{"t":3,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"n":"Quest Stage Index"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]}]},{"t":7,"n":"Aliases","c":[{"t":6,"n":"Alias","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Alias Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]}]}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"DNAM - General","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Priority"},{"t":3,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"n":"Type"}]},{"t":2,"n":"ENAM - Event"},{"t":8,"n":"Text Display Globals","c":[{"t":3,"n":"QTGL - Global"}]},{"t":2,"n":"FLTR - Object Window Filter"},{"t":6,"n":"Quest Dialogue Conditions","c":[{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]},{"n":"NEXT - Marker"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":10,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"INDX - Stage Index","c":[{"t":3,"n":"Stage Index"},{"t":3,"n":"Flags"},{"t":3,"n":"Unknown"}]},{"t":8,"n":"Log Entries","c":[{"t":6,"n":"Log Entry","c":[{"t":3,"n":"QSDT - Stage Flags"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"CNAM - Log Entry"},{"t":3,"n":"NAM0 - Next Quest"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"}]}]}]}]},{"t":8,"n":"Objectives","c":[{"t":6,"n":"Objective","c":[{"t":3,"n":"QOBJ - Objective Index"},{"t":3,"n":"FNAM - Flags"},{"t":2,"n":"NNAM - Display Text"},{"t":8,"n":"Targets","c":[{"t":6,"n":"Target","c":[{"t":6,"n":"QSTA - Target","c":[{"t":3,"n":"Alias"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},{"t":11,"n":"ANAM - Aliases Marker"},{"t":8,"n":"Aliases","c":[{"t":6,"n":"Alias","c":[{"t":3,"n":"ALST - Reference Alias ID"},{"t":2,"n":"ALID - Alias Name"},{"t":6,"n":"FNAM - Alias Flags","c":[{"t":3,"n":"Flags"},{"t":3,"n":"Additional Flags"}]},{"t":3,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"n":"ALFL - Specific Location"},{"t":3,"n":"ALFR - Forced Reference"},{"t":3,"n":"ALUA - Unique Actor"},{"t":6,"n":"Location Alias Reference","c":[{"t":3,"n":"ALFA - Alias"},{"t":3,"n":"KNAM - Keyword"},{"t":3,"n":"ALRT - Ref Type"}]},{"t":6,"n":"External Alias Reference","c":[{"t":3,"n":"ALEQ - Quest"},{"t":3,"n":"ALEA - Alias"}]},{"t":6,"n":"Create Reference to Object","c":[{"t":3,"n":"ALCO - Object"},{"t":6,"n":"ALCA - Alias","c":[{"t":3,"n":"Alias"},{"t":3,"n":"Create"}]},{"t":3,"n":"ALCL - Level"}]},{"t":6,"n":"Find Matching Reference Near Alias","c":[{"t":3,"n":"ALNA - Alias"},{"t":3,"n":"ALNT - Type"}]},{"t":6,"n":"Find Matching Reference From Event","c":[{"t":2,"n":"ALFE - From Event"},{"t":11,"n":"ALFD - Event Data"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"ALDN - Display Name"},{"t":8,"n":"Alias Spells","c":[{"t":3,"n":"ALSP - Spell"}]},{"t":8,"n":"Alias Factions","c":[{"t":3,"n":"ALFC - Faction"}]},{"t":8,"n":"Alias Package Data","c":[{"t":3,"n":"ALPC - Package"}]},{"t":3,"n":"VTCK - Voice Types"},{"n":"ALED - Alias End"}]}]},{"t":2,"n":"NNAM - Description"},{"t":8,"n":"Targets","c":[{"t":6,"n":"Target","c":[{"t":6,"n":"QSTA - Target","c":[{"t":3,"n":"Target"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"n":"RACE - Race","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":8,"n":"Actor Effects","c":[{"t":3,"n":"SPLO - Actor Effect"}]},{"t":3,"n":"WNAM - Skin"},{"t":6,"n":"BOD2 - Biped Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":6,"n":"BODT - Body Template","c":[{"t":3,"n":"First Person Flags"},{"t":3,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Armor Type"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":7,"n":"Skill Boosts","c":[{"t":6,"n":"Skill Boost","c":[{"t":3,"n":"Skill"},{"t":3,"n":"Boost"}]}]},{"t":11,"n":"Unknown"},{"t":5,"n":"Male Height"},{"t":5,"n":"Female Height"},{"t":5,"n":"Male Weight"},{"t":5,"n":"Female Weight"},{"t":3,"n":"Flags"},{"t":5,"n":"Starting Health"},{"t":5,"n":"Starting Magicka"},{"t":5,"n":"Starting Stamina"},{"t":5,"n":"Base Carry Weight"},{"t":5,"n":"Base Mass"},{"t":5,"n":"Acceleration rate"},{"t":5,"n":"Deceleration rate"},{"t":3,"n":"Size"},{"t":3,"n":"Head Biped Object"},{"t":3,"n":"Hair Biped Object"},{"t":5,"n":"Injured Health Pct"},{"t":3,"n":"Shield Biped Object"},{"t":5,"n":"Health Regen"},{"t":5,"n":"Magicka Regen"},{"t":5,"n":"Stamina Regen"},{"t":5,"n":"Unarmed Damage"},{"t":5,"n":"Unarmed Reach"},{"t":3,"n":"Body Biped Object"},{"t":5,"n":"Aim Angle Tolerance"},{"t":5,"n":"Flight Radius"},{"t":5,"n":"Angular Acceleration Rate"},{"t":5,"n":"Angular Tolerance"},{"t":3,"n":"Flags 2"},{"t":6,"n":"Mount Data","c":[{"t":5,"n":"Offset X"},{"t":5,"n":"Offset Y"},{"t":5,"n":"Unknown"}]}]},{"n":"MNAM - Male Marker"},{"t":2,"n":"ANAM - Male Skeletal Model"},{"t":11,"n":"MODT - Texture Files Hashes"},{"n":"FNAM - Female Marker"},{"t":2,"n":"ANAM - Female Skeletal Model"},{"n":"NAM2 - Marker NAM2 #1"},{"t":8,"n":"Movement Type Names","c":[{"t":2,"n":"MTNM - Name"}]},{"t":7,"n":"VTCK - Voices","c":[{"t":3,"n":"Voice"}]},{"t":7,"n":"DNAM - Decapitate Armors","c":[{"t":3,"n":"Decapitate Armor"}]},{"t":7,"n":"HCLF - Default Hair Colors","c":[{"t":3,"n":"Default Hair Color"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"n":"ATKR - Attack Race"},{"t":10,"n":"Attacks","c":[{"t":6,"n":"Attack","c":[{"t":6,"n":"ATKD - Attack Data","c":[{"t":5,"n":"Damage Mult"},{"t":5,"n":"Attack Chance"},{"t":3,"n":"Attack Spell"},{"t":3,"n":"Attack Flags"},{"t":5,"n":"Attack Angle"},{"t":5,"n":"Strike Angle"},{"t":5,"n":"Stagger"},{"t":3,"n":"Attack Type"},{"t":5,"n":"Knockdown"},{"t":5,"n":"Recovery Time"},{"t":5,"n":"Stamina Mult"}]},{"t":2,"n":"ATKE - Attack Event"}]}]},{"t":6,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]}]}]},{"t":6,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"n":"Parts","c":[{"t":6,"n":"Part","c":[{"t":3,"n":"INDX - Index"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]}]}]}]},{"t":7,"n":"HNAM - Hairs","c":[{"t":3,"n":"Hair"}]},{"t":7,"n":"ENAM - Eyes","c":[{"t":3,"n":"Eye"}]},{"t":3,"n":"GNAM - Body Part Data"},{"n":"NAM2 - Marker NAM2 #2"},{"n":"NAM3 - Marker NAM3 #3"},{"t":6,"n":"Male Behavior Graph","c":[{"n":"MNAM - Male Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":6,"n":"Female Behavior Graph","c":[{"n":"FNAM - Female Data Marker"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":3,"n":"NAM4 - Material Type"},{"t":3,"n":"NAM5 - Impact Data Set"},{"t":3,"n":"NAM7 - Decapitation FX"},{"t":3,"n":"ONAM - Open Loot Sound"},{"t":3,"n":"LNAM - Close Loot Sound"},{"t":8,"n":"Biped Object Names","c":[{"t":2,"n":"NAME - Name"}]},{"t":10,"n":"Movement Types","c":[{"t":6,"n":"Movement Types","c":[{"t":3,"n":"MTYP - Movement Type"},{"t":6,"n":"SPED - Override Values","c":[{"t":5,"n":"Left - Walk"},{"t":5,"n":"Left - Run"},{"t":5,"n":"Right - Walk"},{"t":5,"n":"Right - Run"},{"t":5,"n":"Forward - Walk"},{"t":5,"n":"Forward - Run"},{"t":5,"n":"Back - Walk"},{"t":5,"n":"Back - Run"},{"t":5,"n":"Rotate - Walk"},{"t":5,"n":"Unknown"}]}]}]},{"t":3,"n":"VNAM - Equipment Flags"},{"t":8,"n":"Equip Slots","c":[{"t":3,"n":"QNAM - Equip Slot"}]},{"t":3,"n":"UNES - Unarmed Equip Slot"},{"t":8,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"IH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AE","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AA","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AO","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ER","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AX","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"S","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Z","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ZH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"F","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"TH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"V","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"DH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"M","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"N","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"NG","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"L","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"R","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"W","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Y","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"HH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"B","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"D","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"JH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"G","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"P","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"T","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"K","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"CH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SHOTSIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"FLAP","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]}]},{"t":3,"n":"WKMV - Base Movement Default - Walk"},{"t":3,"n":"RNMV - Base Movement Default - Run"},{"t":3,"n":"SWMV - Base Movement Default - Swim"},{"t":3,"n":"FLMV - Base Movement Default - Fly"},{"t":3,"n":"SNMV - Base Movement Default - Sneak"},{"t":3,"n":"SPMV - Base Movement Default - Sprint"},{"t":6,"n":"Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"t":6,"n":"Male Head Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"n":"Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":6,"n":"Available Morphs","c":[{"t":11,"n":"MPAI - Unknown"},{"t":6,"n":"MPAV - Nose Variants","c":[{"t":3,"n":"Nose Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Brow Variants","c":[{"t":3,"n":"Brow Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Eye Variants","c":[{"t":3,"n":"Eye Morph Flags 1"},{"t":3,"n":"Eye Morph Flags 2"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Lip Variants","c":[{"t":3,"n":"Lip Morph Flags"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Race Presets Male","c":[{"t":3,"n":"RPRM - Preset NPC"}]},{"t":8,"n":"Available Hair Colors Male","c":[{"t":3,"n":"AHCM - Hair Color"}]},{"t":8,"n":"Face Details Texture Set List Male","c":[{"t":3,"n":"FTSM - Texture Set"}]},{"t":3,"n":"DFTM - Default Face Texture Male"},{"t":8,"n":"Tint Masks","c":[{"t":6,"n":"Tint Assets","c":[{"t":8,"n":"Tint Layer","c":[{"t":6,"n":"Texture","c":[{"t":3,"n":"TINI - Index"},{"t":2,"n":"TINT - File Name"},{"t":3,"n":"TINP - Mask Type"},{"t":3,"n":"TIND - Preset Default"}]}]},{"t":8,"n":"Presets","c":[{"t":6,"n":"Preset","c":[{"t":3,"n":"TINC - Color"},{"t":5,"n":"TINV - Default Value"},{"t":3,"n":"TIRS - Index"}]}]}]}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":6,"n":"Female Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"n":"FNAM - Female Data Marker"},{"t":10,"n":"Head Parts","c":[{"t":6,"n":"Head Part","c":[{"t":3,"n":"INDX - Head Part Number"},{"t":3,"n":"HEAD - Head"}]}]},{"t":6,"n":"Available Morphs","c":[{"t":11,"n":"MPAI - Unknown"},{"t":6,"n":"MPAV - Nose Variants","c":[{"t":3,"n":"Nose Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Brow Variants","c":[{"t":3,"n":"Brow Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Eye Variants","c":[{"t":3,"n":"Eye Morph Flags 1"},{"t":3,"n":"Eye Morph Flags 2"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Lip Variants","c":[{"t":3,"n":"Lip Morph Flags"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Race Presets Female","c":[{"t":3,"n":"RPRF - Preset NPC"}]},{"t":8,"n":"Available Hair Colors Female","c":[{"t":3,"n":"AHCF - Hair Color"}]},{"t":8,"n":"Face Details Texture Set List Female","c":[{"t":3,"n":"FTSF - Texture Set"}]},{"t":3,"n":"DFTF - Default Face Texture Female"},{"t":8,"n":"Tint Masks","c":[{"t":6,"n":"Tint Assets","c":[{"t":8,"n":"Tint Layer","c":[{"t":6,"n":"Texture","c":[{"t":3,"n":"TINI - Index"},{"t":2,"n":"TINT - File Name"},{"t":3,"n":"TINP - Mask Type"},{"t":3,"n":"TIND - Preset Default"}]}]},{"t":8,"n":"Presets","c":[{"t":6,"n":"Preset","c":[{"t":3,"n":"TINC - Color"},{"t":5,"n":"TINV - Default Value"},{"t":3,"n":"TIRS - Index"}]}]}]}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]}]},{"t":3,"n":"NAM8 - Morph race"},{"t":3,"n":"RNAM - Armor race"}]},{"t":1,"n":"REFR - Placed Object","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Base"},{"t":6,"n":"XMBO - Bound Half Extents","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"XPRM - Primitive","c":[{"t":6,"n":"Bounds","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Color","c":[{"t":5,"n":"Red"},{"t":5,"n":"Green"},{"t":5,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"n":"Type"}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"n":"Size","c":[{"t":5,"n":"Width"},{"t":5,"n":"Height"}]},{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation (Quaternion?)","c":[{"t":5,"n":"q1"},{"t":5,"n":"q2"},{"t":5,"n":"q3"},{"t":5,"n":"q4"}]}]},{"t":7,"n":"XPOD - Portal Data","c":[{"t":6,"n":"References","c":[{"t":3,"n":"Origin"},{"t":3,"n":"Destination"}]}]},{"t":6,"n":"XPTL - Room Portal (unused)","c":[{"t":6,"n":"Size","c":[{"t":5,"n":"Width"},{"t":5,"n":"Height"}]},{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation (Quaternion?)","c":[{"t":5,"n":"q1"},{"t":5,"n":"q2"},{"t":5,"n":"q3"},{"t":5,"n":"q4"}]}]},{"t":6,"n":"Bound Data","c":[{"t":6,"n":"XRMR - Header","c":[{"t":3,"n":"Linked Rooms Count"},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"LNAM - Lighting Template"},{"t":3,"n":"INAM - Image Space"},{"t":8,"n":"Linked Rooms","c":[{"t":3,"n":"XLRM - Linked Room"}]}]},{"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"n":"XRDS - Radius"},{"t":8,"n":"Reflected\/Refracted By","c":[{"t":6,"n":"XPWR - Water","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Lit Water","c":[{"t":3,"n":"XLTW - Water"}]},{"t":3,"n":"XEMI - Emittance"},{"t":6,"n":"XLIG - Light Data","c":[{"t":5,"n":"FOV 90+\/-"},{"t":5,"n":"Fade 1.35+\/-"},{"t":11,"n":"Unknown"},{"t":5,"n":"Shadow Depth Bias"}]},{"t":6,"n":"XALP - Alpha","c":[{"t":3,"n":"Cutoff"},{"t":3,"n":"Base"}]},{"t":6,"n":"XTEL - Teleport Destination","c":[{"t":3,"n":"Door"},{"t":6,"n":"Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]},{"t":3,"n":"Flags"}]},{"t":3,"n":"XTNM - Teleport Message Box"},{"t":3,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"n":"XWCU - Water Velocity","c":[{"t":5,"n":"X Offset"},{"t":5,"n":"Y Offset"},{"t":5,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"},{"t":5,"n":"Y Angle"},{"t":5,"n":"Z Angle"}]},{"t":6,"n":"XCVL - Unknown","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"}]},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":5,"n":"XSCL - Scale"},{"t":3,"n":"XSPC - Spawn Container"},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":3,"n":"XLIB - Leveled Item Base Object"},{"t":3,"n":"XLCM - Level Modifier"},{"t":3,"n":"XLCN - Persistent Location"},{"t":3,"n":"XTRI - Collision Layer"},{"t":6,"n":"XLOC - Lock Data","c":[{"t":3,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"n":"Key"},{"t":3,"n":"Flags"}]},{"t":3,"n":"XEZN - Encounter Zone"},{"t":6,"n":"XNDP - Navigation Door Link","c":[{"t":3,"n":"Navigation Mesh"},{"t":3,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"n":"XIS2 - Ignored by Sandbox"},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XCNT - Item Count"},{"t":5,"n":"XCHG - Charge"},{"t":3,"n":"XLRL - Location Reference"},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":8,"n":"Patrol","c":[{"t":6,"n":"Data","c":[{"t":5,"n":"XPRD - Idle Time"},{"n":"XPPA - Patrol Script Marker"},{"t":3,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":8,"n":"Topic","c":[{"t":6,"n":"PDTO - Topic Data","c":[{"t":3,"n":"Type"},{"t":3,"n":"Topic"},{"t":2,"n":"Subtype"}]}]}]}]},{"t":3,"n":"XACT - Action Flag"},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"n":"ONAM - Open by Default"},{"t":6,"n":"Map Marker","c":[{"n":"XMRK - Map Marker Data"},{"t":3,"n":"FNAM - Map Flags"},{"t":2,"n":"FULL - Name"},{"t":6,"n":"TNAM - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"XATR - Attach Ref"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]},{"t":1,"n":"REGN - Region","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"RCLR - Map Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"n":"WNAM - Worldspace"},{"t":8,"n":"Region Areas","c":[{"t":6,"n":"Region Area","c":[{"t":3,"n":"RPLI - Edge Fall-off"},{"t":7,"n":"RPLD - Region Point List Data","c":[{"t":6,"n":"Point","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"}]}]}]}]},{"t":10,"n":"Region Data Entries","c":[{"t":6,"n":"Region Data Entry","c":[{"t":6,"n":"RDAT - Data Header","c":[{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":3,"n":"Priority"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"RDMO - Music"},{"t":7,"n":"RDSA - Sounds","c":[{"t":6,"n":"Sound","c":[{"t":3,"n":"Sound"},{"t":3,"n":"Flags"},{"t":5,"n":"Chance"}]}]},{"t":2,"n":"RDMP - Map Name"},{"t":7,"n":"RDOT - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Object"},{"t":3,"n":"Parent Index"},{"t":11,"n":"Unknown"},{"t":5,"n":"Density"},{"t":3,"n":"Clustering"},{"t":3,"n":"Min Slope"},{"t":3,"n":"Max Slope"},{"t":3,"n":"Flags"},{"t":3,"n":"Radius wrt Parent"},{"t":3,"n":"Radius"},{"t":5,"n":"Min Height"},{"t":5,"n":"Max Height"},{"t":5,"n":"Sink"},{"t":5,"n":"Sink Variance"},{"t":5,"n":"Size Variance"},{"t":6,"n":"Angle Variance","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"},{"t":3,"n":"Z"}]}]}]},{"t":7,"n":"RDGS - Grasses","c":[{"t":6,"n":"Grass","c":[{"t":3,"n":"Grass"},{"t":11,"n":"Unknown"}]}]},{"t":7,"n":"RDWT - Weather Types","c":[{"t":6,"n":"Weather Type","c":[{"t":3,"n":"Weather"},{"t":3,"n":"Chance"},{"t":3,"n":"Global"}]}]}]}]}]},{"t":1,"n":"RELA - Relationship","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Parent"},{"t":3,"n":"Child"},{"t":3,"n":"Rank"},{"t":11,"n":"Unknown"},{"t":3,"n":"Flags"},{"t":3,"n":"Association Type"}]}]},{"t":1,"n":"REVB - Reverb Parameters","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Decay Time (ms)"},{"t":3,"n":"HF Reference (Hz)"},{"t":3,"n":"Room Filter"},{"t":3,"n":"Room HF Filter"},{"t":3,"n":"Reflections"},{"t":3,"n":"Reverb Amp"},{"t":3,"n":"Decay HF Ratio"},{"t":3,"n":"Reflect Delay (ms), scaled"},{"t":3,"n":"Reverb Delay (ms)"},{"t":3,"n":"Diffusion %"},{"t":3,"n":"Density %"},{"t":3,"n":"Unknown"}]}]},{"t":1,"n":"RFCT - Visual Effect","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"DATA - Effect Data","c":[{"t":3,"n":"Effect Art"},{"t":3,"n":"Shader"},{"t":3,"n":"Flags"}]}]},{"t":1,"n":"RGDL","c":[{"t":2,"n":"EDID - Editor ID"}]},{"t":1,"n":"SCEN - Scene","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]},{"t":6,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"n":"Flags"},{"t":2,"n":"fileName"},{"t":7,"n":"Fragments","c":[{"t":6,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]},{"t":7,"n":"Phase Fragments","c":[{"t":6,"n":"Phase Fragment","c":[{"t":3,"n":"Phase Flag"},{"t":3,"n":"Phase Index"},{"t":3,"n":"Unknown"},{"t":2,"n":"scriptName"},{"t":2,"n":"fragmentName"}]}]}]}]},{"t":3,"n":"FNAM - Flags"},{"t":8,"n":"Phases","c":[{"t":6,"n":"Phase","c":[{"n":"HNAM - Marker Phase Start"},{"t":2,"n":"NAM0 - Name"},{"t":6,"n":"Start Conditions","c":[{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]},{"n":"NEXT - Marker"},{"t":6,"n":"Completion Conditions","c":[{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":3,"n":"WNAM - Editor Width"},{"n":"HNAM - Marker Phase End"}]}]},{"t":8,"n":"Actors","c":[{"t":6,"n":"Actor","c":[{"t":3,"n":"ALID - Actor ID"},{"t":3,"n":"LNAM - Flags"},{"t":3,"n":"DNAM - Behaviour Flags"}]}]},{"t":8,"n":"Actions","c":[{"t":6,"n":"Action","c":[{"t":3,"n":"ANAM - Type"},{"t":2,"n":"NAM0 - Name"},{"t":3,"n":"ALID - Actor ID"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"n":"INAM - Index"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"SNAM - Start Phase"},{"t":3,"n":"ENAM - End Phase"},{"t":5,"n":"SNAM - Timer Seconds"},{"t":8,"n":"Packages","c":[{"t":3,"n":"PNAM - Package"}]},{"t":3,"n":"DATA - Topic"},{"t":3,"n":"HTID - Headtrack Actor ID"},{"t":5,"n":"DMAX - Looping - Max"},{"t":5,"n":"DMIN - Looping - Min"},{"t":3,"n":"DEMO - Emotion Type"},{"t":3,"n":"DEVA - Emotion Value"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"n":"ANAM - End Marker"}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"n":"NEXT - Marker"},{"t":3,"n":"PNAM - Quest"},{"t":3,"n":"INAM - Last Action Index"},{"t":11,"n":"VNAM - Unknown"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"n":"SCOL","c":[{"t":2,"n":"EDID - Editor ID"}]},{"t":1,"n":"SCPT","c":[{"t":2,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCRL - Scroll","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":6,"n":"DATA - Item","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SHOU - Shout","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"MDOB - Menu Display Object"},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"n":"Words of Power","c":[{"t":6,"n":"SNAM - ","c":[{"t":3,"n":"Word"},{"t":3,"n":"Spell"},{"t":5,"n":"Recovery Time"}]}]}]},{"t":1,"n":"SLGM - Soul Gem","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":6,"n":"DATA - ","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"}]},{"t":3,"n":"SOUL - Contained Soul"},{"t":3,"n":"SLCP - Maximum Capacity"},{"t":3,"n":"NAM0 - Linked To"}]},{"t":1,"n":"SMBN - Story Manager Branch Node","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"PNAM - Parent "},{"t":3,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"}]},{"t":1,"n":"SMEN - Story Manager Event Node","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"PNAM - Parent "},{"t":3,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"},{"t":2,"n":"ENAM - Type"}]},{"t":1,"n":"SMQN - Story Manager Quest Node","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"PNAM - Parent "},{"t":3,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"n":"DNAM - Flags","c":[{"t":3,"n":"Node Flags"},{"t":3,"n":"Quest Flags"}]},{"t":3,"n":"XNAM - Max concurrent quests"},{"t":3,"n":"MNAM - Num quests to run"},{"t":3,"n":"QNAM - Quest Count"},{"t":10,"n":"Quests","c":[{"t":6,"n":"Quest","c":[{"t":3,"n":"NNAM - Quest"},{"t":11,"n":"FNAM - Unknown"},{"t":5,"n":"RNAM - Hours until reset"}]}]}]},{"t":1,"n":"SNCT - Sound Category","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":3,"n":"FNAM - Flags"},{"t":3,"n":"PNAM - Parent"},{"t":3,"n":"VNAM - Static Volume Multiplier"},{"t":3,"n":"UNAM - Default Menu Value"}]},{"t":1,"n":"SNDR - Sound Descriptor","c":[{"t":2,"n":"EDID - Editor ID"},{"t":11,"n":"CNAM - Unknown"},{"t":3,"n":"GNAM - Category"},{"t":3,"n":"SNAM - Alternate Sound For"},{"t":8,"n":"Sounds","c":[{"t":6,"n":"Sound Files","c":[{"t":2,"n":"ANAM - File Name"}]}]},{"t":3,"n":"ONAM - Output Model"},{"t":2,"n":"FNAM - String"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"n":"LNAM - Values","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Looping"},{"t":3,"n":"Rumble Send Value = (Small \/ 7) + ((Big \/ 7) * 16)"}]},{"t":6,"n":"BNAM - Values","c":[{"t":3,"n":"% Frequency Shift"},{"t":3,"n":"% Frequency Variance"},{"t":3,"n":"Priority"},{"t":3,"n":"db Variance"},{"t":3,"n":"Static Attenuation (db)"}]}]},{"t":1,"n":"SOPM - Sound Output Model","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NAM1 - Data","c":[{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":3,"n":"Reverb Send %"}]},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"MNAM - Type"},{"t":11,"n":"CNAM - Unknown"},{"t":11,"n":"SNAM - Unknown"},{"t":6,"n":"ONAM - Output Values","c":[{"t":7,"n":"Channels","c":[{"t":6,"n":"","c":[{"t":3,"n":"L"},{"t":3,"n":"R"},{"t":3,"n":"C"},{"t":3,"n":"LFE"},{"t":3,"n":"RL"},{"t":3,"n":"RR"},{"t":3,"n":"BL"},{"t":3,"n":"BR"}]}]}]},{"t":6,"n":"ANAM - Attenuation Values","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"Min Distance"},{"t":5,"n":"Max Distance"},{"t":7,"n":"Curve","c":[{"t":3,"n":"Value"}]}]}]},{"t":1,"n":"SOUN - Sound Marker","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":11,"n":"FNAM - Unknown"},{"t":11,"n":"SNDD - Unknown"},{"t":3,"n":"SDSC - Sound Descriptor"}]},{"t":1,"p":1,"n":"SPEL - Spell","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"MDOB - Menu Display Object"},{"t":3,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"n":"SPIT - Data","c":[{"t":3,"n":"Base Cost"},{"t":3,"n":"Flags"},{"t":3,"n":"Type"},{"t":5,"n":"Charge Time"},{"t":3,"n":"Cast Type"},{"t":3,"n":"Target Type"},{"t":5,"n":"Cast Duration"},{"t":5,"n":"Range"},{"t":3,"n":"Half-cost Perk"}]},{"t":8,"n":"Effects","c":[{"t":6,"n":"Effect","c":[{"t":3,"n":"EFID - Base Effect"},{"t":6,"n":"EFIT - ","c":[{"t":5,"n":"Magnitude"},{"t":3,"n":"Area"},{"t":3,"n":"Duration"}]},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"n":"SPGD - Shader Particle Geometry","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"Data","c":[{"t":5,"n":"Gravity Velocity"},{"t":11,"n":"Unknown"},{"t":5,"n":"Rotation Velocity"},{"t":5,"n":"Particle Size X"},{"t":5,"n":"Center Offset Min"},{"t":5,"n":"Particle Size Y"},{"t":5,"n":"Center Offset Max"},{"t":5,"n":"Initial Rotation"},{"t":3,"n":"# of Subtextures X"},{"t":3,"n":"# of Subtextures Y"},{"t":3,"n":"Type"},{"t":3,"n":"Box Size"},{"t":5,"n":"Particle Density"}]},{"t":2,"n":"ICON - Particle Texture"}]},{"t":1,"n":"STAT - Static","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"DNAM - Direction Material","c":[{"t":5,"n":"Max Angle (30-120)"},{"t":3,"n":"Material"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":7,"n":"MNAM - Distant LOD","c":[{"t":6,"n":"LOD","c":[{"t":2,"n":"Mesh"}]}]}]},{"t":1,"n":"TACT - Talking Activator","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"n":"VNAM - Voice Type"}]},{"t":1,"n":"TES4 - Main File Header","c":[{"t":6,"n":"HEDR - Header","c":[{"t":5,"n":"Version"},{"t":3,"n":"Number of Records"},{"t":3,"n":"Next Object ID"}]},{"t":11,"n":"OFST - Unknown"},{"t":11,"n":"DELE - Unknown"},{"t":2,"n":"CNAM - Author"},{"t":2,"n":"SNAM - Description"},{"t":8,"n":"Master Files","c":[{"t":6,"n":"Master File","c":[{"t":2,"n":"MAST - Filename"},{"t":11,"n":"DATA - Unknown"}]}]},{"t":7,"n":"ONAM - Overridden Forms","c":[{"t":3,"n":"Form"}]},{"t":11,"n":"SCRN - Screenshot"},{"t":11,"n":"INTV - Unknown"},{"t":11,"n":"INCC - Unknown"}]},{"t":1,"n":"TREE - Tree","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":3,"n":"PFIG - Ingredient"},{"t":3,"n":"SNAM - Harvest Sound"},{"t":6,"n":"PFPC - Ingredient Production","c":[{"t":3,"n":"Spring"},{"t":3,"n":"Summer"},{"t":3,"n":"Fall"},{"t":3,"n":"Winter"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"CNAM - Tree Data","c":[{"t":5,"n":"Trunk Flexibility"},{"t":5,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"n":"Leaf Amplitude"},{"t":5,"n":"Leaf Frequency"}]}]},{"t":1,"n":"TXST - Texture Set","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":6,"n":"Textures (RGB\/A)","c":[{"t":2,"n":"TX00 - Difuse"},{"t":2,"n":"TX01 - Normal\/Gloss"},{"t":2,"n":"TX02 - Environment Mask\/Subsurface Tint"},{"t":2,"n":"TX03 - Glow\/Detail Map"},{"t":2,"n":"TX04 - Height"},{"t":2,"n":"TX05 - Environment"},{"t":2,"n":"TX06 - Multilayer"},{"t":2,"n":"TX07 - Backlight Mask\/Specular"}]},{"t":6,"n":"DODT - Decal Data","c":[{"t":5,"n":"Min Width"},{"t":5,"n":"Max Width"},{"t":5,"n":"Min Height"},{"t":5,"n":"Max Height"},{"t":5,"n":"Depth"},{"t":5,"n":"Shininess"},{"t":6,"n":"Parallax","c":[{"t":5,"n":"Scale"},{"t":3,"n":"Passes"}]},{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":6,"n":"Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"DNAM - Flags"}]},{"t":1,"n":"VOLI - Volumetric Lighting","c":[{"t":2,"n":"EDID - Editor ID"},{"t":5,"n":"CNAM - Intensity"},{"t":5,"n":"DNAM - Custom Color - Contribution"},{"t":5,"n":"ENAM - Red"},{"t":5,"n":"FNAM - Green"},{"t":5,"n":"GNAM - Blue"},{"t":5,"n":"HNAM - Density - Contribution"},{"t":5,"n":"INAM - Density - Size"},{"t":5,"n":"JNAM - Density - Wind Speed"},{"t":5,"n":"KNAM - Density - Falling Speed"},{"t":5,"n":"LNAM - Phase Function - Contribution"},{"t":5,"n":"MNAM - Phase Function - Scattering"},{"t":5,"n":"NNAM - Sampling Repartition - Range Factor"}]},{"t":1,"n":"VTYP - Voice Type","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"DNAM - Flags"}]},{"t":1,"n":"WATR - Water","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":8,"n":"Unused","c":[{"t":2,"n":"NNAM - Noise Map"}]},{"t":3,"n":"ANAM - Opacity"},{"t":3,"n":"FNAM - Flags"},{"t":11,"n":"MNAM - Unused"},{"t":3,"n":"TNAM - Material"},{"t":3,"n":"SNAM - Open Sound"},{"t":3,"n":"XNAM - Spell"},{"t":3,"n":"INAM - Image Space"},{"t":3,"n":"DATA - Damage Per Second"},{"t":6,"n":"DNAM - Visual Data","c":[{"t":5,"n":"Unknown"},{"t":5,"n":"Specular Properties - Sun Specular Power"},{"t":5,"n":"Water Properties - Reflectivity Amount"},{"t":5,"n":"Water Properties - Fresnel Amount"},{"t":5,"n":"Fog Properties - Above Water - Fog Distance - Near Plane"},{"t":5,"n":"Fog Properties - Above Water - Fog Distance - Far Plane"},{"t":6,"n":"Shallow Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Deep Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Reflection Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Displacement Simulator - Starting Size"},{"t":5,"n":"Displacement Simulator - Force"},{"t":5,"n":"Displacement Simulator - Velocity"},{"t":5,"n":"Displacement Simulator - Falloff"},{"t":5,"n":"Displacement Simulator - Dampner"},{"t":5,"n":"Noise Properties - Noise Falloff"},{"t":5,"n":"Noise Properties - Layer One - Wind Direction"},{"t":5,"n":"Noise Properties - Layer Two - Wind Direction"},{"t":5,"n":"Noise Properties - Layer Three - Wind Direction"},{"t":5,"n":"Noise Properties - Layer One - Wind Speed"},{"t":5,"n":"Noise Properties - Layer Two - Wind Speed"},{"t":5,"n":"Noise Properties - Layer Three - Wind Speed"},{"t":5,"n":"Fog Properties - Above Water - Fog Amount"},{"t":5,"n":"Fog Properties - Under Water - Fog Amount"},{"t":5,"n":"Fog Properties - Under Water - Fog Distance - Near Plane"},{"t":5,"n":"Fog Properties - Under Water - Fog Distance - Far Plane"},{"t":5,"n":"Water Properties - Refraction Magnitude"},{"t":5,"n":"Specular Properties - Specular Power"},{"t":5,"n":"Specular Properties - Specular Radius"},{"t":5,"n":"Specular Properties - Specular Brightness"},{"t":5,"n":"Noise Properties - Layer One - UV Scale"},{"t":5,"n":"Noise Properties - Layer Two - UV Scale"},{"t":5,"n":"Noise Properties - Layer Three - UV Scale"},{"t":5,"n":"Noise Properties - Layer One - Amplitude Scale"},{"t":5,"n":"Noise Properties - Layer Two - Amplitude Scale"},{"t":5,"n":"Noise Properties - Layer Three - Amplitude Scale"},{"t":5,"n":"Water Properties - Reflection Magnitude"},{"t":5,"n":"Specular Properties - Sun Sparkle Magnitude"},{"t":5,"n":"Specular Properties - Sun Specular Magnitude"},{"t":5,"n":"Depth Properties - Reflections"},{"t":5,"n":"Depth Properties - Refraction"},{"t":5,"n":"Depth Properties - Normals"},{"t":5,"n":"Depth Properties - Specular Lighting"},{"t":5,"n":"Specular Properties - Sun Sparkle Power"},{"t":5,"n":"Noise Properties - Flowmap Scale"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"n":"NAM0 - Linear Velocity","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"NAM1 - Angular Velocity","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":2,"n":"NAM2 - Noise Layer One - Noise Texture"},{"t":2,"n":"NAM3 - Noise Layer Two - Noise Texture"},{"t":2,"n":"NAM4 - Noise Layer Three - Noise Texture"},{"t":2,"n":"NAM5 - Flow Normals - Noise Texture"}]},{"t":1,"p":1,"n":"WEAP - Weapon","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":6,"n":"OBND - Object Bounds","c":[{"t":3,"n":"X1"},{"t":3,"n":"Y1"},{"t":3,"n":"Z1"},{"t":3,"n":"X2"},{"t":3,"n":"Y2"},{"t":3,"n":"Z2"}]},{"t":2,"n":"FULL - Name"},{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":6,"n":"Icon","c":[{"t":2,"n":"ICON - Large Icon filename"},{"t":2,"n":"MICO - Small Icon filename"}]},{"t":3,"n":"EITM - Object Effect"},{"t":3,"n":"EAMT - Enchantment Amount"},{"t":6,"n":"Destructable","c":[{"t":6,"n":"DEST - Header","c":[{"t":3,"n":"Health"},{"t":3,"n":"DEST Count"},{"t":3,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"n":"Stages","c":[{"t":6,"n":"Stage","c":[{"t":6,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"n":"Health %"},{"t":3,"n":"Index"},{"t":3,"n":"Model Damage Stage"},{"t":3,"n":"Flags"},{"t":3,"n":"Self Damage per Second"},{"t":3,"n":"Explosion"},{"t":3,"n":"Debris"},{"t":3,"n":"Debris Count"}]},{"t":6,"n":"Model","c":[{"t":2,"n":"DMDL - Model Filename"},{"t":11,"n":"DMDT - Texture Files Hashes"},{"t":7,"n":"DMDS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"ETYP - Equipment Type"},{"t":3,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"n":"BAMT - Alternate Block Material"},{"t":3,"n":"YNAM - Sound - Pick Up"},{"t":3,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"n":"Has Scope","c":[{"t":2,"n":"MOD3 - Model Filename"},{"t":11,"n":"MO3T - Texture Files Hashes"},{"t":7,"n":"MO3S - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"n":"INAM - Impact Data Set"},{"t":3,"n":"WNAM - 1st Person Model Object"},{"t":3,"n":"SNAM - Attack Sound"},{"t":3,"n":"XNAM - Attack Sound 2D"},{"t":3,"n":"NAM7 - Attack Loop Sound"},{"t":3,"n":"TNAM - Attack Fail Sound"},{"t":3,"n":"UNAM - Idle Sound"},{"t":3,"n":"NAM9 - Equip Sound"},{"t":3,"n":"NAM8 - Unequip Sound"},{"t":6,"n":"DATA - Game Data","c":[{"t":3,"n":"Value"},{"t":5,"n":"Weight"},{"t":3,"n":"Damage"}]},{"t":6,"n":"DNAM - Data","c":[{"t":3,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Speed"},{"t":5,"n":"Reach"},{"t":3,"n":"Flags"},{"t":5,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"n":"Base VATS To-Hit Chance"},{"t":3,"n":"Attack Animation"},{"t":3,"n":"# Projectiles"},{"t":3,"n":"Embedded Weapon AV (unused)"},{"t":5,"n":"Range Min"},{"t":5,"n":"Range Max"},{"t":3,"n":"On Hit"},{"t":3,"n":"Flags2"},{"t":5,"n":"Animation Attack Mult"},{"t":5,"n":"Rumble - Left Motor Strength"},{"t":5,"n":"Rumble - Right Motor Strength"},{"t":5,"n":"Rumble - Duration"},{"t":3,"n":"Skill"},{"t":3,"n":"Resist"},{"t":5,"n":"Stagger"}]},{"t":6,"n":"CRDT - Critical Data","c":[{"t":3,"n":"Damage"},{"t":11,"n":"Unknown"},{"t":5,"n":"% Mult"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"n":"Effect"}]},{"t":3,"n":"VNAM - Detection Sound Level"},{"t":3,"n":"CNAM - Template"}]},{"t":1,"n":"WOOP - Word of Power","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"FULL - Name"},{"t":2,"n":"TNAM - Translation"}]},{"t":1,"n":"WRLD - Worldspace","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Large References","c":[{"t":6,"n":"RNAM - Grid","c":[{"t":3,"n":"Y"},{"t":3,"n":"X"},{"t":7,"n":"References","c":[{"t":6,"n":"Reference","c":[{"t":3,"n":"Ref"},{"t":3,"n":"Y"},{"t":3,"n":"X"}]}]}]}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"n":"FULL - Name"},{"t":6,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":3,"n":"LTMP - Interior Lighting"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":3,"n":"XLCN - Location"},{"t":6,"n":"Parent","c":[{"t":3,"n":"WNAM - Worldspace"},{"t":6,"n":"PNAM - ","c":[{"t":3,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":3,"n":"CNAM - Climate"},{"t":3,"n":"NAM2 - Water"},{"t":3,"n":"NAM3 - LOD Water Type"},{"t":5,"n":"NAM4 - LOD Water Height"},{"t":6,"n":"DNAM - Land Data","c":[{"t":5,"n":"Default Land Height"},{"t":5,"n":"Default Water Height"}]},{"t":2,"n":"ICON - Map Image"},{"t":6,"n":"Cloud Model","c":[{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":6,"n":"MNAM - Map Data","c":[{"t":6,"n":"Usable Dimensions","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":6,"n":"Cell Coordinates","c":[{"t":6,"n":"NW Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]},{"t":6,"n":"SE Cell","c":[{"t":3,"n":"X"},{"t":3,"n":"Y"}]}]},{"t":6,"n":"Camera Data","c":[{"t":5,"n":"Min Height"},{"t":5,"n":"Max Height"},{"t":5,"n":"Initial Pitch"}]}]},{"t":6,"n":"ONAM - World Map Offset Data","c":[{"t":5,"n":"World Map Scale"},{"t":5,"n":"Cell X Offset"},{"t":5,"n":"Cell Y Offset"},{"t":5,"n":"Cell Z Offset"}]},{"t":5,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"n":"DATA - Flags"},{"t":6,"n":"Object Bounds","c":[{"t":6,"n":"NAM0 - Min","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"}]},{"t":6,"n":"NAM9 - Max","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"}]}]},{"t":3,"n":"ZNAM - Music"},{"t":2,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"n":"XNAM - Water Noise Texture"},{"t":2,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"n":"UNAM - HD LOD Normal Texture"},{"t":2,"n":"XWEM - Water Environment Map (unused)"},{"t":11,"n":"OFST - Offset Data"}]},{"t":1,"n":"WTHR - Weather","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"DNAM - Unused"},{"t":11,"n":"CNAM - Unused"},{"t":11,"n":"ANAM - Unused"},{"t":11,"n":"BNAM - Unused"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"n":"MNAM - Precipitation Type"},{"t":3,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"n":"Cloud Speed","c":[{"t":7,"n":"RNAM - Y Speed","c":[{"t":3,"n":"Layer"}]},{"t":7,"n":"QNAM - X Speed","c":[{"t":3,"n":"Layer"}]}]},{"t":7,"n":"PNAM - Cloud Colors","c":[{"t":6,"n":"Layer","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"n":"JNAM - Cloud Alphas","c":[{"t":6,"n":"Layer","c":[{"t":5,"n":"Sunrise"},{"t":5,"n":"Day"},{"t":5,"n":"Sunset"},{"t":5,"n":"Night"}]}]},{"t":6,"n":"NAM0 - Weather Colors","c":[{"t":6,"n":"Sky-Upper","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Fog Near","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Ambient","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sunlight","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sun","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Stars","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sky-Lower","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Horizon","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Effect Lighting","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Cloud LOD Diffuse","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Cloud LOD Ambient","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Fog Far","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sky Statics","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Water Multiplier","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Sun Glare","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Moon Glare","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":6,"n":"FNAM - Fog Distance","c":[{"t":5,"n":"Day - Near"},{"t":5,"n":"Day - Far"},{"t":5,"n":"Night - Near"},{"t":5,"n":"Night - Far"},{"t":5,"n":"Day - Power"},{"t":5,"n":"Night - Power"},{"t":5,"n":"Day - Max"},{"t":5,"n":"Night - Max"}]},{"t":6,"n":"DATA - Data","c":[{"t":3,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"n":"Trans Delta"},{"t":3,"n":"Sun Glare"},{"t":3,"n":"Sun Damage"},{"t":3,"n":"Precipitation - Begin Fade In"},{"t":3,"n":"Precipitation - End Fade Out"},{"t":3,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"n":"Thunder\/Lightning - Frequency"},{"t":3,"n":"Flags"},{"t":6,"n":"Lightning Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"}]},{"t":3,"n":"Visual Effect - Begin"},{"t":3,"n":"Visual Effect - End"},{"t":3,"n":"Wind Direction"},{"t":3,"n":"Wind Direction Range"}]},{"t":3,"n":"NAM1 - Disabled Cloud Layers"},{"t":8,"n":"Sounds","c":[{"t":6,"n":"SNAM - Sound","c":[{"t":3,"n":"Sound"},{"t":3,"n":"Type"}]}]},{"t":8,"n":"Sky Statics","c":[{"t":3,"n":"TNAM - Static"}]},{"t":6,"n":"IMSP - Image Spaces","c":[{"t":3,"n":"Sunrise"},{"t":3,"n":"Day"},{"t":3,"n":"Sunset"},{"t":3,"n":"Night"}]},{"t":6,"n":"HNAM - Volumetric Lighting","c":[{"t":3,"n":"Sunrise"},{"t":3,"n":"Day"},{"t":3,"n":"Sunset"},{"t":3,"n":"Night"}]},{"t":6,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"n":"DALC - Sunrise","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"DALC - Day","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"DALC - Sunset","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]},{"t":6,"n":"DALC - Night","c":[{"t":6,"n":"Directional","c":[{"t":6,"n":"X+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"X-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Y-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z+","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Z-","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Specular","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"n":"Scale"}]}]},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":6,"n":"Aurora","c":[{"t":6,"n":"Model","c":[{"t":2,"n":"MODL - Model Filename"},{"t":11,"n":"MODT - Texture Files Hashes"},{"t":7,"n":"MODS - Alternate Textures","c":[{"t":6,"n":"Alternate Texture","c":[{"t":2,"n":"3D Name"},{"t":3,"n":"New Texture"},{"t":3,"n":"3D Index"}]}]}]}]},{"t":3,"n":"GNAM - Sun Glare Lens Flare"}]},{"t":1,"n":"ACHR - Placed NPC","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"n":"Version"},{"t":3,"n":"Object Format"},{"t":7,"n":"Scripts","c":[{"t":6,"n":"Script","c":[{"t":2,"n":"scriptName"},{"t":3,"n":"Flags"},{"t":7,"n":"Properties","c":[{"t":6,"n":"Property","c":[{"t":2,"n":"propertyName"},{"t":3,"n":"Type"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"n":"String"},{"t":3,"n":"Int32"},{"t":5,"n":"Float"},{"t":3,"n":"Bool"},{"t":7,"n":"Array of Object","c":[{"t":6,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"n":"Alias"},{"t":3,"n":"FormID"}]},{"t":6,"n":"Object v1","c":[{"t":3,"n":"FormID"},{"t":3,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"n":"Array of String","c":[{"t":2,"n":"Element"}]},{"t":7,"n":"Array of Int32","c":[{"t":3,"n":"Element"}]},{"t":7,"n":"Array of Float","c":[{"t":5,"n":"Element"}]},{"t":7,"n":"Array of Bool","c":[{"t":3,"n":"Element"}]}]}]}]}]}]},{"t":3,"n":"NAME - Base"},{"t":3,"n":"XEZN - Encounter Zone"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":6,"n":"Patrol Data","c":[{"t":5,"n":"XPRD - Idle Time"},{"n":"XPPA - Patrol Script Marker"},{"t":3,"n":"INAM - Idle"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":8,"n":"Topic","c":[{"t":6,"n":"PDTO - Topic Data","c":[{"t":3,"n":"Type"},{"t":3,"n":"Topic"},{"t":2,"n":"Subtype"}]}]},{"t":3,"n":"TNAM - Topic"}]},{"t":3,"n":"XLCM - Level Modifier"},{"t":3,"n":"XMRC - Merchant Container"},{"t":3,"n":"XCNT - Count"},{"t":5,"n":"XRDS - Radius"},{"t":5,"n":"XHLP - Health"},{"t":8,"n":"Linked References","c":[{"t":6,"n":"XLKR - Linked Reference","c":[{"t":3,"n":"Keyword\/Ref"},{"t":3,"n":"Ref"}]}]},{"t":6,"n":"Activate Parents","c":[{"t":3,"n":"XAPD - Flags"},{"t":8,"n":"Activate Parent Refs","c":[{"t":6,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"n":"Reference"},{"t":5,"n":"Delay"}]}]}]},{"t":6,"n":"XCLP - Linked Reference Color","c":[{"t":6,"n":"Link Start Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Link End Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"XLCN - Persistent Location"},{"t":3,"n":"XLRL - Location Reference"},{"n":"XIS2 - Ignored by Sandbox"},{"t":7,"n":"XLRT - Location Ref Type","c":[{"t":3,"n":"Ref"}]},{"t":3,"n":"XHOR - Horse"},{"t":5,"n":"XHTW - Head-Tracking Weight"},{"t":5,"n":"XFVC - Favor Cost"},{"t":6,"n":"XESP - Enable Parent","c":[{"t":3,"n":"Reference"},{"t":3,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Ownership","c":[{"t":3,"n":"XOWN - Owner"},{"t":3,"n":"XRNK - Faction rank"}]},{"t":3,"n":"XEMI - Emittance"},{"t":3,"n":"XMBR - MultiBound Reference"},{"n":"XIBS - Ignored By Sandbox"},{"t":5,"n":"XSCL - Scale"},{"t":6,"n":"DATA - Position\/Rotation","c":[{"t":6,"n":"Position","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]},{"t":6,"n":"Rotation","c":[{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"}]}]}]}]},"name":"Bash.Text","hash":"45E8ACFA","color":255}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Bash.Voice-F.json b/frontend/settings/Skyrim/Bash.Voice-F.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Bash.Voice-M.json b/frontend/settings/Skyrim/Bash.Voice-M.json
old mode 100644
new mode 100755
diff --git a/frontend/settings/Skyrim/Smash.All.json b/frontend/settings/Skyrim/Smash.All.json
old mode 100644
new mode 100755
index bc8092a..052547a
--- a/frontend/settings/Skyrim/Smash.All.json
+++ b/frontend/settings/Skyrim/Smash.All.json
@@ -1 +1 @@
-{"records":"AACT,ACTI,ADDN,ALCH,AMMO,ANIO,APPA,ARMA,ARMO,ARTO,ASPC,ASTP,AVIF,BOOK,BPTD,CAMS,CELL,CLAS,CLDC,CLFM,CLMT,COBJ,COLL,CONT,CPTH,CSTY,DEBR,DIAL,DLBR,DLVW,DOOR,DUAL,ECZN,EFSH,ENCH,EQUP,EXPL,EYES,FACT,FLOR,FLST,FSTP,FSTS,FURN,GLOB,GMST,GRAS,HAIR,HAZD,HDPT,IDLM,IMAD,IMGS,INFO,INGR,IPCT,IPDS,KEYM,KYWD,LAND,LCRT,LENS,LGTM,LIGH,LSCR,LTEX,LVLI,LVLN,LVSP,MATO,MATT,MESG,MGEF,MISC,MOVT,MSTT,MUSC,MUST,NPC_,OTFT,PACK,PARW,PBAR,PBEA,PCON,PERK,PFLA,PGRE,PHZD,PMIS,PROJ,PWAT,QUST,RACE,REFR,REGN,RELA,REVB,RFCT,RGDL,SCEN,SCOL,SCPT,SCRL,SHOU,SLGM,SMBN,SMEN,SMQN,SNCT,SNDR,SOPM,SOUN,SPEL,SPGD,STAT,TACT,TREE,TXST,VOLI,VTYP,WATR,WEAP,WOOP,WRLD,WTHR,ACHR","description":"Smashes all the things. Produced using autoset attributes on all record types found in Skyrim.esm and DLCs. Replaces the old \"Automatic\" setting.\r\n\r\nLast updated 04\/14\/2018.","tree":{"records":[{"t":1,"p":1,"n":"AACT - Action","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"ACTI - Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"PNAM - Marker Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"SNAM - Sound - Looping"},{"t":3,"p":1,"n":"VNAM - Sound - Activation"},{"t":3,"p":1,"n":"WNAM - Water Type"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"}]},{"t":1,"p":1,"n":"ADDN - Addon Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DATA - Node Index"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Master Particle System Cap"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Addiction"},{"t":5,"p":1,"n":"Addiction Chance"},{"t":3,"p":1,"n":"Sound - Consume"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Damage"},{"t":3,"p":1,"n":"Value"}]},{"t":2,"p":1,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"ANIO - Animated Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":2,"p":1,"n":"BNAM - Unload Event"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"QUAL - Quality"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BODT - Body Template","lf":"BODT - Body Template"},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BOD2 - Biped Body Template","lf":"BOD2 - Biped Body Template"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Male Priority"},{"t":3,"p":1,"n":"Female Priority"},{"t":3,"p":1,"n":"Weight slider - Male"},{"t":3,"p":1,"n":"Weight slider - Female"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Detection Sound Value"},{"t":5,"p":1,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO2S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO3S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO4S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model Filename"},{"t":11,"p":1,"n":"MO5T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO5S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"NAM0 - Male Skin Texture"},{"t":3,"p":1,"n":"NAM1 - Female Skin texture"},{"t":3,"p":1,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"p":1,"n":"NAM3 - Female Skin Texture Swap List"},{"t":8,"s":1,"p":1,"n":"Additional Races","d":1,"c":[{"t":3,"p":1,"n":"MODL - Race"}]},{"t":3,"p":1,"n":"SNDD - Footstep Sound"},{"t":3,"p":1,"n":"ONAM - Art Object"}]},{"t":1,"p":1,"n":"ARMO - Armor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO2S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO4S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon 2 (female)","c":[{"t":2,"p":1,"n":"ICO2 - Large Icon filename"},{"t":2,"p":1,"n":"MIC2 - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BODT - Body Template","lf":"BODT - Body Template"},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BOD2 - Biped Body Template","lf":"BOD2 - Biped Body Template"},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Armature","d":1,"c":[{"t":3,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"DNAM - Armor Rating"},{"t":3,"p":1,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"ARTO - Art Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"ASPC - Acoustic Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SNAM - Ambient Sound"},{"t":3,"p":1,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"p":1,"n":"BNAM - Environment Type (reverb)"}]},{"t":1,"p":1,"n":"ASTP - Association Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MPRT - Male Parent Title"},{"t":2,"p":1,"n":"FPRT - Female Parent Title"},{"t":2,"p":1,"n":"MCHT - Male Child Title"},{"t":2,"p":1,"n":"FCHT - Female Child Title"},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ANAM - Abbreviation"},{"t":11,"n":"CNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"AVSK - Skill","c":[{"t":5,"p":1,"n":"Skill Use Mult"},{"t":5,"p":1,"n":"Skill Offset Mult"},{"t":5,"p":1,"n":"Skill Improve Mult"},{"t":5,"p":1,"n":"Skill Improve Offset"}]},{"t":8,"s":1,"p":1,"n":"Perk Tree","d":1,"c":[{"t":6,"p":1,"n":"Node","c":[{"t":3,"p":1,"n":"PNAM - Perk"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"XNAM - Perk-Grid X"},{"t":3,"p":1,"n":"YNAM - Perk-Grid Y"},{"t":5,"p":1,"n":"HNAM - Horizontal Position"},{"t":5,"p":1,"n":"VNAM - Vertical Position"},{"t":3,"p":1,"n":"SNAM - Associated Skill"},{"t":8,"p":1,"n":"Connections","c":[{"t":3,"p":1,"n":"CNAM - Line to Index"}]},{"t":3,"p":1,"n":"INAM - Index"}]}]}]},{"t":1,"p":1,"n":"BOOK - Book","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":2,"p":1,"n":"DESC - Book Text"},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"INAM - Inventory Art"},{"t":2,"p":1,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"BPTD - Body Part Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":10,"p":1,"n":"Body Parts","d":1,"c":[{"t":6,"p":1,"n":"Body Part","c":[{"t":2,"p":1,"n":"BPTN - Part Name"},{"t":2,"p":1,"n":"PNAM - Pose Matching"},{"t":2,"p":1,"n":"BPNN - Part Node"},{"t":2,"p":1,"n":"BPNT - VATS Target"},{"t":2,"p":1,"n":"BPNI - IK Data - Start Node"},{"t":6,"p":1,"n":"BPND - ","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Part Type"},{"t":3,"p":1,"n":"Health Percent"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"To Hit Chance"},{"t":3,"p":1,"n":"Explodable - Explosion Chance %"},{"t":3,"p":1,"n":"Explodable - Debris Count"},{"t":3,"p":1,"n":"Explodable - Debris"},{"t":3,"p":1,"n":"Explodable - Explosion"},{"t":5,"p":1,"n":"Tracking Max Angle"},{"t":5,"p":1,"n":"Explodable - Debris Scale"},{"t":3,"p":1,"n":"Severable - Debris Count"},{"t":3,"p":1,"n":"Severable - Debris"},{"t":3,"p":1,"n":"Severable - Explosion"},{"t":5,"p":1,"n":"Severable - Debris Scale"},{"t":6,"p":1,"n":"Gore Effects Positioning","c":[{"t":6,"p":1,"n":"Translate","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Severable - Impact DataSet"},{"t":3,"p":1,"n":"Explodable - Impact DataSet"},{"t":3,"p":1,"n":"Severable - Decal Count"},{"t":3,"p":1,"n":"Explodable - Decal Count"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Limb Replacement Scale"}]},{"t":2,"p":1,"n":"NAM1 - Limb Replacement Model"},{"t":2,"p":1,"n":"NAM4 - Gore Effects - Target Bone"},{"t":11,"p":1,"n":"NAM5 - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"CAMS - Camera Shot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Action"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Time Multipliers","c":[{"t":5,"p":1,"n":"Player"},{"t":5,"p":1,"n":"Target"},{"t":5,"p":1,"n":"Global"}]},{"t":5,"p":1,"n":"Max Time"},{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Target % Between Actors"},{"t":5,"p":1,"n":"Near Target Distance"}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"}]},{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"XCLC - Grid","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Force Hide Land"}]},{"t":6,"s":1,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Ambient Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":3,"p":1,"n":"Inherits"}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"p":1,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":2,"p":1,"n":"XNAM - Water Noise Texture"},{"t":7,"p":1,"n":"XCLR - Regions","c":[{"t":3,"p":1,"n":"Region"}]},{"t":3,"p":1,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XILL - Lock List"},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"p":1,"n":"XCAS - Acoustic Space"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"}]},{"t":1,"p":1,"n":"CLAS - Class","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Teaches"},{"t":3,"p":1,"n":"Maximum training level"},{"t":7,"p":1,"n":"Skill Weights","c":[{"t":3,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"Bleedout Default"},{"t":3,"p":1,"n":"Voice Points"},{"t":7,"p":1,"n":"Attribute Weights","c":[{"t":3,"p":1,"n":"Weight"}]}]}]},{"t":1,"p":1,"n":"CLDC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"CLFM - Color","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"FNAM - Playable"}]},{"t":1,"p":1,"n":"CLMT - Climate","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"WLST - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":2,"p":1,"n":"FNAM - Sun Texture"},{"t":2,"p":1,"n":"GNAM - Sun Glare Texture"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"TNAM - Timing","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":3,"p":1,"n":"Volatility"},{"t":3,"p":1,"n":"Moons \/ Phase Length"}]}]},{"t":1,"p":1,"n":"COBJ - Constructible Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"CNAM - Created Object"},{"t":3,"p":1,"n":"BNAM - Workbench Keyword"},{"t":3,"p":1,"n":"NAM1 - Created Object Count"}]},{"t":1,"p":1,"n":"COLL - Collision Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"BNAM - Index"},{"t":6,"s":1,"p":1,"n":"FNAM - Debug Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"GNAM - Flags"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":3,"n":"INTV - Interactables Count"},{"t":7,"p":1,"n":"CNAM - Collides With","c":[{"t":3,"p":1,"n":"Forms"}]}]},{"t":1,"p":1,"n":"CONT - Container","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"CPTH - Camera Path","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"ANAM - Related Camera Paths","c":[{"t":3,"p":1,"n":"Related Camera Path"}]},{"t":3,"p":1,"n":"DATA - Camera Zoom"},{"t":8,"s":1,"p":1,"n":"Camera Shots","d":1,"c":[{"t":3,"p":1,"n":"SNAM - Camera Shot"}]}]},{"t":1,"p":1,"n":"CSTY - Combat Style","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CSGD - General","c":[{"t":5,"p":1,"n":"Offensive Mult"},{"t":5,"p":1,"n":"Defensive Mult"},{"t":5,"p":1,"n":"Group Offensive Mult"},{"t":5,"p":1,"n":"Equipment Score Mult - Melee"},{"t":5,"p":1,"n":"Equipment Score Mult - Magic"},{"t":5,"p":1,"n":"Equipment Score Mult - Ranged"},{"t":5,"p":1,"n":"Equipment Score Mult - Shout"},{"t":5,"p":1,"n":"Equipment Score Mult - Unarmed"},{"t":5,"p":1,"n":"Equipment Score Mult - Staff"},{"t":5,"p":1,"n":"Avoid Threat Chance"}]},{"t":11,"n":"CSMD - Unknown"},{"t":6,"s":1,"p":1,"n":"CSME - Melee","c":[{"t":5,"p":1,"n":"Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Blocking Mult"},{"t":5,"p":1,"n":"Bash Mult"},{"t":5,"p":1,"n":"Bash Recoil Mult"},{"t":5,"p":1,"n":"Bash Attack Mult"},{"t":5,"p":1,"n":"Bash Power Attack Mult"},{"t":5,"p":1,"n":"Special Attack Mult"}]},{"t":6,"s":1,"p":1,"n":"CSCR - Close Range","c":[{"t":5,"p":1,"n":"Circle Mult"},{"t":5,"p":1,"n":"Fallback Mult"},{"t":5,"p":1,"n":"Flank Distance"},{"t":5,"p":1,"n":"Stalk Time"}]},{"t":6,"s":1,"p":1,"n":"CSLR - Long Range","c":[{"t":5,"p":1,"n":"Strafe Mult"}]},{"t":6,"s":1,"p":1,"n":"CSFL - Flight","c":[{"t":5,"p":1,"n":"Hover Chance"},{"t":5,"p":1,"n":"Dive Bomb Chance"},{"t":5,"p":1,"n":"Ground Attack Chance"},{"t":5,"p":1,"n":"Hover Time"},{"t":5,"p":1,"n":"Ground Attack Time"},{"t":5,"p":1,"n":"Perch Attack Chance"},{"t":5,"p":1,"n":"Perch Attack Time"},{"t":5,"p":1,"n":"Flying Attack Chance"}]},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"DEBR - Debris","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model Filename"},{"t":3,"p":1,"n":"Flags"}]},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"p":1,"n":"PNAM - Priority"},{"t":3,"p":1,"n":"BNAM - Branch"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Topic Flags"},{"t":3,"p":1,"n":"Category"},{"t":3,"p":1,"n":"Subtype"}]},{"t":2,"p":1,"n":"SNAM - Subtype Name"},{"t":3,"p":1,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DLBR - Dialog Branch","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"n":"TNAM - Unknown"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Starting Topic"}]},{"t":1,"p":1,"n":"DLVW - Dialog View","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Branches","d":1,"c":[{"t":3,"p":1,"n":"BNAM - Branch"}]},{"t":8,"n":"Unknown TNAM","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"TNAM - Unknown"}]}]},{"t":11,"n":"ENAM - Unknown"},{"t":11,"n":"DNAM - Unknown"}]},{"t":1,"n":"DOBJ - Default Object Manager","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"DNAM - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Use"},{"t":3,"n":"Object ID"}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"ANAM - Sound - Close"},{"t":3,"p":1,"n":"BNAM - Sound - Loop"},{"t":3,"p":1,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"DUAL - Dual Cast Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Effect Shader"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Inherit Scale"}]}]},{"t":1,"p":1,"n":"ECZN - Encounter Zone","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Min Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Max Level"}]}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture"},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}]}]},{"t":1,"p":1,"n":"ENCH - Object Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Enchantment Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Enchantment Amount"},{"t":3,"p":1,"n":"Target Type"},{"t":3,"p":1,"n":"Enchant Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Base Enchantment"},{"t":3,"p":1,"n":"Worn Restrictions"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"EQUP - Equip Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"PNAM - Slot Parents","c":[{"t":3,"p":1,"n":"Can Be Equipped"}]},{"t":3,"p":1,"n":"DATA - Use All Parents"}]},{"t":1,"p":1,"n":"EXPL - Explosion","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Sound 1"},{"t":3,"p":1,"n":"Sound 2"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Placed Object"},{"t":3,"p":1,"n":"Spawn Projectile"},{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Damage"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"IS Radius"},{"t":5,"p":1,"n":"Vertical Offset Mult"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"EYES - Eyes","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"ICON - Texture"},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"FACT - Faction","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"Relations","d":1,"c":[{"t":6,"p":1,"n":"XNAM - Relation","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Modifier"},{"t":3,"p":1,"n":"Group Combat Reaction"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Flags","c":[{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"JAIL - Exterior Jail Marker"},{"t":3,"p":1,"n":"WAIT - Follower Wait Marker"},{"t":3,"p":1,"n":"STOL - Stolen Goods Container"},{"t":3,"p":1,"n":"PLCN - Player Inventory Container"},{"t":3,"p":1,"n":"CRGR - Shared Crime Faction List"},{"t":3,"p":1,"n":"JOUT - Jail Outfit"},{"t":6,"s":1,"p":1,"n":"CRVA - Crime Values","c":[{"t":3,"p":1,"n":"Arrest"},{"t":3,"p":1,"n":"Attack On Sight"},{"t":3,"p":1,"n":"Murder"},{"t":3,"p":1,"n":"Assault"},{"t":3,"p":1,"n":"Trespass"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"p":1,"n":"Steal Multiplier"},{"t":3,"p":1,"n":"Escape"},{"t":3,"p":1,"n":"Werewolf"}]},{"t":10,"p":1,"n":"Ranks","d":1,"c":[{"t":6,"p":1,"n":"Rank","c":[{"t":3,"p":1,"n":"RNAM - Rank#"},{"t":2,"p":1,"n":"MNAM - Male Title"},{"t":2,"p":1,"n":"FNAM - Female Title"},{"t":2,"n":"INAM - Insignia Unused"}]}]},{"t":3,"p":1,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"p":1,"n":"VENC - Merchant Container"},{"t":6,"s":1,"p":1,"n":"VENV - Vendor Values","c":[{"t":3,"p":1,"n":"Start Hour"},{"t":3,"p":1,"n":"End Hour"},{"t":3,"p":1,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"p":1,"n":"Only Buys Stolen Items"},{"t":3,"p":1,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"s":1,"p":1,"n":"PLVD - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer "},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FLST - FormID List","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"FormIDs","d":1,"c":[{"t":3,"p":1,"n":"LNAM - FormID"}]}]},{"t":1,"p":1,"n":"FSTP - Footstep","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Tag"}]},{"t":1,"p":1,"n":"FSTS - Footstep Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"XCNT - Count","c":[{"t":3,"p":1,"n":"Walk Forward Sets"},{"t":3,"p":1,"n":"Run Forward Sets"},{"t":3,"p":1,"n":"Walk Forward Alternate Sets"},{"t":3,"p":1,"n":"Run Forward Alternate Sets"},{"t":3,"p":1,"n":"Walk Forward Alternate 2 Sets"}]},{"t":7,"s":1,"p":1,"n":"DATA - Footstep Sets","c":[{"t":3,"p":1,"n":"Footstep"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"s":1,"p":1,"n":"WBDT - Workbench Data","c":[{"t":3,"p":1,"n":"Bench Type"},{"t":3,"p":1,"n":"Uses Skill"}]},{"t":3,"p":1,"n":"NAM1 - Associated Spell"},{"t":8,"s":1,"p":1,"n":"Markers","d":1,"c":[{"t":6,"p":1,"n":"Marker","c":[{"t":3,"p":1,"n":"ENAM - Marker Index"},{"t":6,"p":1,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Disabled Points"}]},{"t":3,"p":1,"n":"FNMK - Marker Keyword"}]}]},{"t":8,"s":1,"p":1,"n":"Marker Entry Points","d":1,"c":[{"t":6,"p":1,"n":"FNPR - Marker","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Entry Points"}]}]},{"t":2,"p":1,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"GLOB - Global","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Type"},{"t":5,"p":1,"n":"FLTV - Value"}]},{"t":1,"p":1,"n":"GMST - Game Setting","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"Name"},{"t":3,"p":1,"n":"Int"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"}]},{"t":1,"p":1,"n":"GRAS - Grass","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Units From Water"},{"t":3,"p":1,"n":"Units From Water Type"},{"t":5,"p":1,"n":"Position Range"},{"t":5,"p":1,"n":"Height Range"},{"t":5,"p":1,"n":"Color Range"},{"t":5,"p":1,"n":"Wave Period"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"HAIR","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"HAZD - Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Limit"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Image Space Radius"},{"t":5,"p":1,"n":"Target Interval"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"PNAM - Type"},{"t":8,"s":1,"p":1,"n":"Extra Parts","d":1,"c":[{"t":3,"p":1,"n":"HNAM - Part"}]},{"t":8,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"NAM0 - Part Type"},{"t":2,"p":1,"n":"NAM1 - Filename"}]}]},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"CNAM - Color"},{"t":3,"p":1,"n":"RNAM - Valid Races"}]},{"t":1,"n":"IDLE - Idle Animation","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"DNAM - Filename"},{"t":2,"n":"ENAM - Animation Event"},{"t":7,"n":"ANAM - Related Idle Animations","c":[{"t":3,"n":"Related Idle Animation"}]},{"t":6,"n":"DATA - Data (unused)","c":[{"t":6,"n":"Looping seconds (both 255 forever)","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":3,"n":"Flags"},{"t":3,"n":"Animation Group Section"},{"t":3,"n":"Replay Delay"}]}]},{"t":1,"p":1,"n":"IDLM - Idle Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"IDLF - Flags"},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"IMAD - Image Space Adapter","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DNAM - Data Count","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Duration"},{"t":6,"n":"HDR","c":[{"t":3,"n":"Eye Adapt Speed Mult"},{"t":3,"n":"Eye Adapt Speed Add"},{"t":3,"n":"Bloom Blur Radius Mult"},{"t":3,"n":"Bloom Blur Radius Add"},{"t":3,"n":"Bloom Threshold Mult"},{"t":3,"n":"Bloom Threshold Add"},{"t":3,"n":"Bloom Scale Mult"},{"t":3,"n":"Bloom Scale Add"},{"t":3,"n":"Target Lum Min Mult"},{"t":3,"n":"Target Lum Min Add"},{"t":3,"n":"Target Lum Max Mult"},{"t":3,"n":"Target Lum Max Add"},{"t":3,"n":"Sunlight Scale Mult"},{"t":3,"n":"Sunlight Scale Add"},{"t":3,"n":"Sky Scale Mult"},{"t":3,"n":"Sky Scale Add"}]},{"t":3,"n":"Unknown08 Mult"},{"t":3,"n":"Unknown48 Add"},{"t":3,"n":"Unknown09 Mult"},{"t":3,"n":"Unknown49 Add"},{"t":3,"n":"Unknown0A Mult"},{"t":3,"n":"Unknown4A Add"},{"t":3,"n":"Unknown0B Mult"},{"t":3,"n":"Unknown4B Add"},{"t":3,"n":"Unknown0C Mult"},{"t":3,"n":"Unknown4C Add"},{"t":3,"n":"Unknown0D Mult"},{"t":3,"n":"Unknown4D Add"},{"t":3,"n":"Unknown0E Mult"},{"t":3,"n":"Unknown4E Add"},{"t":3,"n":"Unknown0F Mult"},{"t":3,"n":"Unknown4F Add"},{"t":3,"n":"Unknown10 Mult"},{"t":3,"n":"Unknown50 Add"},{"t":6,"n":"Cinematic","c":[{"t":3,"n":"Saturation Mult"},{"t":3,"n":"Saturation Add"},{"t":3,"n":"Brightness Mult"},{"t":3,"n":"Brightness Add"},{"t":3,"n":"Contrast Mult"},{"t":3,"n":"Contrast Add"}]},{"t":3,"n":"Unknown14 Mult"},{"t":3,"n":"Unknown54 Add"},{"t":3,"n":"Tint Color"},{"t":3,"n":"Blur Radius"},{"t":3,"n":"Double Vision Strength"},{"t":3,"n":"Radial Blur Strength"},{"t":3,"n":"Radial Blur Ramp Up"},{"t":3,"n":"Radial Blur Start"},{"t":3,"n":"Radial Blur Flags"},{"t":5,"n":"Radial Blur Center X"},{"t":5,"n":"Radial Blur Center Y"},{"t":3,"n":"DoF Strength"},{"t":3,"n":"DoF Distance"},{"t":3,"n":"DoF Range"},{"t":3,"n":"DoF Flags"},{"t":3,"n":"Radial Blur Ramp Down"},{"t":3,"n":"Radial Blur Down Start"},{"t":3,"n":"Fade Color"},{"t":3,"n":"Motion Blur Strength"}]},{"t":7,"p":1,"n":"BNAM - Blur Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"VNAM - Double Vision Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"TNAM - Tint Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"NAM3 - Fade Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"RNAM - Radial Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SNAM - Radial Blur Ramp Up","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"UNAM - Radial Blur Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM1 - Radial Blur Ramp Down","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM2 - Radial Blur Down Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"WNAM - DoF Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"XNAM - DoF Distance","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"YNAM - DoF Range","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM4 - Motion Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"HDR","c":[{"t":7,"p":1,"n":"aIAD - Eye Adapt Speed Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"@IAD - Eye Adapt Speed Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"bIAD - Bloom Blur Radius Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"AIAD - Bloom Blur Radius Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"cIAD - Bloom Threshold Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"BIAD - Bloom Threshold Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"dIAD - Bloom Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"CIAD - Bloom Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"eIAD - Target Lum Min Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"DIAD - Target Lum Min Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"fIAD - Target Lum Max Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"EIAD - Target Lum Max Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"gIAD - Sunlight Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"FIAD - Sunlight Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"hIAD - Sky Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"GIAD - Sky Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"iIAD - Unknown"},{"t":11,"n":"HIAD - Unknown"},{"t":11,"n":"jIAD - Unknown"},{"t":11,"n":"IIAD - Unknown"},{"t":11,"n":"kIAD - Unknown"},{"t":11,"n":"JIAD - Unknown"},{"t":11,"n":"lIAD - Unknown"},{"t":11,"n":"KIAD - Unknown"},{"t":11,"n":"mIAD - Unknown"},{"t":11,"n":"LIAD - Unknown"},{"t":11,"n":"nIAD - Unknown"},{"t":11,"n":"MIAD - Unknown"},{"t":11,"n":"oIAD - Unknown"},{"t":11,"n":"NIAD - Unknown"},{"t":11,"n":"pIAD - Unknown"},{"t":11,"n":"OIAD - Unknown"},{"t":11,"n":"qIAD - Unknown"},{"t":11,"n":"PIAD - Unknown"},{"t":6,"s":1,"p":1,"n":"Cinematic","c":[{"t":7,"p":1,"n":"rIAD - Saturation Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"QIAD - Saturation Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"sIAD - Brightness Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"RIAD - Brightness Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"tIAD - Contrast Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SIAD - Contrast Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"uIAD - Unknown"},{"t":11,"n":"TIAD - Unknown"}]},{"t":1,"p":1,"n":"IMGS - Image Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"ENAM - Unknown"},{"t":6,"s":1,"p":1,"n":"HNAM - HDR","c":[{"t":5,"p":1,"n":"Eye Adapt Speed"},{"t":5,"p":1,"n":"Bloom Blur Radius"},{"t":5,"p":1,"n":"Bloom Threshold"},{"t":5,"p":1,"n":"Bloom Scale"},{"t":5,"p":1,"n":"Receive Bloom Threshold"},{"t":5,"p":1,"n":"White"},{"t":5,"p":1,"n":"Sunlight Scale"},{"t":5,"p":1,"n":"Sky Scale"},{"t":5,"p":1,"n":"Eye Adapt Strength"}]},{"t":6,"s":1,"p":1,"n":"CNAM - Cinematic","c":[{"t":5,"p":1,"n":"Saturation"},{"t":5,"p":1,"n":"Brightness"},{"t":5,"p":1,"n":"Contrast"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Tint","c":[{"t":5,"p":1,"n":"Amount"},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Depth of Field","c":[{"t":5,"p":1,"n":"Strength"},{"t":5,"p":1,"n":"Distance"},{"t":5,"p":1,"n":"Range"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Sky \/ Blur Radius"}]}]},{"t":1,"p":1,"n":"INFO - Dialog response","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":11,"n":"DATA - Unknown"},{"t":6,"s":1,"p":1,"n":"ENAM - Response flags","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Reset Hours"}]},{"t":3,"p":1,"n":"TPIC - Topic"},{"t":3,"p":1,"n":"PNAM - Previous INFO"},{"t":3,"p":1,"n":"CNAM - Favor Level"},{"t":8,"s":1,"p":1,"n":"Link To","d":1,"c":[{"t":3,"p":1,"n":"TCLT - Response"}]},{"t":3,"p":1,"n":"DNAM - Response Data"},{"t":8,"s":1,"p":1,"n":"Responses","d":1,"c":[{"t":6,"p":1,"n":"Response","c":[{"t":6,"p":1,"n":"TRDT - Response Data","c":[{"t":3,"p":1,"n":"Emotion Type"},{"t":3,"p":1,"n":"Emotion Value"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Response number"},{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"}]},{"t":2,"p":1,"n":"NAM1 - Response Text"},{"t":2,"p":1,"n":"NAM2 - Script Notes"},{"t":2,"p":1,"n":"NAM3 - Edits"},{"t":3,"p":1,"n":"SNAM - Idle Animations: Speaker"},{"t":3,"p":1,"n":"LNAM - Idle Animations: Listener"}]}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"SCHR - Unknown"},{"t":3,"n":"QNAM - Unknown"},{"n":"NEXT - Marker"}]}]},{"t":2,"p":1,"n":"RNAM - Prompt"},{"t":3,"p":1,"n":"ANAM - Speaker"},{"t":3,"p":1,"n":"TWAT - Walk Away Topic"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"}]},{"t":1,"p":1,"n":"INGR - Ingredient","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Ingredient Value"},{"t":3,"p":1,"n":"Flags"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"IPCT - Impact","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":5,"p":1,"n":"Effect - Duration"},{"t":3,"p":1,"n":"Effect - Orientation"},{"t":5,"p":1,"n":"Angle Threshold"},{"t":5,"p":1,"n":"Placement Radius"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Impact Result"},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Texture Set"},{"t":3,"p":1,"n":"ENAM - Secondary Texture Set"},{"t":3,"p":1,"n":"SNAM - Sound 1"},{"t":3,"p":1,"n":"NAM1 - Sound 2"},{"t":3,"p":1,"n":"NAM2 - Hazard"}]},{"t":1,"p":1,"n":"IPDS - Impact Data Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Data","d":1,"c":[{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Material"},{"t":3,"p":1,"n":"Impact"}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"KYWD - Keyword","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LAND - Landscape","d":1,"c":[{"t":11,"n":"DATA - Unknown"},{"t":11,"n":"VNML - Vertex Normals"},{"t":11,"n":"VHGT - Vertext Height Map"},{"t":11,"n":"VCLR - Vertex Colours"},{"t":8,"s":1,"p":1,"n":"Layers","d":1,"c":[{"t":6,"p":1,"n":"Base Layer","c":[{"t":6,"p":1,"n":"BTXT - Base Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]}]},{"t":6,"p":1,"n":"Alpha Layer","c":[{"t":6,"p":1,"n":"ATXT - Alpha Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]},{"t":11,"p":1,"n":"VTXT - Alpha Layer Data"}]}]},{"t":7,"p":1,"n":"VTEX - Textures","c":[{"t":3,"p":1,"n":"Texture"}]}]},{"t":1,"p":1,"n":"LCRT - Location Reference Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"n":"LCTN - Location","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":3,"n":"NAM0 - Horse Marker Ref"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LENS - Lens Flare","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Color Influence"},{"t":5,"p":1,"n":"DNAM - Fade Distance Radius Scale"},{"t":3,"n":"LFSP - Count"},{"t":8,"s":1,"p":1,"n":"Lens Flare Sprites","d":1,"c":[{"t":6,"p":1,"n":"Flare","c":[{"t":2,"p":1,"n":"DNAM - Lens Flare Sprite ID"},{"t":2,"p":1,"n":"FNAM - Texture"},{"t":6,"p":1,"n":"LFSD - Lens Flare Data","c":[{"t":6,"p":1,"n":"Tint","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"},{"t":5,"p":1,"n":"Position"},{"t":5,"p":1,"n":"Angular Fade"},{"t":5,"p":1,"n":"Opacity"},{"t":3,"p":1,"n":"Flags"}]}]}]}]},{"t":1,"p":1,"n":"LGTM - Lighting Template","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Dist"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Ambient Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":6,"p":1,"n":"Light Fade Distances","c":[{"t":5,"p":1,"n":"Start"},{"t":5,"p":1,"n":"End"}]},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DALC - Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":1,"p":1,"n":"LIGH - Light","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Time"},{"t":3,"p":1,"n":"Radius"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Falloff Exponent"},{"t":5,"p":1,"n":"FOV"},{"t":5,"p":1,"n":"Near Clip"},{"t":6,"p":1,"n":"Flicker Effect","c":[{"t":5,"p":1,"n":"Period"},{"t":5,"p":1,"n":"Intensity Amplitude"},{"t":5,"p":1,"n":"Movement Amplitude"}]},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"FNAM - Fade value"},{"t":3,"p":1,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"NNAM - Loading Screen NIF"},{"t":5,"p":1,"n":"SNAM - Initial Scale"},{"t":6,"s":1,"p":1,"n":"RNAM - Initial Rotation","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"ONAM - Rotation Offset Constraints","c":[{"t":3,"p":1,"n":"Min"},{"t":3,"p":1,"n":"Max"}]},{"t":6,"s":1,"p":1,"n":"XNAM - Initial Translation Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"LTEX - Landscape Texture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"MNAM - Material Type"},{"t":6,"s":1,"p":1,"n":"HNAM - Havok Data","c":[{"t":3,"p":1,"n":"Friction"},{"t":3,"p":1,"n":"Restitution"}]},{"t":3,"p":1,"n":"SNAM - Texture Specular Exponent"},{"t":8,"s":1,"p":1,"n":"Grasses","d":1,"c":[{"t":3,"p":1,"n":"GNAM - Grass"}]},{"t":3,"n":"INAM - Unused"}]},{"t":1,"p":1,"n":"LVLI - Leveled Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]}]},{"t":1,"p":1,"n":"LVLN - Leveled NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"LVSP - Leveled Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]}]}]}]},{"t":1,"p":1,"n":"MATO - Material Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":8,"s":1,"p":1,"n":"Property Data","d":1,"c":[{"t":11,"p":1,"n":"DNAM - Data"}]},{"t":6,"s":1,"p":1,"n":"DATA - Directional Material Data","c":[{"t":5,"p":1,"n":"Falloff Scale"},{"t":5,"p":1,"n":"Falloff Bias"},{"t":5,"p":1,"n":"Noise UV Scale"},{"t":5,"p":1,"n":"Material UV Scale"},{"t":6,"p":1,"n":"Projection Vector","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Normal Dampener"},{"t":6,"p":1,"n":"Single Pass Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"MATT - Material Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Material Parent"},{"t":2,"p":1,"n":"MNAM - Material Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Havok Display Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"BNAM - Buoyancy"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"HNAM - Havok Impact Data Set"}]},{"t":1,"p":1,"n":"MESG - Message","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"INAM - Icon (unused)"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"TNAM - Display Time"},{"t":8,"s":1,"p":1,"n":"Menu Buttons","d":1,"c":[{"t":6,"p":1,"n":"Menu Button","c":[{"t":2,"p":1,"n":"ITXT - Button Text"},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Assoc. Item"},{"t":3,"p":1,"n":"Magic Skill"},{"t":3,"p":1,"n":"Resist Value"},{"t":3,"p":1,"n":"Counter Effect count"},{"t":3,"p":1,"n":"Casting Light"},{"t":5,"p":1,"n":"Taper Weight"},{"t":3,"p":1,"n":"Hit Shader"},{"t":3,"p":1,"n":"Enchant Shader"},{"t":3,"p":1,"n":"Minimum Skill Level"},{"t":6,"p":1,"n":"Spellmaking","c":[{"t":3,"p":1,"n":"Area"},{"t":5,"p":1,"n":"Casting Time"}]},{"t":5,"p":1,"n":"Taper Curve"},{"t":5,"p":1,"n":"Taper Duration"},{"t":5,"p":1,"n":"Second AV Weight"},{"t":3,"p":1,"n":"Archtype"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Delivery"},{"t":3,"p":1,"n":"Second Actor Value"},{"t":3,"p":1,"n":"Casting Art"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data"},{"t":5,"p":1,"n":"Skill Usage Multiplier"},{"t":6,"p":1,"n":"Dual Casting","c":[{"t":3,"p":1,"n":"Art"},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Equip Ability"},{"t":3,"p":1,"n":"Image Space Modifier"},{"t":3,"p":1,"n":"Perk to Apply"},{"t":3,"p":1,"n":"Casting Sound Level"},{"t":6,"p":1,"n":"Script Effect AI","c":[{"t":5,"p":1,"n":"Score"},{"t":5,"p":1,"n":"Delay Time"}]}]}]},{"t":8,"s":1,"p":1,"n":"Counter Effects","d":1,"c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"p":1,"n":"SNDD - Sounds","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":2,"p":1,"n":"DNAM - Magic Item Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MOVT - Movement Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":6,"s":1,"p":1,"n":"SPED - Default Data","c":[{"t":5,"p":1,"n":"Left Walk"},{"t":5,"p":1,"n":"Left Run"},{"t":5,"p":1,"n":"Right Walk"},{"t":5,"p":1,"n":"Right Run"},{"t":5,"p":1,"n":"Forward Walk"},{"t":5,"p":1,"n":"Forward Run"},{"t":5,"p":1,"n":"Back Walk"},{"t":5,"p":1,"n":"Back Run"},{"t":5,"p":1,"n":"Rotate in Place Walk"},{"t":5,"p":1,"n":"Rotate in Place Run"},{"t":5,"p":1,"n":"Rotate while Moving Run"}]},{"t":6,"s":1,"p":1,"n":"INAM - Anim Change Thresholds","c":[{"t":5,"p":1,"n":"Directional"},{"t":5,"p":1,"n":"Movement Speed"},{"t":5,"p":1,"n":"Rotation Speed"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"MUSC - Music Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":6,"s":1,"p":1,"n":"PNAM - Data","c":[{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Ducking (dB)"}]},{"t":5,"p":1,"n":"WNAM - Fade Duration"},{"t":7,"p":1,"n":"TNAM - Music Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"p":1,"n":"MUST - Music Track","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"CNAM - Track Type"},{"t":5,"p":1,"n":"FLTV - Duration"},{"t":5,"p":1,"n":"DNAM - Fade-Out"},{"t":2,"p":1,"n":"ANAM - Track Filename"},{"t":2,"p":1,"n":"BNAM - Finale Filename"},{"t":7,"p":1,"n":"FNAM - Cue Points","c":[{"t":5,"p":1,"n":"Point"}]},{"t":6,"s":1,"p":1,"n":"LNAM - Loop Data","c":[{"t":5,"p":1,"n":"Loop Begins"},{"t":5,"p":1,"n":"Loop Ends"},{"t":3,"p":1,"n":"Loop Count"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"SNAM - Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"n":"NAVI - Navigation Mesh Info Map","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"NVER - Version"},{"t":8,"n":"Navigation Map Infos","c":[{"t":6,"n":"NVMI - Navigation Map Info","c":[{"t":3,"n":"Navigation Mesh"},{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"},{"t":3,"n":"Preferred Merges Flag"},{"t":7,"n":"Merged To","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Preferred Merges","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Linked Doors","c":[{"t":6,"n":"Door","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Door Ref"}]}]},{"t":3,"n":"Is Island"},{"t":11,"n":"Unused"},{"t":6,"n":"Island Data","c":[{"t":11,"n":"Unknown"},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]}]},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"}]}]},{"t":6,"n":"NVPP - Preferred Pathing","c":[{"t":7,"n":"NavMeshes","c":[{"t":7,"n":"Set","c":[{"t":3,"n":""}]}]},{"t":7,"n":"NavMesh Tree?","c":[{"t":6,"n":"","c":[{"t":3,"n":"NavMesh"},{"t":3,"n":"Index\/Node"}]}]}]},{"t":7,"n":"NVSI - Unknown","c":[{"t":3,"n":"Navigation Mesh"}]}]},{"t":1,"n":"NAVM - Navigation Mesh","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NVNM - Geometry","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"External Connections","c":[{"t":6,"n":"Connection","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Mesh"},{"t":3,"n":"Triangle"}]}]},{"t":7,"n":"Door Triangles","c":[{"t":6,"n":"Door Triangle","c":[{"t":3,"n":"Triangle before door"},{"t":11,"n":"Unknown"},{"t":3,"n":"Door"}]}]}]},{"t":11,"n":"ONAM - Unknown"},{"t":11,"n":"PNAM - Unknown"},{"t":11,"n":"NNAM - Unknown"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Magicka Offset"},{"t":3,"p":1,"n":"Stamina Offset"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Level Mult"},{"t":3,"p":1,"n":"Calc min level"},{"t":3,"p":1,"n":"Calc max level"},{"t":3,"p":1,"n":"Speed Multiplier"},{"t":3,"p":1,"n":"Disposition Base (unused)"},{"t":3,"p":1,"n":"Template Flags"},{"t":3,"p":1,"n":"Health Offset"},{"t":3,"p":1,"n":"Bleedout Override"}]},{"t":8,"s":1,"p":1,"n":"Factions","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Faction","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"INAM - Death item"},{"t":3,"p":1,"n":"VTCK - Voice"},{"t":3,"p":1,"n":"TPLT - Template"},{"t":3,"p":1,"n":"RNAM - Race","lt":"Tint Layers","lf":"NAM7 - Weight"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","d":1,"c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"WNAM - Worn Armor"},{"t":3,"p":1,"n":"ANAM - Far away model"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","d":1,"c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags"},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":3,"p":1,"n":"Attack Type"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Stamina Mult"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"s":1,"p":1,"n":"Perks","d":1,"c":[{"t":6,"p":1,"n":"PRKR - Perk","c":[{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]}]},{"t":8,"s":1,"p":1,"n":"Packages","d":1,"c":[{"t":3,"p":1,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - Player Skills","c":[{"t":7,"p":1,"n":"Skill Values","c":[{"t":3,"p":1,"n":"Skill"}]},{"t":7,"p":1,"n":"Skill Offsets","c":[{"t":3,"p":1,"n":"Skill"}]},{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"Magicka"},{"t":3,"p":1,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Far away model distance"},{"t":3,"p":1,"n":"Geared up weapons"}]},{"t":8,"s":1,"p":1,"n":"Head Parts","d":1,"c":[{"t":3,"p":1,"n":"PNAM - Head Part"}],"lt":"NAM6 - Height","lf":"HCLF - Hair Color"},{"t":3,"p":1,"n":"HCLF - Hair Color","lt":"Head Parts","lf":"FTST - Head texture"},{"t":3,"p":1,"n":"ZNAM - Combat Style"},{"t":3,"p":1,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"p":1,"n":"NAM6 - Height","lt":"NAM7 - Weight","lf":"Head Parts"},{"t":5,"p":1,"n":"NAM7 - Weight","lt":"RNAM - Race","lf":"NAM6 - Height"},{"t":3,"p":1,"n":"NAM8 - Sound Level"},{"t":10,"p":1,"n":"Sound Types","d":1,"c":[{"t":6,"p":1,"n":"Sound Type","c":[{"t":3,"p":1,"n":"CSDT - Type"},{"t":10,"p":1,"n":"Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"CSDI - Sound"},{"t":3,"p":1,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"p":1,"n":"CSCR - Inherits Sounds From"},{"t":3,"p":1,"n":"DOFT - Default outfit"},{"t":3,"p":1,"n":"SOFT - Sleeping outfit"},{"t":3,"p":1,"n":"DPLT - Default Package List"},{"t":3,"p":1,"n":"CRIF - Crime faction"},{"t":3,"p":1,"n":"FTST - Head texture","lt":"HCLF - Hair Color","lf":"QNAM - Texture lighting"},{"t":6,"s":1,"p":1,"n":"QNAM - Texture lighting","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}],"lt":"FTST - Head texture","lf":"NAM9 - Face morph"},{"t":6,"s":1,"p":1,"n":"NAM9 - Face morph","c":[{"t":5,"p":1,"n":"Nose Long\/Short"},{"t":5,"p":1,"n":"Nose Up\/Down"},{"t":5,"p":1,"n":"Jaw Up\/Down"},{"t":5,"p":1,"n":"Jaw Narrow\/Wide"},{"t":5,"p":1,"n":"Jaw Farward\/Back"},{"t":5,"p":1,"n":"Cheeks Up\/Down"},{"t":5,"p":1,"n":"Cheeks Farward\/Back"},{"t":5,"p":1,"n":"Eyes Up\/Down"},{"t":5,"p":1,"n":"Eyes In\/Out"},{"t":5,"p":1,"n":"Brows Up\/Down"},{"t":5,"p":1,"n":"Brows In\/Out"},{"t":5,"p":1,"n":"Brows Farward\/Back"},{"t":5,"p":1,"n":"Lips Up\/Down"},{"t":5,"p":1,"n":"Lips In\/Out"},{"t":5,"p":1,"n":"Chin Narrow\/Wide"},{"t":5,"p":1,"n":"Chin Up\/Down"},{"t":5,"p":1,"n":"Chin Underbite\/Overbite"},{"t":5,"p":1,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}],"lt":"QNAM - Texture lighting","lf":"NAMA - Face parts"},{"t":6,"s":1,"p":1,"n":"NAMA - Face parts","c":[{"t":3,"p":1,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Eyes"},{"t":3,"p":1,"n":"Mouth"}],"lt":"NAM9 - Face morph","lf":"Tint Layers"},{"t":10,"p":1,"n":"Tint Layers","d":1,"c":[{"t":6,"p":1,"n":"Layer","c":[{"t":3,"p":1,"n":"TINI - Tint Index"},{"t":6,"p":1,"n":"TINC - Tint Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"p":1,"n":"Alpha"}]},{"t":3,"p":1,"n":"TINV - Interpolation Value"},{"t":3,"p":1,"n":"TIAS - Preset"}]}],"lt":"NAMA - Face parts","lf":"RNAM - Race"}]},{"t":1,"p":1,"n":"OTFT - Outfit","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"s":1,"p":1,"n":"INAM - Items","d":1,"c":[{"t":3,"p":1,"n":"Item"}]}]},{"t":1,"p":1,"n":"PACK - Package","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"PKDT - Pack Data","c":[{"t":3,"p":1,"n":"General Flags"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Interrupt Override"},{"t":3,"p":1,"n":"Preferred Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Flags"}]},{"t":6,"s":1,"p":1,"n":"PSDT - Schedule","c":[{"t":3,"p":1,"n":"Month"},{"t":3,"p":1,"n":"Day of week"},{"t":3,"p":1,"n":"Date"},{"t":3,"p":1,"n":"Hour"},{"t":3,"p":1,"n":"Minute"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Duration (minutes)"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"Idle Animations","c":[{"t":3,"p":1,"n":"IDLF - Flags"},{"t":6,"p":1,"n":"IDLC - ","c":[{"t":3,"p":1,"n":"Animation Count"},{"t":11,"n":"Unknown"}]},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":11,"n":"IDLB - Unknown"}]},{"t":3,"p":1,"n":"CNAM - Combat Style"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":6,"s":1,"p":1,"n":"PKCU - Counter","c":[{"t":3,"p":1,"n":"Data Input Count"},{"t":3,"p":1,"n":"Package Template"},{"t":3,"p":1,"n":"Version Counter (autoincremented)"}]},{"t":6,"s":1,"p":1,"n":"Package Data","c":[{"t":8,"p":1,"n":"Data Input Values","c":[{"t":6,"p":1,"n":"Value","c":[{"t":2,"p":1,"n":"ANAM - Type"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Bool"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"n":"BNAM - Unknown"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":6,"p":1,"n":"PLDT - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Radius"}]},{"t":6,"p":1,"n":"PTDA - Target","c":[{"t":6,"p":1,"n":"Target Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Count \/ Distance"}]}]},{"t":11,"n":"TPIC - Unknown"}]}]},{"t":8,"p":1,"n":"Data Inputs","c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]}]},{"t":11,"n":"XNAM - Marker"},{"t":6,"s":1,"p":1,"n":"Procedure Tree","c":[{"t":8,"p":1,"n":"Branches","c":[{"t":6,"p":1,"n":"Branch","c":[{"t":2,"p":1,"n":"ANAM - Branch Type"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"p":1,"n":"PRCB - Root","c":[{"t":3,"p":1,"n":"Branch Count"},{"t":3,"p":1,"n":"Flags"}]},{"t":2,"p":1,"n":"PNAM - Procedure Type"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"p":1,"n":"Data Input Indexes","c":[{"t":3,"p":1,"n":"PKC2 - Index"}]},{"t":8,"p":1,"n":"Flags Override","c":[{"t":6,"p":1,"n":"PFO2 - Data","c":[{"t":3,"p":1,"n":"Set General Flags"},{"t":3,"p":1,"n":"Clear General Flags"},{"t":3,"p":1,"n":"Set Interrupt Flags"},{"t":3,"p":1,"n":"Clear Interrupt Flags"},{"t":3,"p":1,"n":"Preferred Speed Override"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"PFOR - Unknown"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Data Inputs","d":1,"c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]},{"t":6,"s":1,"p":1,"n":"OnBegin","c":[{"p":1,"n":"POBA - OnBegin Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnEnd","c":[{"p":1,"n":"POEA - OnEnd Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnChange","c":[{"p":1,"n":"POCA - OnChange Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCDA - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":1,"p":1,"n":"PARW - Placed Arrow","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PBAR - Placed Barrier","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PBEA - Placed Beam","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PCON - Placed Cone\/Voice","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PERK - Perk","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Trait"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Num Ranks"},{"t":3,"p":1,"n":"Playable"},{"t":3,"p":1,"n":"Hidden"}]},{"t":3,"p":1,"n":"NNAM - Next Perk"},{"t":10,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":6,"p":1,"n":"PRKE - Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Priority"}]},{"t":6,"p":1,"n":"Quest + Stage","c":[{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Ability"},{"t":6,"p":1,"n":"Entry Point","c":[{"t":3,"p":1,"n":"Entry Point"},{"t":3,"p":1,"n":"Function"},{"t":3,"p":1,"n":"Perk Condition Tab Count"}]},{"t":10,"p":1,"n":"Perk Conditions","c":[{"t":6,"p":1,"n":"Perk Condition","c":[{"t":3,"p":1,"n":"PRKC - Run On (Tab Index)"},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":6,"p":1,"n":"Function Parameters","c":[{"t":3,"p":1,"n":"EPFT - Type"},{"t":2,"p":1,"n":"EPF2 - Button Label"},{"t":6,"p":1,"n":"EPF3 - Script Flags","c":[{"t":3,"p":1,"n":"Script Flags"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Float"},{"t":6,"p":1,"n":"Float, Float","c":[{"t":5,"p":1,"n":"Float 1"},{"t":5,"p":1,"n":"Float 2"}]},{"t":3,"p":1,"n":"Leveled Item"},{"t":3,"p":1,"n":"Spell"},{"t":2,"p":1,"n":"Text"},{"t":6,"p":1,"n":"Actor Value, Float","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Float"}]}]},{"p":1,"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PFLA - Placed Flame","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PGRE - Placed Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PHZD - Placed Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PMIS - Placed Missile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Gravity"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Muzzle Flash - Light"},{"t":5,"p":1,"n":"Tracer Chance"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Sound"},{"t":5,"p":1,"n":"Muzzle Flash - Duration"},{"t":5,"p":1,"n":"Fade Duration"},{"t":5,"p":1,"n":"Impact Force"},{"t":3,"p":1,"n":"Sound - Countdown"},{"t":3,"p":1,"n":"Sound - Disable"},{"t":3,"p":1,"n":"Default Weapon Source"},{"t":5,"p":1,"n":"Cone Spread"},{"t":5,"p":1,"n":"Collision Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Relaunch Interval"},{"t":3,"p":1,"n":"Decal Data"},{"t":3,"p":1,"n":"Collision Layer"}]},{"t":6,"s":1,"p":1,"n":"Muzzle Flash Model","c":[{"t":2,"p":1,"n":"NAM1 - Model Filename"},{"t":11,"p":1,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"p":1,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"PWAT","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"QUST - Quest","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"fragmentCount"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Quest Stage Index"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]},{"t":7,"p":1,"n":"Aliases","c":[{"t":6,"p":1,"n":"Alias","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Alias Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - General","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":2,"p":1,"n":"ENAM - Event"},{"t":8,"s":1,"p":1,"n":"Text Display Globals","d":1,"c":[{"t":3,"p":1,"n":"QTGL - Global"}]},{"t":2,"p":1,"n":"FLTR - Object Window Filter"},{"t":6,"s":1,"p":1,"n":"Quest Dialogue Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":10,"s":1,"p":1,"n":"Stages","d":1,"c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"INDX - Stage Index","c":[{"t":3,"p":1,"n":"Stage Index"},{"t":3,"p":1,"n":"Flags"},{"t":3,"n":"Unknown"}]},{"t":8,"p":1,"n":"Log Entries","c":[{"t":6,"p":1,"n":"Log Entry","c":[{"t":3,"p":1,"n":"QSDT - Stage Flags"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"CNAM - Log Entry"},{"t":3,"p":1,"n":"NAM0 - Next Quest"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Objectives","d":1,"c":[{"t":6,"p":1,"n":"Objective","c":[{"t":3,"p":1,"n":"QOBJ - Objective Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":2,"p":1,"n":"NNAM - Display Text"},{"t":8,"p":1,"n":"Targets","c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},{"t":11,"n":"ANAM - Aliases Marker"},{"t":8,"s":1,"p":1,"n":"Aliases","d":1,"c":[{"t":6,"p":1,"n":"Alias","c":[{"t":3,"p":1,"n":"ALST - Reference Alias ID"},{"t":2,"p":1,"n":"ALID - Alias Name"},{"t":6,"p":1,"n":"FNAM - Alias Flags","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Additional Flags"}]},{"t":3,"p":1,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"p":1,"n":"ALFL - Specific Location"},{"t":3,"p":1,"n":"ALFR - Forced Reference"},{"t":3,"p":1,"n":"ALUA - Unique Actor"},{"t":6,"p":1,"n":"Location Alias Reference","c":[{"t":3,"p":1,"n":"ALFA - Alias"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":3,"p":1,"n":"ALRT - Ref Type"}]},{"t":6,"p":1,"n":"External Alias Reference","c":[{"t":3,"p":1,"n":"ALEQ - Quest"},{"t":3,"p":1,"n":"ALEA - Alias"}]},{"t":6,"p":1,"n":"Create Reference to Object","c":[{"t":3,"p":1,"n":"ALCO - Object"},{"t":6,"p":1,"n":"ALCA - Alias","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Create"}]},{"t":3,"p":1,"n":"ALCL - Level"}]},{"t":6,"p":1,"n":"Find Matching Reference Near Alias","c":[{"t":3,"p":1,"n":"ALNA - Alias"},{"t":3,"p":1,"n":"ALNT - Type"}]},{"t":6,"p":1,"n":"Find Matching Reference From Event","c":[{"t":2,"p":1,"n":"ALFE - From Event"},{"t":11,"p":1,"n":"ALFD - Event Data"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":3,"p":1,"n":"ALDN - Display Name"},{"t":8,"p":1,"n":"Alias Spells","c":[{"t":3,"p":1,"n":"ALSP - Spell"}]},{"t":8,"p":1,"n":"Alias Factions","c":[{"t":3,"p":1,"n":"ALFC - Faction"}]},{"t":8,"p":1,"n":"Alias Package Data","c":[{"t":3,"p":1,"n":"ALPC - Package"}]},{"t":3,"p":1,"n":"VTCK - Voice Types"},{"p":1,"n":"ALED - Alias End"}]}]},{"t":2,"p":1,"n":"NNAM - Description"},{"t":8,"s":1,"p":1,"n":"Targets","d":1,"c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"RACE - Race","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":3,"p":1,"n":"WNAM - Skin"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}]},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":7,"p":1,"n":"Skill Boosts","c":[{"t":6,"p":1,"n":"Skill Boost","c":[{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Boost"}]}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Male Height"},{"t":5,"p":1,"n":"Female Height"},{"t":5,"p":1,"n":"Male Weight"},{"t":5,"p":1,"n":"Female Weight"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Starting Health"},{"t":5,"p":1,"n":"Starting Magicka"},{"t":5,"p":1,"n":"Starting Stamina"},{"t":5,"p":1,"n":"Base Carry Weight"},{"t":5,"p":1,"n":"Base Mass"},{"t":5,"p":1,"n":"Acceleration rate"},{"t":5,"p":1,"n":"Deceleration rate"},{"t":3,"p":1,"n":"Size"},{"t":3,"p":1,"n":"Head Biped Object"},{"t":3,"p":1,"n":"Hair Biped Object"},{"t":5,"p":1,"n":"Injured Health Pct"},{"t":3,"p":1,"n":"Shield Biped Object"},{"t":5,"p":1,"n":"Health Regen"},{"t":5,"p":1,"n":"Magicka Regen"},{"t":5,"p":1,"n":"Stamina Regen"},{"t":5,"p":1,"n":"Unarmed Damage"},{"t":5,"p":1,"n":"Unarmed Reach"},{"t":3,"p":1,"n":"Body Biped Object"},{"t":5,"p":1,"n":"Aim Angle Tolerance"},{"t":5,"p":1,"n":"Flight Radius"},{"t":5,"p":1,"n":"Angular Acceleration Rate"},{"t":5,"p":1,"n":"Angular Tolerance"},{"t":3,"p":1,"n":"Flags 2"},{"t":6,"p":1,"n":"Mount Data","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Unknown"}]}]},{"p":1,"n":"MNAM - Male Marker"},{"t":2,"p":1,"n":"ANAM - Male Skeletal Model"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"p":1,"n":"FNAM - Female Marker"},{"t":2,"p":1,"n":"ANAM - Female Skeletal Model"},{"p":1,"n":"NAM2 - Marker NAM2 #1"},{"t":8,"p":1,"n":"Movement Type Names","c":[{"t":2,"p":1,"n":"MTNM - Name"}]},{"t":7,"p":1,"n":"VTCK - Voices","c":[{"t":3,"p":1,"n":"Voice"}]},{"t":7,"p":1,"n":"DNAM - Decapitate Armors","c":[{"t":3,"p":1,"n":"Decapitate Armor"}]},{"t":7,"p":1,"n":"HCLF - Default Hair Colors","c":[{"t":3,"p":1,"n":"Default Hair Color"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"p":1,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"p":1,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags"},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":3,"p":1,"n":"Attack Type"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Stamina Mult"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"}]}]},{"t":6,"p":1,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"p":1,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"INDX - Index"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]}]},{"t":6,"p":1,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"INDX - Index"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"HNAM - Hairs","c":[{"t":3,"p":1,"n":"Hair"}]},{"t":7,"p":1,"n":"ENAM - Eyes","c":[{"t":3,"p":1,"n":"Eye"}]},{"t":3,"p":1,"n":"GNAM - Body Part Data"},{"p":1,"n":"NAM2 - Marker NAM2 #2"},{"p":1,"n":"NAM3 - Marker NAM3 #3"},{"t":6,"s":1,"p":1,"n":"Male Behavior Graph","c":[{"p":1,"n":"MNAM - Male Data Marker"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"Female Behavior Graph","c":[{"p":1,"n":"FNAM - Female Data Marker"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":3,"p":1,"n":"NAM4 - Material Type"},{"t":3,"p":1,"n":"NAM5 - Impact Data Set"},{"t":3,"p":1,"n":"NAM7 - Decapitation FX"},{"t":3,"p":1,"n":"ONAM - Open Loot Sound"},{"t":3,"p":1,"n":"LNAM - Close Loot Sound"},{"t":8,"p":1,"n":"Biped Object Names","c":[{"t":2,"p":1,"n":"NAME - Name"}]},{"t":10,"n":"Movement Types","c":[{"t":6,"n":"Movement Types","c":[{"t":3,"n":"MTYP - Movement Type"},{"t":6,"n":"SPED - Override Values","c":[{"t":5,"n":"Left - Walk"},{"t":5,"n":"Left - Run"},{"t":5,"n":"Right - Walk"},{"t":5,"n":"Right - Run"},{"t":5,"n":"Forward - Walk"},{"t":5,"n":"Forward - Run"},{"t":5,"n":"Back - Walk"},{"t":5,"n":"Back - Run"},{"t":5,"n":"Rotate - Walk"},{"t":5,"n":"Unknown"}]}]}]},{"t":3,"n":"VNAM - Equipment Flags"},{"t":8,"p":1,"n":"Equip Slots","c":[{"t":3,"p":1,"n":"QNAM - Equip Slot"}]},{"t":3,"n":"UNES - Unarmed Equip Slot"},{"t":8,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"IH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AE","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AA","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AO","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ER","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AX","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"S","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Z","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ZH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"F","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"TH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"V","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"DH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"M","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"N","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"NG","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"L","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"R","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"W","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Y","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"HH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"B","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"D","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"JH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"G","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"P","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"T","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"K","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"CH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SHOTSIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"FLAP","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]}]},{"t":3,"n":"WKMV - Base Movement Default - Walk"},{"t":3,"n":"RNMV - Base Movement Default - Run"},{"t":3,"n":"SWMV - Base Movement Default - Swim"},{"t":3,"n":"FLMV - Base Movement Default - Fly"},{"t":3,"n":"SNMV - Base Movement Default - Sneak"},{"t":3,"n":"SPMV - Base Movement Default - Sprint"},{"t":6,"p":1,"n":"Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"t":6,"s":1,"p":1,"n":"Male Head Data","c":[{"p":1,"n":"MNAM - Male Data Marker"},{"t":10,"p":1,"n":"Head Parts","c":[{"t":6,"p":1,"n":"Head Part","c":[{"t":3,"p":1,"n":"INDX - Head Part Number"},{"t":3,"p":1,"n":"HEAD - Head"}]}]},{"t":6,"n":"Available Morphs","c":[{"t":11,"n":"MPAI - Unknown"},{"t":6,"n":"MPAV - Nose Variants","c":[{"t":3,"n":"Nose Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Brow Variants","c":[{"t":3,"n":"Brow Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Eye Variants","c":[{"t":3,"n":"Eye Morph Flags 1"},{"t":3,"n":"Eye Morph Flags 2"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Lip Variants","c":[{"t":3,"n":"Lip Morph Flags"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Race Presets Male","c":[{"t":3,"n":"RPRM - Preset NPC"}]},{"t":8,"n":"Available Hair Colors Male","c":[{"t":3,"n":"AHCM - Hair Color"}]},{"t":8,"n":"Face Details Texture Set List Male","c":[{"t":3,"n":"FTSM - Texture Set"}]},{"t":3,"n":"DFTM - Default Face Texture Male"},{"t":8,"p":1,"n":"Tint Masks","c":[{"t":6,"p":1,"n":"Tint Assets","c":[{"t":8,"p":1,"n":"Tint Layer","c":[{"t":6,"p":1,"n":"Texture","c":[{"t":3,"p":1,"n":"TINI - Index"},{"t":2,"p":1,"n":"TINT - File Name"},{"t":3,"p":1,"n":"TINP - Mask Type"},{"t":3,"p":1,"n":"TIND - Preset Default"}]}]},{"t":8,"p":1,"n":"Presets","c":[{"t":6,"p":1,"n":"Preset","c":[{"t":3,"p":1,"n":"TINC - Color"},{"t":5,"p":1,"n":"TINV - Default Value"},{"t":3,"p":1,"n":"TIRS - Index"}]}]}]}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"Female Head Data","c":[{"p":1,"n":"NAM0 - Head Data Marker"},{"p":1,"n":"FNAM - Female Data Marker"},{"t":10,"p":1,"n":"Head Parts","c":[{"t":6,"p":1,"n":"Head Part","c":[{"t":3,"p":1,"n":"INDX - Head Part Number"},{"t":3,"p":1,"n":"HEAD - Head"}]}]},{"t":6,"n":"Available Morphs","c":[{"t":11,"n":"MPAI - Unknown"},{"t":6,"n":"MPAV - Nose Variants","c":[{"t":3,"n":"Nose Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Brow Variants","c":[{"t":3,"n":"Brow Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Eye Variants","c":[{"t":3,"n":"Eye Morph Flags 1"},{"t":3,"n":"Eye Morph Flags 2"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Lip Variants","c":[{"t":3,"n":"Lip Morph Flags"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Race Presets Female","c":[{"t":3,"n":"RPRF - Preset NPC"}]},{"t":8,"n":"Available Hair Colors Female","c":[{"t":3,"n":"AHCF - Hair Color"}]},{"t":8,"n":"Face Details Texture Set List Female","c":[{"t":3,"n":"FTSF - Texture Set"}]},{"t":3,"n":"DFTF - Default Face Texture Female"},{"t":8,"p":1,"n":"Tint Masks","c":[{"t":6,"p":1,"n":"Tint Assets","c":[{"t":8,"p":1,"n":"Tint Layer","c":[{"t":6,"p":1,"n":"Texture","c":[{"t":3,"p":1,"n":"TINI - Index"},{"t":2,"p":1,"n":"TINT - File Name"},{"t":3,"p":1,"n":"TINP - Mask Type"},{"t":3,"p":1,"n":"TIND - Preset Default"}]}]},{"t":8,"p":1,"n":"Presets","c":[{"t":6,"p":1,"n":"Preset","c":[{"t":3,"p":1,"n":"TINC - Color"},{"t":5,"p":1,"n":"TINV - Default Value"},{"t":3,"p":1,"n":"TIRS - Index"}]}]}]}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]},{"t":3,"n":"NAM8 - Morph race"},{"t":3,"n":"RNAM - Armor race"}]},{"t":1,"p":1,"n":"REFR - Placed Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":6,"s":1,"p":1,"n":"XMBO - Bound Half Extents","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"XPRM - Primitive","c":[{"t":6,"p":1,"n":"Bounds","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"s":1,"p":1,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":7,"p":1,"n":"XPOD - Portal Data","c":[{"t":6,"p":1,"n":"References","c":[{"t":3,"p":1,"n":"Origin"},{"t":3,"p":1,"n":"Destination"}]}]},{"t":6,"s":1,"p":1,"n":"XPTL - Room Portal (unused)","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":6,"s":1,"p":1,"n":"Bound Data","c":[{"t":6,"p":1,"n":"XRMR - Header","c":[{"t":3,"p":1,"n":"Linked Rooms Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"LNAM - Lighting Template"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":8,"p":1,"n":"Linked Rooms","c":[{"t":3,"p":1,"n":"XLRM - Linked Room"}]}]},{"p":1,"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Lit Water","d":1,"c":[{"t":3,"p":1,"n":"XLTW - Water"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":6,"s":1,"p":1,"n":"XLIG - Light Data","c":[{"t":5,"p":1,"n":"FOV 90+\/-"},{"t":5,"p":1,"n":"Fade 1.35+\/-"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Shadow Depth Bias"}]},{"t":6,"s":1,"p":1,"n":"XALP - Alpha","c":[{"t":3,"p":1,"n":"Cutoff"},{"t":3,"p":1,"n":"Base"}]},{"t":6,"s":1,"p":1,"n":"XTEL - Teleport Destination","c":[{"t":3,"p":1,"n":"Door"},{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XTNM - Teleport Message Box"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":6,"n":"XCVL - Unknown","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"}]},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":3,"p":1,"n":"XSPC - Spawn Container"},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"p":1,"n":"XLIB - Leveled Item Base Object"},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XTRI - Collision Layer"},{"t":6,"s":1,"p":1,"n":"XLOC - Lock Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Key"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"XNDP - Navigation Door Link","c":[{"t":3,"p":1,"n":"Navigation Mesh"},{"t":3,"p":1,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XCNT - Item Count"},{"t":5,"p":1,"n":"XCHG - Charge"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":8,"s":1,"p":1,"n":"Patrol","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":3,"p":1,"n":"XACT - Action Flag"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"p":1,"n":"ONAM - Open by Default"},{"t":6,"s":1,"p":1,"n":"Map Marker","c":[{"p":1,"n":"XMRK - Map Marker Data"},{"t":3,"p":1,"n":"FNAM - Map Flags"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"TNAM - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XATR - Attach Ref"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"REGN - Region","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"RCLR - Map Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":8,"s":1,"p":1,"n":"Region Areas","d":1,"c":[{"t":6,"p":1,"n":"Region Area","c":[{"t":3,"p":1,"n":"RPLI - Edge Fall-off"},{"t":7,"p":1,"n":"RPLD - Region Point List Data","c":[{"t":6,"p":1,"n":"Point","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]}]}]},{"t":10,"p":1,"n":"Region Data Entries","d":1,"c":[{"t":6,"p":1,"n":"Region Data Entry","c":[{"t":6,"p":1,"n":"RDAT - Data Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":11,"n":"Unknown"}]},{"t":6,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":3,"p":1,"n":"RDMO - Music"},{"t":7,"p":1,"n":"RDSA - Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Chance"}]}]},{"t":2,"p":1,"n":"RDMP - Map Name"},{"t":7,"p":1,"n":"RDOT - Objects","c":[{"t":6,"p":1,"n":"Object","c":[{"t":3,"p":1,"n":"Object"},{"t":3,"p":1,"n":"Parent Index"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Clustering"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Radius wrt Parent"},{"t":3,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Sink"},{"t":5,"p":1,"n":"Sink Variance"},{"t":5,"p":1,"n":"Size Variance"},{"t":6,"p":1,"n":"Angle Variance","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]}]}]},{"t":7,"p":1,"n":"RDGS - Grasses","c":[{"t":6,"p":1,"n":"Grass","c":[{"t":3,"p":1,"n":"Grass"},{"t":11,"n":"Unknown"}]}]},{"t":7,"p":1,"n":"RDWT - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]}]}]}]},{"t":1,"p":1,"n":"RELA - Relationship","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Child"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Association Type"}]}]},{"t":1,"p":1,"n":"REVB - Reverb Parameters","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Decay Time (ms)"},{"t":3,"p":1,"n":"HF Reference (Hz)"},{"t":3,"p":1,"n":"Room Filter"},{"t":3,"p":1,"n":"Room HF Filter"},{"t":3,"p":1,"n":"Reflections"},{"t":3,"p":1,"n":"Reverb Amp"},{"t":3,"p":1,"n":"Decay HF Ratio"},{"t":3,"p":1,"n":"Reflect Delay (ms), scaled"},{"t":3,"p":1,"n":"Reverb Delay (ms)"},{"t":3,"p":1,"n":"Diffusion %"},{"t":3,"p":1,"n":"Density %"},{"t":3,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"RFCT - Visual Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Effect Data","c":[{"t":3,"p":1,"n":"Effect Art"},{"t":3,"p":1,"n":"Shader"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"RGDL","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCEN - Scene","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]},{"t":7,"p":1,"n":"Phase Fragments","c":[{"t":6,"p":1,"n":"Phase Fragment","c":[{"t":3,"p":1,"n":"Phase Flag"},{"t":3,"p":1,"n":"Phase Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"s":1,"p":1,"n":"Phases","d":1,"c":[{"t":6,"p":1,"n":"Phase","c":[{"p":1,"n":"HNAM - Marker Phase Start"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":6,"p":1,"n":"Start Conditions","c":[{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":6,"p":1,"n":"Completion Conditions","c":[{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":3,"p":1,"n":"WNAM - Editor Width"},{"p":1,"n":"HNAM - Marker Phase End"}]}]},{"t":8,"s":1,"p":1,"n":"Actors","d":1,"c":[{"t":6,"p":1,"n":"Actor","c":[{"t":3,"p":1,"n":"ALID - Actor ID"},{"t":3,"p":1,"n":"LNAM - Flags"},{"t":3,"p":1,"n":"DNAM - Behaviour Flags"}]}]},{"t":8,"s":1,"p":1,"n":"Actions","d":1,"c":[{"t":6,"p":1,"n":"Action","c":[{"t":3,"p":1,"n":"ANAM - Type"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":3,"p":1,"n":"ALID - Actor ID"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"INAM - Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Start Phase"},{"t":3,"p":1,"n":"ENAM - End Phase"},{"t":5,"p":1,"n":"SNAM - Timer Seconds"},{"t":8,"p":1,"n":"Packages","c":[{"t":3,"p":1,"n":"PNAM - Package"}]},{"t":3,"p":1,"n":"DATA - Topic"},{"t":3,"p":1,"n":"HTID - Headtrack Actor ID"},{"t":5,"p":1,"n":"DMAX - Looping - Max"},{"t":5,"p":1,"n":"DMIN - Looping - Min"},{"t":3,"p":1,"n":"DEMO - Emotion Type"},{"t":3,"p":1,"n":"DEVA - Emotion Value"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"p":1,"n":"ANAM - End Marker"}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"p":1,"n":"NEXT - Marker"},{"t":3,"p":1,"n":"PNAM - Quest"},{"t":3,"p":1,"n":"INAM - Last Action Index"},{"t":11,"n":"VNAM - Unknown"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"SCOL","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCPT","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCRL - Scroll","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - Item","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SHOU - Shout","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Words of Power","d":1,"c":[{"t":6,"p":1,"n":"SNAM - ","c":[{"t":3,"p":1,"n":"Word"},{"t":3,"p":1,"n":"Spell"},{"t":5,"p":1,"n":"Recovery Time"}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"SOUL - Contained Soul"},{"t":3,"p":1,"n":"SLCP - Maximum Capacity"},{"t":3,"p":1,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SMBN - Story Manager Branch Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"}]},{"t":1,"p":1,"n":"SMEN - Story Manager Event Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"},{"t":2,"p":1,"n":"ENAM - Type"}]},{"t":1,"p":1,"n":"SMQN - Story Manager Quest Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Flags","c":[{"t":3,"p":1,"n":"Node Flags"},{"t":3,"p":1,"n":"Quest Flags"}]},{"t":3,"p":1,"n":"XNAM - Max concurrent quests"},{"t":3,"p":1,"n":"MNAM - Num quests to run"},{"t":3,"n":"QNAM - Quest Count"},{"t":10,"p":1,"n":"Quests","d":1,"c":[{"t":6,"p":1,"n":"Quest","c":[{"t":3,"p":1,"n":"NNAM - Quest"},{"t":11,"n":"FNAM - Unknown"},{"t":5,"p":1,"n":"RNAM - Hours until reset"}]}]}]},{"t":1,"p":1,"n":"SNCT - Sound Category","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"PNAM - Parent"},{"t":3,"p":1,"n":"VNAM - Static Volume Multiplier"},{"t":3,"p":1,"n":"UNAM - Default Menu Value"}]},{"t":1,"p":1,"n":"SNDR - Sound Descriptor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"CNAM - Unknown"},{"t":3,"p":1,"n":"GNAM - Category"},{"t":3,"p":1,"n":"SNAM - Alternate Sound For"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"Sound Files","c":[{"t":2,"p":1,"n":"ANAM - File Name"}]}]},{"t":3,"p":1,"n":"ONAM - Output Model"},{"t":2,"p":1,"n":"FNAM - String"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"LNAM - Values","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Looping"},{"t":3,"p":1,"n":"Rumble Send Value = (Small \/ 7) + ((Big \/ 7) * 16)"}]},{"t":6,"s":1,"p":1,"n":"BNAM - Values","c":[{"t":3,"p":1,"n":"% Frequency Shift"},{"t":3,"p":1,"n":"% Frequency Variance"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"db Variance"},{"t":3,"p":1,"n":"Static Attenuation (db)"}]}]},{"t":1,"p":1,"n":"SOPM - Sound Output Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"NAM1 - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reverb Send %"}]},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Type"},{"t":11,"n":"CNAM - Unknown"},{"t":11,"n":"SNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"ONAM - Output Values","c":[{"t":7,"p":1,"n":"Channels","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"L"},{"t":3,"p":1,"n":"R"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"BL"},{"t":3,"p":1,"n":"BR"}]}]}]},{"t":6,"s":1,"p":1,"n":"ANAM - Attenuation Values","c":[{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Min Distance"},{"t":5,"p":1,"n":"Max Distance"},{"t":7,"p":1,"n":"Curve","c":[{"t":3,"p":1,"n":"Value"}]}]}]},{"t":1,"p":1,"n":"SOUN - Sound Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":11,"n":"FNAM - Unknown"},{"t":11,"n":"SNDD - Unknown"},{"t":3,"p":1,"n":"SDSC - Sound Descriptor"}]},{"t":1,"p":1,"n":"SPEL - Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SPGD - Shader Particle Geometry","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Gravity Velocity"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Rotation Velocity"},{"t":5,"p":1,"n":"Particle Size X"},{"t":5,"p":1,"n":"Center Offset Min"},{"t":5,"p":1,"n":"Particle Size Y"},{"t":5,"p":1,"n":"Center Offset Max"},{"t":5,"p":1,"n":"Initial Rotation"},{"t":3,"p":1,"n":"# of Subtextures X"},{"t":3,"p":1,"n":"# of Subtextures Y"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Box Size"},{"t":5,"p":1,"n":"Particle Density"}]},{"t":2,"p":1,"n":"ICON - Particle Texture"}]},{"t":1,"p":1,"n":"STAT - Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Direction Material","c":[{"t":5,"p":1,"n":"Max Angle (30-120)"},{"t":3,"p":1,"n":"Material"}]},{"t":7,"p":1,"n":"MNAM - Distant LOD","c":[{"t":6,"p":1,"n":"LOD","c":[{"t":2,"p":1,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"TREE - Tree","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer"},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Tree Data","c":[{"t":5,"p":1,"n":"Trunk Flexibility"},{"t":5,"p":1,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"TXST - Texture Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Textures (RGB\/A)","c":[{"t":2,"p":1,"n":"TX00 - Difuse"},{"t":2,"p":1,"n":"TX01 - Normal\/Gloss"},{"t":2,"p":1,"n":"TX02 - Environment Mask\/Subsurface Tint"},{"t":2,"p":1,"n":"TX03 - Glow\/Detail Map"},{"t":2,"p":1,"n":"TX04 - Height"},{"t":2,"p":1,"n":"TX05 - Environment"},{"t":2,"p":1,"n":"TX06 - Multilayer"},{"t":2,"p":1,"n":"TX07 - Backlight Mask\/Specular"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"}]},{"t":1,"p":1,"n":"VOLI - Volumetric Lighting","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Intensity"},{"t":5,"p":1,"n":"DNAM - Custom Color - Contribution"},{"t":5,"p":1,"n":"ENAM - Red"},{"t":5,"p":1,"n":"FNAM - Green"},{"t":5,"p":1,"n":"GNAM - Blue"},{"t":5,"p":1,"n":"HNAM - Density - Contribution"},{"t":5,"p":1,"n":"INAM - Density - Size"},{"t":5,"p":1,"n":"JNAM - Density - Wind Speed"},{"t":5,"p":1,"n":"KNAM - Density - Falling Speed"},{"t":5,"p":1,"n":"LNAM - Phase Function - Contribution"},{"t":5,"p":1,"n":"MNAM - Phase Function - Scattering"},{"t":5,"p":1,"n":"NNAM - Sampling Repartition - Range Factor"}]},{"t":1,"p":1,"n":"VTYP - Voice Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Flags"}]},{"t":1,"p":1,"n":"WATR - Water","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"n":"Unused","c":[{"t":2,"n":"NNAM - Noise Map"}]},{"t":3,"p":1,"n":"ANAM - Opacity"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":11,"n":"MNAM - Unused"},{"t":3,"p":1,"n":"TNAM - Material"},{"t":3,"p":1,"n":"SNAM - Open Sound"},{"t":3,"p":1,"n":"XNAM - Spell"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":3,"p":1,"n":"DATA - Damage Per Second"},{"t":6,"s":1,"p":1,"n":"DNAM - Visual Data","c":[{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Specular Properties - Sun Specular Power"},{"t":5,"p":1,"n":"Water Properties - Reflectivity Amount"},{"t":5,"p":1,"n":"Water Properties - Fresnel Amount"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Distance - Near Plane"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Distance - Far Plane"},{"t":6,"p":1,"n":"Shallow Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Deep Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Reflection Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Displacement Simulator - Starting Size"},{"t":5,"p":1,"n":"Displacement Simulator - Force"},{"t":5,"p":1,"n":"Displacement Simulator - Velocity"},{"t":5,"p":1,"n":"Displacement Simulator - Falloff"},{"t":5,"p":1,"n":"Displacement Simulator - Dampner"},{"t":5,"p":1,"n":"Noise Properties - Noise Falloff"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Wind Speed"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Wind Speed"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Wind Speed"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Amount"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Amount"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Distance - Near Plane"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Distance - Far Plane"},{"t":5,"p":1,"n":"Water Properties - Refraction Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Specular Power"},{"t":5,"p":1,"n":"Specular Properties - Specular Radius"},{"t":5,"p":1,"n":"Specular Properties - Specular Brightness"},{"t":5,"p":1,"n":"Noise Properties - Layer One - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Amplitude Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Amplitude Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Amplitude Scale"},{"t":5,"p":1,"n":"Water Properties - Reflection Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Sun Sparkle Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Sun Specular Magnitude"},{"t":5,"p":1,"n":"Depth Properties - Reflections"},{"t":5,"p":1,"n":"Depth Properties - Refraction"},{"t":5,"p":1,"n":"Depth Properties - Normals"},{"t":5,"p":1,"n":"Depth Properties - Specular Lighting"},{"t":5,"p":1,"n":"Specular Properties - Sun Sparkle Power"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"s":1,"p":1,"n":"NAM0 - Linear Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"NAM1 - Angular Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"NAM2 - Noise Layer One - Noise Texture"},{"t":2,"p":1,"n":"NAM3 - Noise Layer Two - Noise Texture"},{"t":2,"p":1,"n":"NAM4 - Noise Layer Three - Noise Texture"},{"t":2,"p":1,"n":"NAM5 - Flow Normals - Noise Texture"}]},{"t":1,"p":1,"n":"WEAP - Weapon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Has Scope","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO3S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"p":1,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"WNAM - 1st Person Model Object"},{"t":3,"p":1,"n":"SNAM - Attack Sound"},{"t":3,"p":1,"n":"XNAM - Attack Sound 2D"},{"t":3,"p":1,"n":"NAM7 - Attack Loop Sound"},{"t":3,"p":1,"n":"TNAM - Attack Fail Sound"},{"t":3,"p":1,"n":"UNAM - Idle Sound"},{"t":3,"p":1,"n":"NAM9 - Equip Sound"},{"t":3,"p":1,"n":"NAM8 - Unequip Sound"},{"t":6,"s":1,"p":1,"n":"DATA - Game Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Damage"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Reach"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Base VATS To-Hit Chance"},{"t":3,"p":1,"n":"Attack Animation"},{"t":3,"p":1,"n":"# Projectiles"},{"t":3,"p":1,"n":"Embedded Weapon AV (unused)"},{"t":5,"p":1,"n":"Range Min"},{"t":5,"p":1,"n":"Range Max"},{"t":3,"p":1,"n":"On Hit"},{"t":3,"p":1,"n":"Flags2"},{"t":5,"p":1,"n":"Animation Attack Mult"},{"t":5,"p":1,"n":"Rumble - Left Motor Strength"},{"t":5,"p":1,"n":"Rumble - Right Motor Strength"},{"t":5,"p":1,"n":"Rumble - Duration"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Resist"},{"t":5,"p":1,"n":"Stagger"}]},{"t":6,"s":1,"p":1,"n":"CRDT - Critical Data","c":[{"t":3,"p":1,"n":"Damage"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"% Mult"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Effect"}]},{"t":3,"p":1,"n":"VNAM - Detection Sound Level"},{"t":3,"p":1,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"WOOP - Word of Power","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"TNAM - Translation"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"n":"Unused RNAM","c":[{"t":6,"n":"RNAM - Grid","c":[{"t":3,"n":"Y"},{"t":3,"n":"X"},{"t":7,"n":"References","c":[{"t":6,"n":"Reference","c":[{"t":3,"n":"Ref"},{"t":3,"n":"Y"},{"t":3,"n":"X"}]}]}]}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":3,"p":1,"n":"LTMP - Interior Lighting"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XLCN - Location"},{"t":6,"s":1,"p":1,"n":"Parent","c":[{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":3,"p":1,"n":"CNAM - Climate"},{"t":3,"p":1,"n":"NAM2 - Water"},{"t":3,"p":1,"n":"NAM3 - LOD Water Type"},{"t":5,"p":1,"n":"NAM4 - LOD Water Height"},{"t":6,"s":1,"p":1,"n":"DNAM - Land Data","c":[{"t":5,"p":1,"n":"Default Land Height"},{"t":5,"p":1,"n":"Default Water Height"}]},{"t":2,"p":1,"n":"ICON - Map Image"},{"t":6,"s":1,"p":1,"n":"Cloud Model","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"MNAM - Map Data","c":[{"t":6,"p":1,"n":"Usable Dimensions","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Cell Coordinates","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"SE Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]},{"t":6,"p":1,"n":"Camera Data","c":[{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Initial Pitch"}]}]},{"t":6,"s":1,"p":1,"n":"ONAM - World Map Offset Data","c":[{"t":5,"p":1,"n":"World Map Scale"},{"t":5,"p":1,"n":"Cell X Offset"},{"t":5,"p":1,"n":"Cell Y Offset"},{"t":5,"p":1,"n":"Cell Z Offset"}]},{"t":5,"p":1,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"Object Bounds","c":[{"t":6,"p":1,"n":"NAM0 - Min","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"NAM9 - Max","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":3,"p":1,"n":"ZNAM - Music"},{"t":2,"p":1,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"p":1,"n":"XNAM - Water Noise Texture"},{"t":2,"p":1,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"p":1,"n":"UNAM - HD LOD Normal Texture"},{"t":2,"p":1,"n":"XWEM - Water Environment Map (unused)"},{"t":11,"n":"OFST - Offset Data"}]},{"t":1,"p":1,"n":"WTHR - Weather","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"p":1,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"p":1,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"p":1,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"p":1,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"p":1,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"p":1,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"p":1,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"p":1,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"p":1,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"p":1,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"p":1,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"p":1,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"p":1,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"p":1,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"p":1,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"p":1,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"p":1,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"p":1,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"p":1,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"p":1,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"p":1,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"p":1,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"p":1,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"p":1,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"p":1,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"p":1,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"p":1,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"p":1,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"DNAM - Unused"},{"t":11,"n":"CNAM - Unused"},{"t":11,"n":"ANAM - Unused"},{"t":11,"n":"BNAM - Unused"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Precipitation Type"},{"t":3,"p":1,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"s":1,"p":1,"n":"Cloud Speed","c":[{"t":7,"p":1,"n":"RNAM - Y Speed","c":[{"t":3,"p":1,"n":"Layer"}]},{"t":7,"p":1,"n":"QNAM - X Speed","c":[{"t":3,"p":1,"n":"Layer"}]}]},{"t":7,"s":1,"p":1,"n":"PNAM - Cloud Colors","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"s":1,"p":1,"n":"JNAM - Cloud Alphas","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":5,"p":1,"n":"Sunrise"},{"t":5,"p":1,"n":"Day"},{"t":5,"p":1,"n":"Sunset"},{"t":5,"p":1,"n":"Night"}]}]},{"t":6,"s":1,"p":1,"n":"NAM0 - Weather Colors","c":[{"t":6,"p":1,"n":"Sky-Upper","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sunlight","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Stars","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky-Lower","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Horizon","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Effect Lighting","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Diffuse","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky Statics","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Water Multiplier","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Moon Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":6,"s":1,"p":1,"n":"FNAM - Fog Distance","c":[{"t":5,"p":1,"n":"Day - Near"},{"t":5,"p":1,"n":"Day - Far"},{"t":5,"p":1,"n":"Night - Near"},{"t":5,"p":1,"n":"Night - Far"},{"t":5,"p":1,"n":"Day - Power"},{"t":5,"p":1,"n":"Night - Power"},{"t":5,"p":1,"n":"Day - Max"},{"t":5,"p":1,"n":"Night - Max"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Trans Delta"},{"t":3,"p":1,"n":"Sun Glare"},{"t":3,"p":1,"n":"Sun Damage"},{"t":3,"p":1,"n":"Precipitation - Begin Fade In"},{"t":3,"p":1,"n":"Precipitation - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"p":1,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Frequency"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Lightning Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Visual Effect - Begin"},{"t":3,"p":1,"n":"Visual Effect - End"},{"t":3,"p":1,"n":"Wind Direction"},{"t":3,"p":1,"n":"Wind Direction Range"}]},{"t":3,"p":1,"n":"NAM1 - Disabled Cloud Layers"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Sky Statics","d":1,"c":[{"t":3,"p":1,"n":"TNAM - Static"}]},{"t":6,"s":1,"p":1,"n":"IMSP - Image Spaces","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"}]},{"t":6,"s":1,"p":1,"n":"HNAM - Volumetric Lighting","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"}]},{"t":6,"s":1,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"DALC - Sunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Day","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Sunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Night","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":6,"s":1,"p":1,"n":"Aurora","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":3,"p":1,"n":"GNAM - Sun Glare Lens Flare"}]},{"t":1,"p":1,"n":"ACHR - Placed NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":6,"s":1,"p":1,"n":"Patrol Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":3,"p":1,"n":"TNAM - Topic"}]},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XMRC - Merchant Container"},{"t":3,"p":1,"n":"XCNT - Count"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":5,"p":1,"n":"XHLP - Health"},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XCLP - Linked Reference Color","c":[{"t":6,"p":1,"n":"Link Start Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Link End Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XHOR - Horse"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIBS - Ignored By Sandbox"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]}]},"name":"Smash.All","hash":"B5A65E9D","color":128}
\ No newline at end of file
+{"records":"ACHR,ACTI,ADDN,ALCH,AMMO,ANIO,APPA,ARMA,ARMO,ARTO,ASPC,ASTP,AVIF,BOOK,BPTD,CAMS,CELL,CLAS,CLDC,CLFM,CLMT,COBJ,COLL,CONT,CPTH,CSTY,DEBR,DIAL,DLBR,DLVW,DOOR,DUAL,ECZN,EFSH,ENCH,EQUP,EXPL,EYES,FACT,FLOR,FLST,FSTP,FSTS,FURN,GLOB,GMST,GRAS,HAIR,HAZD,HDPT,IDLM,IMAD,IMGS,INFO,INGR,IPCT,IPDS,KEYM,KYWD,LAND,LCRT,LENS,LGTM,LIGH,LSCR,LTEX,LVLI,LVLN,LVSP,MATO,MATT,MESG,MGEF,MISC,MOVT,MSTT,MUSC,MUST,NPC_,OTFT,PACK,PARW,PBAR,PBEA,PCON,PERK,PFLA,PGRE,PHZD,Play,PMIS,PROJ,PWAT,QUST,RACE,REFR,REGN,RELA,REVB,RFCT,RGDL,SCEN,SCOL,SCPT,SCRL,SHOU,SLGM,SMBN,SMEN,SMQN,SNCT,SNDR,SOPM,SOUN,SPEL,SPGD,STAT,TACT,TREE,TXST,VOLI,VTYP,WATR,WEAP,WOOP,WRLD,WTHR,AACT","description":"Smashes all the things. Produced using autoset attributes on all record types. Replaces the old \"Automatic\" setting.\r\n\r\nLast updated 8\/17\/2021.","tree":{"records":[{"t":1,"p":1,"n":"ACHR - Placed NPC","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"Starts Dead"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"p":1,"n":"No AI Acquire"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":6,"s":1,"p":1,"n":"Patrol Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":3,"p":1,"n":"TNAM - Topic"}]},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XMRC - Merchant Container"},{"t":3,"p":1,"n":"XCNT - Count"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":5,"p":1,"n":"XHLP - Health"},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XCLP - Linked Reference Color","c":[{"t":6,"p":1,"n":"Link Start Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Link End Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XHOR - Horse"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIBS - Ignored By Sandbox"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"ACTI - Activator","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"p":1,"n":"Has Tree LOD"},{"t":4,"n":"Unknown 7"},{"t":4,"p":1,"n":"Must Update Anims"},{"t":4,"p":1,"n":"Hidden From Local Map"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Has Distant LOD"},{"t":4,"p":1,"n":"Random Anim Start"},{"t":4,"p":1,"n":"Dangerous"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"p":1,"n":"Ignore Object Interaction"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"p":1,"n":"Is Marker"},{"t":4,"n":"Unknown 24"},{"t":4,"p":1,"n":"Obstacle"},{"t":4,"p":1,"n":"NavMesh Generation - Filter"},{"t":4,"p":1,"n":"NavMesh Generation - Bounding Box"},{"t":4,"n":"Unknown 28"},{"t":4,"p":1,"n":"Child Can Use"},{"t":4,"p":1,"n":"NavMesh Generation - Ground"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"PNAM - Marker Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"SNAM - Sound - Looping"},{"t":3,"p":1,"n":"VNAM - Sound - Activation"},{"t":3,"p":1,"n":"WNAM - Water Type"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"No Displacement"},{"t":4,"p":1,"n":"Ignored by Sandbox"}]},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"}]},{"t":1,"p":1,"n":"ADDN - Addon Node","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DATA - Node Index"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Master Particle System Cap"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"p":1,"n":"Medicine"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Auto-Calc"},{"t":4,"p":1,"n":"Food Item"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"p":1,"n":"Medicine"},{"t":4,"p":1,"n":"Poison"}]},{"t":3,"p":1,"n":"Addiction"},{"t":5,"p":1,"n":"Addiction Chance"},{"t":3,"p":1,"n":"Sound - Consume"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"p":1,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Ignores Normal Weapon Resistance"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"p":1,"n":"Non-Bolt"}]},{"t":5,"p":1,"n":"Damage"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":2,"p":1,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"ANIO - Animated Object","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":2,"p":1,"n":"BNAM - Unload Event"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"QUAL - Quality"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"p":1,"n":"30 - Head"},{"t":4,"p":1,"n":"31 - Hair"},{"t":4,"p":1,"n":"32 - Body"},{"t":4,"p":1,"n":"33 - Hands"},{"t":4,"p":1,"n":"34 - Forearms"},{"t":4,"p":1,"n":"35 - Amulet"},{"t":4,"p":1,"n":"36 - Ring"},{"t":4,"p":1,"n":"37 - Feet"},{"t":4,"p":1,"n":"38 - Calves"},{"t":4,"p":1,"n":"39 - Shield"},{"t":4,"p":1,"n":"40 - Tail"},{"t":4,"p":1,"n":"41 - LongHair"},{"t":4,"p":1,"n":"42 - Circlet"},{"t":4,"p":1,"n":"43 - Ears"},{"t":4,"p":1,"n":"44 - Unnamed"},{"t":4,"p":1,"n":"45 - Unnamed"},{"t":4,"p":1,"n":"46 - Unnamed"},{"t":4,"p":1,"n":"47 - Unnamed"},{"t":4,"p":1,"n":"48 - Unnamed"},{"t":4,"p":1,"n":"49 - Unnamed"},{"t":4,"p":1,"n":"50 - DecapitateHead"},{"t":4,"p":1,"n":"51 - Decapitate"},{"t":4,"p":1,"n":"52 - Unnamed"},{"t":4,"p":1,"n":"53 - Unnamed"},{"t":4,"p":1,"n":"54 - Unnamed"},{"t":4,"p":1,"n":"55 - Unnamed"},{"t":4,"p":1,"n":"56 - Unnamed"},{"t":4,"p":1,"n":"57 - Unnamed"},{"t":4,"p":1,"n":"58 - Unnamed"},{"t":4,"p":1,"n":"59 - Unnamed"},{"t":4,"p":1,"n":"60 - Unnamed"},{"t":4,"p":1,"n":"61 - FX01"}]},{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"p":1,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BODT - Body Template","lf":"BODT - Body Template"},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"p":1,"n":"30 - Head"},{"t":4,"p":1,"n":"31 - Hair"},{"t":4,"p":1,"n":"32 - Body"},{"t":4,"p":1,"n":"33 - Hands"},{"t":4,"p":1,"n":"34 - Forearms"},{"t":4,"p":1,"n":"35 - Amulet"},{"t":4,"p":1,"n":"36 - Ring"},{"t":4,"p":1,"n":"37 - Feet"},{"t":4,"p":1,"n":"38 - Calves"},{"t":4,"p":1,"n":"39 - Shield"},{"t":4,"p":1,"n":"40 - Tail"},{"t":4,"p":1,"n":"41 - LongHair"},{"t":4,"p":1,"n":"42 - Circlet"},{"t":4,"p":1,"n":"43 - Ears"},{"t":4,"p":1,"n":"44 - Unnamed"},{"t":4,"p":1,"n":"45 - Unnamed"},{"t":4,"p":1,"n":"46 - Unnamed"},{"t":4,"p":1,"n":"47 - Unnamed"},{"t":4,"p":1,"n":"48 - Unnamed"},{"t":4,"p":1,"n":"49 - Unnamed"},{"t":4,"p":1,"n":"50 - DecapitateHead"},{"t":4,"p":1,"n":"51 - Decapitate"},{"t":4,"p":1,"n":"52 - Unnamed"},{"t":4,"p":1,"n":"53 - Unnamed"},{"t":4,"p":1,"n":"54 - Unnamed"},{"t":4,"p":1,"n":"55 - Unnamed"},{"t":4,"p":1,"n":"56 - Unnamed"},{"t":4,"p":1,"n":"57 - Unnamed"},{"t":4,"p":1,"n":"58 - Unnamed"},{"t":4,"p":1,"n":"59 - Unnamed"},{"t":4,"p":1,"n":"60 - Unnamed"},{"t":4,"p":1,"n":"61 - FX01"}]},{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"p":1,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BOD2 - Biped Body Template","lf":"BOD2 - Biped Body Template"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Male Priority"},{"t":3,"p":1,"n":"Female Priority"},{"t":3,"p":1,"n":"Weight slider - Male","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Enabled"}]},{"t":3,"p":1,"n":"Weight slider - Female","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Enabled"}]},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Detection Sound Value"},{"t":5,"p":1,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model FileName"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO2S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model FileName"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO3S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model FileName"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO4S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model FileName"},{"t":11,"p":1,"n":"MO5T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO5S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"NAM0 - Male Skin Texture"},{"t":3,"p":1,"n":"NAM1 - Female Skin texture"},{"t":3,"p":1,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"p":1,"n":"NAM3 - Female Skin Texture Swap List"},{"t":8,"p":1,"n":"Additional Races","d":1,"c":[{"t":3,"p":1,"n":"MODL - Race"}]},{"t":3,"p":1,"n":"SNDD - Footstep Sound"},{"t":3,"p":1,"n":"ONAM - Art Object"}]},{"t":1,"p":1,"n":"ARMO - Armor","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"p":1,"n":"Shield"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model FileName"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO2S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD4 - Model FileName"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO4S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon 2 (female)","c":[{"t":2,"p":1,"n":"ICO2 - Large Icon FileName"},{"t":2,"p":1,"n":"MIC2 - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"p":1,"n":"30 - Head"},{"t":4,"p":1,"n":"31 - Hair"},{"t":4,"p":1,"n":"32 - Body"},{"t":4,"p":1,"n":"33 - Hands"},{"t":4,"p":1,"n":"34 - Forearms"},{"t":4,"p":1,"n":"35 - Amulet"},{"t":4,"p":1,"n":"36 - Ring"},{"t":4,"p":1,"n":"37 - Feet"},{"t":4,"p":1,"n":"38 - Calves"},{"t":4,"p":1,"n":"39 - Shield"},{"t":4,"p":1,"n":"40 - Tail"},{"t":4,"p":1,"n":"41 - LongHair"},{"t":4,"p":1,"n":"42 - Circlet"},{"t":4,"p":1,"n":"43 - Ears"},{"t":4,"p":1,"n":"44 - Unnamed"},{"t":4,"p":1,"n":"45 - Unnamed"},{"t":4,"p":1,"n":"46 - Unnamed"},{"t":4,"p":1,"n":"47 - Unnamed"},{"t":4,"p":1,"n":"48 - Unnamed"},{"t":4,"p":1,"n":"49 - Unnamed"},{"t":4,"p":1,"n":"50 - DecapitateHead"},{"t":4,"p":1,"n":"51 - Decapitate"},{"t":4,"p":1,"n":"52 - Unnamed"},{"t":4,"p":1,"n":"53 - Unnamed"},{"t":4,"p":1,"n":"54 - Unnamed"},{"t":4,"p":1,"n":"55 - Unnamed"},{"t":4,"p":1,"n":"56 - Unnamed"},{"t":4,"p":1,"n":"57 - Unnamed"},{"t":4,"p":1,"n":"58 - Unnamed"},{"t":4,"p":1,"n":"59 - Unnamed"},{"t":4,"p":1,"n":"60 - Unnamed"},{"t":4,"p":1,"n":"61 - FX01"}]},{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"p":1,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BODT - Body Template","lf":"BODT - Body Template"},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"p":1,"n":"30 - Head"},{"t":4,"p":1,"n":"31 - Hair"},{"t":4,"p":1,"n":"32 - Body"},{"t":4,"p":1,"n":"33 - Hands"},{"t":4,"p":1,"n":"34 - Forearms"},{"t":4,"p":1,"n":"35 - Amulet"},{"t":4,"p":1,"n":"36 - Ring"},{"t":4,"p":1,"n":"37 - Feet"},{"t":4,"p":1,"n":"38 - Calves"},{"t":4,"p":1,"n":"39 - Shield"},{"t":4,"p":1,"n":"40 - Tail"},{"t":4,"p":1,"n":"41 - LongHair"},{"t":4,"p":1,"n":"42 - Circlet"},{"t":4,"p":1,"n":"43 - Ears"},{"t":4,"p":1,"n":"44 - Unnamed"},{"t":4,"p":1,"n":"45 - Unnamed"},{"t":4,"p":1,"n":"46 - Unnamed"},{"t":4,"p":1,"n":"47 - Unnamed"},{"t":4,"p":1,"n":"48 - Unnamed"},{"t":4,"p":1,"n":"49 - Unnamed"},{"t":4,"p":1,"n":"50 - DecapitateHead"},{"t":4,"p":1,"n":"51 - Decapitate"},{"t":4,"p":1,"n":"52 - Unnamed"},{"t":4,"p":1,"n":"53 - Unnamed"},{"t":4,"p":1,"n":"54 - Unnamed"},{"t":4,"p":1,"n":"55 - Unnamed"},{"t":4,"p":1,"n":"56 - Unnamed"},{"t":4,"p":1,"n":"57 - Unnamed"},{"t":4,"p":1,"n":"58 - Unnamed"},{"t":4,"p":1,"n":"59 - Unnamed"},{"t":4,"p":1,"n":"60 - Unnamed"},{"t":4,"p":1,"n":"61 - FX01"}]},{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"p":1,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BOD2 - Biped Body Template","lf":"BOD2 - Biped Body Template"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Armature","d":1,"c":[{"t":3,"p":1,"n":"MODL - Model FileName"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"DNAM - Armor Rating"},{"t":3,"p":1,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"ARTO - Art Object","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"ASPC - Acoustic Space","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SNAM - Ambient Sound"},{"t":3,"p":1,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"p":1,"n":"BNAM - Environment Type (reverb)"}]},{"t":1,"p":1,"n":"ASTP - Association Type","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MPRT - Male Parent Title"},{"t":2,"p":1,"n":"FPRT - Female Parent Title"},{"t":2,"p":1,"n":"MCHT - Male Child Title"},{"t":2,"p":1,"n":"FCHT - Female Child Title"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Family Association"}]}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ANAM - Abbreviation"},{"t":11,"n":"CNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"AVSK - Skill","c":[{"t":5,"p":1,"n":"Skill Use Mult"},{"t":5,"p":1,"n":"Skill Offset Mult"},{"t":5,"p":1,"n":"Skill Improve Mult"},{"t":5,"p":1,"n":"Skill Improve Offset"}]},{"t":8,"s":1,"p":1,"n":"Perk Tree","d":1,"c":[{"t":6,"p":1,"n":"Node","c":[{"t":3,"p":1,"n":"PNAM - Perk"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"XNAM - Perk-Grid X"},{"t":3,"p":1,"n":"YNAM - Perk-Grid Y"},{"t":5,"p":1,"n":"HNAM - Horizontal Position"},{"t":5,"p":1,"n":"VNAM - Vertical Position"},{"t":3,"p":1,"n":"SNAM - Associated Skill"},{"t":8,"p":1,"n":"Connections","c":[{"t":3,"p":1,"n":"CNAM - Line to Index"}]},{"t":3,"p":1,"n":"INAM - Index"}]}]}]},{"t":1,"p":1,"n":"BOOK - Book","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":2,"p":1,"n":"DESC - Book Text"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Teaches Skill"},{"t":4,"p":1,"n":"Can't be Taken"},{"t":4,"p":1,"n":"Teaches Spell"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"INAM - Inventory Art"},{"t":2,"p":1,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"BPTD - Body Part Data","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":10,"p":1,"n":"Body Parts","d":1,"c":[{"t":6,"p":1,"n":"Body Part","c":[{"t":2,"p":1,"n":"BPTN - Part Name"},{"t":2,"p":1,"n":"PNAM - Pose Matching"},{"t":2,"p":1,"n":"BPNN - Part Node"},{"t":2,"p":1,"n":"BPNT - VATS Target"},{"t":2,"p":1,"n":"BPNI - IK Data - Start Node"},{"t":6,"p":1,"n":"BPND - BPND","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Severable"},{"t":4,"p":1,"n":"IK Data"},{"t":4,"p":1,"n":"IK Data - Biped Data"},{"t":4,"p":1,"n":"Explodable"},{"t":4,"p":1,"n":"IK Data - Is Head"},{"t":4,"p":1,"n":"IK Data - Headtracking"},{"t":4,"p":1,"n":"To Hit Chance - Absolute"}]},{"t":3,"p":1,"n":"Part Type"},{"t":3,"p":1,"n":"Health Percent"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"To Hit Chance"},{"t":3,"p":1,"n":"Explodable - Explosion Chance %"},{"t":3,"p":1,"n":"Explodable - Debris Count"},{"t":3,"p":1,"n":"Explodable - Debris"},{"t":3,"p":1,"n":"Explodable - Explosion"},{"t":5,"p":1,"n":"Tracking Max Angle"},{"t":5,"p":1,"n":"Explodable - Debris Scale"},{"t":3,"p":1,"n":"Severable - Debris Count"},{"t":3,"p":1,"n":"Severable - Debris"},{"t":3,"p":1,"n":"Severable - Explosion"},{"t":5,"p":1,"n":"Severable - Debris Scale"},{"t":6,"p":1,"n":"Gore Effects Positioning","c":[{"t":6,"p":1,"n":"Translate","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Severable - Impact DataSet"},{"t":3,"p":1,"n":"Explodable - Impact DataSet"},{"t":3,"p":1,"n":"Severable - Decal Count"},{"t":3,"p":1,"n":"Explodable - Decal Count"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Limb Replacement Scale"}]},{"t":2,"p":1,"n":"NAM1 - Limb Replacement Model"},{"t":2,"p":1,"n":"NAM4 - Gore Effects - Target Bone"},{"t":11,"p":1,"n":"NAM5 - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"CAMS - Camera Shot","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Action"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Position Follows Location"},{"t":4,"p":1,"n":"Rotation Follows Target"},{"t":4,"p":1,"n":"Don't Follow Bone"},{"t":4,"p":1,"n":"First Person Camera"},{"t":4,"p":1,"n":"No Tracer"},{"t":4,"p":1,"n":"Start At Time Zero"}]},{"t":6,"p":1,"n":"Time Multipliers","c":[{"t":5,"p":1,"n":"Player"},{"t":5,"p":1,"n":"Target"},{"t":5,"p":1,"n":"Global"}]},{"t":5,"p":1,"n":"Max Time"},{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Target % Between Actors"},{"t":5,"p":1,"n":"Near Target Distance"}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"}]},{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"p":1,"n":"Off Limits"},{"t":4,"p":1,"n":"Compressed"},{"t":4,"p":1,"n":"Can't Wait"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Is Interior Cell"},{"t":4,"p":1,"n":"Has Water"},{"t":4,"p":1,"n":"Can't Travel From Here"},{"t":4,"p":1,"n":"No LOD Water"},{"t":4,"n":"Unknown 5"},{"t":4,"p":1,"n":"Public Area"},{"t":4,"p":1,"n":"Hand Changed"},{"t":4,"p":1,"n":"Show Sky"},{"t":4,"p":1,"n":"Use Sky Lighting"}]},{"t":6,"s":1,"p":1,"n":"XCLC - Grid","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Force Hide Land","c":[{"t":4,"p":1,"n":"Quad 1"},{"t":4,"p":1,"n":"Quad 2"},{"t":4,"p":1,"n":"Quad 3"},{"t":4,"p":1,"n":"Quad 4"}]}]},{"t":6,"s":1,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Ambient Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":3,"p":1,"n":"Inherits","c":[{"t":4,"p":1,"n":"Ambient Color"},{"t":4,"p":1,"n":"Directional Color"},{"t":4,"p":1,"n":"Fog Color"},{"t":4,"p":1,"n":"Fog Near"},{"t":4,"p":1,"n":"Fog Far"},{"t":4,"p":1,"n":"Directional Rotation"},{"t":4,"p":1,"n":"Directional Fade"},{"t":4,"p":1,"n":"Clip Distance"},{"t":4,"p":1,"n":"Fog Power"},{"t":4,"p":1,"n":"Fog Max"},{"t":4,"p":1,"n":"Light Fade Distances"}]}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"p":1,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":2,"p":1,"n":"XNAM - Water Noise Texture"},{"t":7,"p":1,"n":"XCLR - Regions","c":[{"t":3,"p":1,"n":"Region"}]},{"t":3,"p":1,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XILL - Lock List"},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"p":1,"n":"XCAS - Acoustic Space"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"}]},{"t":1,"p":1,"n":"CLAS - Class","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Teaches"},{"t":3,"p":1,"n":"Maximum training level"},{"t":7,"p":1,"n":"Skill Weights","c":[{"t":3,"p":1,"n":"One Handed"},{"t":3,"p":1,"n":"Two Handed"},{"t":3,"p":1,"n":"Archery"},{"t":3,"p":1,"n":"Block"},{"t":3,"p":1,"n":"Smithing"},{"t":3,"p":1,"n":"Heavy Armor"},{"t":3,"p":1,"n":"Light Armor"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"p":1,"n":"Lockpicking"},{"t":3,"p":1,"n":"Sneak"},{"t":3,"p":1,"n":"Alchemy"},{"t":3,"p":1,"n":"Speech"},{"t":3,"p":1,"n":"Alteration"},{"t":3,"p":1,"n":"Conjuration"},{"t":3,"p":1,"n":"Destruction"},{"t":3,"p":1,"n":"Illusion"},{"t":3,"p":1,"n":"Restoration"},{"t":3,"p":1,"n":"Enchanting"}]},{"t":5,"p":1,"n":"Bleedout Default"},{"t":3,"p":1,"n":"Voice Points"},{"t":7,"p":1,"n":"Attribute Weights","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"Magicka"},{"t":3,"p":1,"n":"Stamina"},{"t":3,"n":"Unknown"}]}]}]},{"t":1,"p":1,"n":"CLDC","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"CLFM - Color","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"FNAM - Playable"}]},{"t":1,"p":1,"n":"CLMT - Climate","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"WLST - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":2,"p":1,"n":"FNAM - Sun Texture"},{"t":2,"p":1,"n":"GNAM - Sun Glare Texture"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"TNAM - Timing","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":3,"p":1,"n":"Volatility"},{"t":3,"p":1,"n":"Moons \/ Phase Length"}]}]},{"t":1,"p":1,"n":"COBJ - Constructible Object","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":10,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"p":1,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"CNAM - Created Object"},{"t":3,"p":1,"n":"BNAM - Workbench Keyword"},{"t":3,"p":1,"n":"NAM1 - Created Object Count"}]},{"t":1,"p":1,"n":"COLL - Collision Layer","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"BNAM - Index"},{"t":6,"s":1,"p":1,"n":"FNAM - Debug Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"GNAM - Flags","c":[{"t":4,"p":1,"n":"Trigger Volume"},{"t":4,"p":1,"n":"Sensor"},{"t":4,"p":1,"n":"Navmesh Obstacle"}]},{"t":2,"p":1,"n":"MNAM - Name"},{"t":3,"n":"INTV - Interactables Count"},{"t":7,"p":1,"n":"CNAM - Collides With","c":[{"t":3,"p":1,"n":"Forms"}]}]},{"t":1,"p":1,"n":"CONT - Container","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Has Distant LOD"},{"t":4,"p":1,"n":"Random Anim Start"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"p":1,"n":"Obstacle"},{"t":4,"p":1,"n":"NavMesh Generation - Filter"},{"t":4,"p":1,"n":"NavMesh Generation - Bounding Box"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"NavMesh Generation - Ground"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Allow Sounds When Animation"},{"t":4,"p":1,"n":"Respawns"},{"t":4,"p":1,"n":"Show Owner"}]},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"CPTH - Camera Path","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"ANAM - Related Camera Paths","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Previous Sibling"}]},{"t":3,"p":1,"n":"DATA - Camera Zoom"},{"t":8,"s":1,"p":1,"n":"Camera Shots","d":1,"c":[{"t":3,"p":1,"n":"SNAM - Camera Shot"}]}]},{"t":1,"p":1,"n":"CSTY - Combat Style","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"p":1,"n":"Allow Dual Wielding"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CSGD - General","c":[{"t":5,"p":1,"n":"Offensive Mult"},{"t":5,"p":1,"n":"Defensive Mult"},{"t":5,"p":1,"n":"Group Offensive Mult"},{"t":5,"p":1,"n":"Equipment Score Mult - Melee"},{"t":5,"p":1,"n":"Equipment Score Mult - Magic"},{"t":5,"p":1,"n":"Equipment Score Mult - Ranged"},{"t":5,"p":1,"n":"Equipment Score Mult - Shout"},{"t":5,"p":1,"n":"Equipment Score Mult - Unarmed"},{"t":5,"p":1,"n":"Equipment Score Mult - Staff"},{"t":5,"p":1,"n":"Avoid Threat Chance"}]},{"t":11,"n":"CSMD - Unknown"},{"t":6,"s":1,"p":1,"n":"CSME - Melee","c":[{"t":5,"p":1,"n":"Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Blocking Mult"},{"t":5,"p":1,"n":"Bash Mult"},{"t":5,"p":1,"n":"Bash Recoil Mult"},{"t":5,"p":1,"n":"Bash Attack Mult"},{"t":5,"p":1,"n":"Bash Power Attack Mult"},{"t":5,"p":1,"n":"Special Attack Mult"}]},{"t":6,"s":1,"p":1,"n":"CSCR - Close Range","c":[{"t":5,"p":1,"n":"Circle Mult"},{"t":5,"p":1,"n":"Fallback Mult"},{"t":5,"p":1,"n":"Flank Distance"},{"t":5,"p":1,"n":"Stalk Time"}]},{"t":6,"s":1,"p":1,"n":"CSLR - Long Range","c":[{"t":5,"p":1,"n":"Strafe Mult"}]},{"t":6,"s":1,"p":1,"n":"CSFL - Flight","c":[{"t":5,"p":1,"n":"Hover Chance"},{"t":5,"p":1,"n":"Dive Bomb Chance"},{"t":5,"p":1,"n":"Ground Attack Chance"},{"t":5,"p":1,"n":"Hover Time"},{"t":5,"p":1,"n":"Ground Attack Time"},{"t":5,"p":1,"n":"Perch Attack Chance"},{"t":5,"p":1,"n":"Perch Attack Time"},{"t":5,"p":1,"n":"Flying Attack Chance"}]},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Dueling"},{"t":4,"p":1,"n":"Flanking"},{"t":4,"p":1,"n":"Allow Dual Wielding"}]}]},{"t":1,"p":1,"n":"DEBR - Debris","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model FileName"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Has Collision Data"}]}]},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"p":1,"n":"PNAM - Priority"},{"t":3,"p":1,"n":"BNAM - Branch"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Topic Flags","c":[{"t":4,"p":1,"n":"Do All Before Repeating"}]},{"t":3,"p":1,"n":"Category"},{"t":3,"p":1,"n":"Subtype"}]},{"t":2,"p":1,"n":"SNAM - Subtype Name"},{"t":3,"p":1,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DLBR - Dialog Branch","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"n":"TNAM - Unknown"},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Top-Level"},{"t":4,"p":1,"n":"Blocking"},{"t":4,"p":1,"n":"Exclusive"}]},{"t":3,"p":1,"n":"SNAM - Starting Topic"}]},{"t":1,"p":1,"n":"DLVW - Dialog View","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Branches","d":1,"c":[{"t":3,"p":1,"n":"BNAM - Branch"}]},{"t":8,"n":"Unknown TNAM","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"TNAM - Unknown"}]}]},{"t":11,"n":"ENAM - Unknown"},{"t":11,"n":"DNAM - Unknown"}]},{"t":1,"n":"DOBJ - Default Object Manager","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"DNAM - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Use"},{"t":3,"n":"Object ID"}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Has Distant LOD"},{"t":4,"p":1,"n":"Random Anim Start"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"p":1,"n":"Is Marker"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"ANAM - Sound - Close"},{"t":3,"p":1,"n":"BNAM - Sound - Loop"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Automatic"},{"t":4,"p":1,"n":"Hidden"},{"t":4,"p":1,"n":"Minimal Use"},{"t":4,"p":1,"n":"Sliding"},{"t":4,"p":1,"n":"Do Not Open in Combat Search"}]}]},{"t":1,"p":1,"n":"DUAL - Dual Cast Data","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Effect Shader"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Inherit Scale","c":[{"t":4,"p":1,"n":"Hit Effect Art"},{"t":4,"p":1,"n":"Projectile"},{"t":4,"p":1,"n":"Explosion"}]}]}]},{"t":1,"p":1,"n":"ECZN - Encounter Zone","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Min Level"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Never Resets"},{"t":4,"p":1,"n":"Match PC Below Minimum Level"},{"t":4,"p":1,"n":"Disable Combat Boundary"}]},{"t":3,"p":1,"n":"Max Level"}]}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture"},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Membrane Shader"},{"t":4,"p":1,"n":"Membrane Grayscale Color"},{"t":4,"p":1,"n":"Membrane Grayscale Alpha"},{"t":4,"p":1,"n":"No Particle Shader"},{"t":4,"p":1,"n":"Edge Effect Inverse"},{"t":4,"p":1,"n":"Affect Skin Only"},{"t":4,"p":1,"n":"Ignore Alpha"},{"t":4,"p":1,"n":"Project UVs"},{"t":4,"p":1,"n":"Ignore Base Geometry Alpha"},{"t":4,"p":1,"n":"Lighting"},{"t":4,"p":1,"n":"No Weapons"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Particle Animated"},{"t":4,"p":1,"n":"Particle Grayscale Color"},{"t":4,"p":1,"n":"Particle Grayscale Alpha"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"Use Blood Geometry"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}]}]},{"t":1,"p":1,"n":"ENCH - Object Effect","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Enchantment Cost"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Auto-Calc"},{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Extend Duration On Recast"}]},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Enchantment Amount"},{"t":3,"p":1,"n":"Target Type"},{"t":3,"p":1,"n":"Enchant Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Base Enchantment"},{"t":3,"p":1,"n":"Worn Restrictions"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"EQUP - Equip Type","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"PNAM - Slot Parents","c":[{"t":3,"p":1,"n":"Can Be Equipped"}]},{"t":3,"p":1,"n":"DATA - Use All Parents"}]},{"t":1,"p":1,"n":"EXPL - Explosion","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Sound 1"},{"t":3,"p":1,"n":"Sound 2"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Placed Object"},{"t":3,"p":1,"n":"Spawn Projectile"},{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Damage"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"IS Radius"},{"t":5,"p":1,"n":"Vertical Offset Mult"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Always Uses World Orientation"},{"t":4,"p":1,"n":"Knock Down - Always"},{"t":4,"p":1,"n":"Knock Down - By Formula"},{"t":4,"p":1,"n":"Ignore LOS Check"},{"t":4,"p":1,"n":"Push Explosion Source Ref Only"},{"t":4,"p":1,"n":"Ignore Image Space Swap"},{"t":4,"p":1,"n":"Chain"},{"t":4,"p":1,"n":"No Controller Vibration"}]},{"t":3,"p":1,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"EYES - Eyes","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"ICON - Texture"},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Playable"},{"t":4,"p":1,"n":"Not Male"},{"t":4,"p":1,"n":"Not Female"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]}]},{"t":1,"p":1,"n":"FACT - Faction","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"p":1,"n":"Relations","d":1,"c":[{"t":6,"s":1,"p":1,"n":"XNAM - Relation","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Modifier"},{"t":3,"p":1,"n":"Group Combat Reaction"}]}]},{"t":6,"p":1,"n":"DATA - Flags","c":[{"t":3,"p":1,"n":"Flags","d":1,"c":[{"t":4,"p":1,"n":"Hidden From NPC"},{"t":4,"p":1,"n":"Special Combat"},{"t":4,"p":1,"n":"Unknown 3"},{"t":4,"p":1,"n":"Unknown 4"},{"t":4,"p":1,"n":"Unknown 5"},{"t":4,"p":1,"n":"Unknown 6"},{"t":4,"p":1,"n":"Track Crime"},{"t":4,"p":1,"n":"Ignore Crimes: Murder"},{"t":4,"p":1,"n":"Ignore Crimes: Assault"},{"t":4,"p":1,"n":"Ignore Crimes: Stealing"},{"t":4,"p":1,"n":"Ignore Crimes: Trespass"},{"t":4,"p":1,"n":"Do Not Report Crimes Against Members"},{"t":4,"p":1,"n":"Crime Gold - Use Defaults"},{"t":4,"p":1,"n":"Ignore Crimes: Pickpocket"},{"t":4,"p":1,"n":"Vendor"},{"t":4,"p":1,"n":"Can Be Owner"},{"t":4,"p":1,"n":"Ignore Crimes: Werewolf"},{"t":4,"p":1,"n":"Unknown 18"},{"t":4,"p":1,"n":"Unknown 19"},{"t":4,"p":1,"n":"Unknown 20"},{"t":4,"p":1,"n":"Unknown 21"},{"t":4,"p":1,"n":"Unknown 22"},{"t":4,"p":1,"n":"Unknown 23"},{"t":4,"p":1,"n":"Unknown 24"},{"t":4,"p":1,"n":"Unknown 25"},{"t":4,"p":1,"n":"Unknown 26"},{"t":4,"p":1,"n":"Unknown 27"},{"t":4,"p":1,"n":"Unknown 28"},{"t":4,"p":1,"n":"Unknown 29"},{"t":4,"p":1,"n":"Unknown 30"},{"t":4,"p":1,"n":"Unknown 31"},{"t":4,"p":1,"n":"Unknown 32"}]}]},{"t":3,"p":1,"n":"JAIL - Exterior Jail Marker"},{"t":3,"p":1,"n":"WAIT - Follower Wait Marker"},{"t":3,"p":1,"n":"STOL - Stolen Goods Container"},{"t":3,"p":1,"n":"PLCN - Player Inventory Container"},{"t":3,"p":1,"n":"CRGR - Shared Crime Faction List"},{"t":3,"p":1,"n":"JOUT - Jail Outfit"},{"t":6,"s":1,"p":1,"n":"CRVA - Crime Values","c":[{"t":3,"p":1,"n":"Arrest"},{"t":3,"p":1,"n":"Attack On Sight"},{"t":3,"p":1,"n":"Murder"},{"t":3,"p":1,"n":"Assault"},{"t":3,"p":1,"n":"Trespass"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"p":1,"n":"Steal Multiplier"},{"t":3,"p":1,"n":"Escape"},{"t":3,"p":1,"n":"Werewolf"}]},{"t":10,"p":1,"n":"Ranks","d":1,"c":[{"t":6,"p":1,"n":"Rank","c":[{"t":3,"p":1,"n":"RNAM - Rank#"},{"t":2,"p":1,"n":"MNAM - Male Title"},{"t":2,"p":1,"n":"FNAM - Female Title"},{"t":2,"n":"INAM - Insignia Unused"}]}]},{"t":3,"p":1,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"p":1,"n":"VENC - Merchant Container"},{"t":6,"s":1,"p":1,"n":"VENV - Vendor Values","c":[{"t":3,"p":1,"n":"Start Hour"},{"t":3,"p":1,"n":"End Hour"},{"t":3,"p":1,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"p":1,"n":"Only Buys Stolen Items"},{"t":3,"p":1,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"s":1,"p":1,"n":"PLVD - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"s":1,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer "},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FLST - FormID List","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"p":1,"n":"FormIDs","d":1,"c":[{"t":3,"p":1,"n":"LNAM - FormID"}]}]},{"t":1,"p":1,"n":"FSTP - Footstep","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Tag"}]},{"t":1,"p":1,"n":"FSTS - Footstep Set","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"XCNT - Count","c":[{"t":3,"p":1,"n":"Walk Forward Sets"},{"t":3,"p":1,"n":"Run Forward Sets"},{"t":3,"p":1,"n":"Walk Forward Alternate Sets"},{"t":3,"p":1,"n":"Run Forward Alternate Sets"},{"t":3,"p":1,"n":"Walk Forward Alternate 2 Sets"}]},{"t":7,"s":1,"p":1,"n":"DATA - Footstep Sets","c":[{"t":3,"p":1,"n":"Footstep"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Is Perch"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Has Distant LOD"},{"t":4,"p":1,"n":"Random Anim Start"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"p":1,"n":"Is Marker"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Must Exit To Talk"},{"t":4,"p":1,"n":"Child Can Use"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"p":1,"n":"Ignored By Sandbox"}]},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags","c":[{"t":4,"p":1,"n":"Sit 0"},{"t":4,"p":1,"n":"Sit 1"},{"t":4,"p":1,"n":"Sit 2"},{"t":4,"p":1,"n":"Sit 3"},{"t":4,"p":1,"n":"Sit 4"},{"t":4,"p":1,"n":"Sit 5"},{"t":4,"p":1,"n":"Sit 6"},{"t":4,"p":1,"n":"Sit 7"},{"t":4,"p":1,"n":"Sit 8"},{"t":4,"p":1,"n":"Sit 9"},{"t":4,"p":1,"n":"Sit 10"},{"t":4,"p":1,"n":"Sit 11"},{"t":4,"p":1,"n":"Sit 12"},{"t":4,"p":1,"n":"Sit 13"},{"t":4,"p":1,"n":"Sit 14"},{"t":4,"p":1,"n":"Sit 15"},{"t":4,"p":1,"n":"Sit 16"},{"t":4,"p":1,"n":"Sit 17"},{"t":4,"p":1,"n":"Sit 18"},{"t":4,"p":1,"n":"Sit 19"},{"t":4,"p":1,"n":"Sit 20"},{"t":4,"p":1,"n":"Sit 21"},{"t":4,"p":1,"n":"Sit 22"},{"t":4,"p":1,"n":"Sit 23"},{"t":4,"n":"Unknown 25"},{"t":4,"p":1,"n":"Disables Activation"},{"t":4,"p":1,"n":"Is Perch"},{"t":4,"p":1,"n":"Must Exit to Talk"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":6,"s":1,"p":1,"n":"WBDT - Workbench Data","c":[{"t":3,"p":1,"n":"Bench Type"},{"t":3,"p":1,"n":"Uses Skill"}]},{"t":3,"p":1,"n":"NAM1 - Associated Spell"},{"t":8,"s":1,"p":1,"n":"Markers","d":1,"c":[{"t":6,"p":1,"n":"Marker","c":[{"t":3,"p":1,"n":"ENAM - Marker Index"},{"t":6,"p":1,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Disabled Points","c":[{"t":4,"p":1,"n":"Front"},{"t":4,"p":1,"n":"Behind"},{"t":4,"p":1,"n":"Right"},{"t":4,"p":1,"n":"Left"},{"t":4,"p":1,"n":"Up"}]}]},{"t":3,"p":1,"n":"FNMK - Marker Keyword"}]}]},{"t":8,"s":1,"p":1,"n":"Marker Entry Points","d":1,"c":[{"t":6,"p":1,"n":"FNPR - Marker","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Entry Points","c":[{"t":4,"p":1,"n":"Front"},{"t":4,"p":1,"n":"Behind"},{"t":4,"p":1,"n":"Right"},{"t":4,"p":1,"n":"Left"},{"t":4,"p":1,"n":"Up"}]}]}]},{"t":2,"p":1,"n":"XMRK - Model FileName"}]},{"t":1,"p":1,"n":"GLOB - Global","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"p":1,"n":"Constant"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Type"},{"t":5,"p":1,"n":"FLTV - Value"}]},{"t":1,"p":1,"n":"GMST - Game Setting","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"Name"},{"t":3,"p":1,"n":"Int"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"}]},{"t":1,"p":1,"n":"GRAS - Grass","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Units From Water"},{"t":3,"p":1,"n":"Units From Water Type"},{"t":5,"p":1,"n":"Position Range"},{"t":5,"p":1,"n":"Height Range"},{"t":5,"p":1,"n":"Color Range"},{"t":5,"p":1,"n":"Wave Period"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Vertex Lighting"},{"t":4,"p":1,"n":"Uniform Scaling"},{"t":4,"p":1,"n":"Fit to Slope"}]}]}]},{"t":1,"p":1,"n":"HAIR","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"HAZD - Hazard","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Limit"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Image Space Radius"},{"t":5,"p":1,"n":"Target Interval"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Affects Player Only"},{"t":4,"p":1,"n":"Inherit Duration from Spawn Spell"},{"t":4,"p":1,"n":"Align to Impact Normal"},{"t":4,"p":1,"n":"Inherit Radius from Spawn Spell"},{"t":4,"p":1,"n":"Drop to Ground"}]},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"Playable"},{"t":4,"p":1,"n":"Male"},{"t":4,"p":1,"n":"Female"},{"t":4,"p":1,"n":"Is Extra Part"},{"t":4,"p":1,"n":"Use Solid Tint"}]},{"t":3,"p":1,"n":"PNAM - Type"},{"t":8,"s":1,"p":1,"n":"Extra Parts","d":1,"c":[{"t":3,"p":1,"n":"HNAM - Part"}]},{"t":8,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"NAM0 - Part Type"},{"t":2,"p":1,"n":"NAM1 - FileName"}]}]},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"CNAM - Color"},{"t":3,"p":1,"n":"RNAM - Valid Races"}]},{"t":1,"n":"IDLE - Idle Animation","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":10,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"DNAM - FileName"},{"t":2,"n":"ENAM - Animation Event"},{"t":7,"n":"ANAM - Related Idle Animations","c":[{"t":3,"n":"Parent"},{"t":3,"n":"Previous Sibling"}]},{"t":6,"n":"DATA - Data (unused)","c":[{"t":6,"n":"Looping seconds (both 255 forever)","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":3,"n":"Flags","c":[{"t":4,"n":"Parent"},{"t":4,"n":"Sequence"},{"t":4,"n":"No Attacking"},{"t":4,"n":"Blocking"}]},{"t":3,"n":"Animation Group Section"},{"t":3,"n":"Replay Delay"}]}]},{"t":1,"p":1,"n":"IDLM - Idle Marker","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"p":1,"n":"Child Can Use"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"IDLF - Flags","c":[{"t":4,"p":1,"n":"Run in Sequence"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Do Once"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"Ignored by Sandbox"}]},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"IMAD - Image Space Adapter","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DNAM - Data Count","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Animatable"}]},{"t":5,"n":"Duration"},{"t":6,"n":"HDR","c":[{"t":3,"n":"Eye Adapt Speed Mult"},{"t":3,"n":"Eye Adapt Speed Add"},{"t":3,"n":"Bloom Blur Radius Mult"},{"t":3,"n":"Bloom Blur Radius Add"},{"t":3,"n":"Bloom Threshold Mult"},{"t":3,"n":"Bloom Threshold Add"},{"t":3,"n":"Bloom Scale Mult"},{"t":3,"n":"Bloom Scale Add"},{"t":3,"n":"Target Lum Min Mult"},{"t":3,"n":"Target Lum Min Add"},{"t":3,"n":"Target Lum Max Mult"},{"t":3,"n":"Target Lum Max Add"},{"t":3,"n":"Sunlight Scale Mult"},{"t":3,"n":"Sunlight Scale Add"},{"t":3,"n":"Sky Scale Mult"},{"t":3,"n":"Sky Scale Add"}]},{"t":3,"n":"Unknown08 Mult"},{"t":3,"n":"Unknown48 Add"},{"t":3,"n":"Unknown09 Mult"},{"t":3,"n":"Unknown49 Add"},{"t":3,"n":"Unknown0A Mult"},{"t":3,"n":"Unknown4A Add"},{"t":3,"n":"Unknown0B Mult"},{"t":3,"n":"Unknown4B Add"},{"t":3,"n":"Unknown0C Mult"},{"t":3,"n":"Unknown4C Add"},{"t":3,"n":"Unknown0D Mult"},{"t":3,"n":"Unknown4D Add"},{"t":3,"n":"Unknown0E Mult"},{"t":3,"n":"Unknown4E Add"},{"t":3,"n":"Unknown0F Mult"},{"t":3,"n":"Unknown4F Add"},{"t":3,"n":"Unknown10 Mult"},{"t":3,"n":"Unknown50 Add"},{"t":6,"n":"Cinematic","c":[{"t":3,"n":"Saturation Mult"},{"t":3,"n":"Saturation Add"},{"t":3,"n":"Brightness Mult"},{"t":3,"n":"Brightness Add"},{"t":3,"n":"Contrast Mult"},{"t":3,"n":"Contrast Add"}]},{"t":3,"n":"Unknown14 Mult"},{"t":3,"n":"Unknown54 Add"},{"t":3,"n":"Tint Color"},{"t":3,"n":"Blur Radius"},{"t":3,"n":"Double Vision Strength"},{"t":3,"n":"Radial Blur Strength"},{"t":3,"n":"Radial Blur Ramp Up"},{"t":3,"n":"Radial Blur Start"},{"t":3,"n":"Radial Blur Flags","c":[{"t":4,"n":"Use Target"}]},{"t":5,"n":"Radial Blur Center X"},{"t":5,"n":"Radial Blur Center Y"},{"t":3,"n":"DoF Strength"},{"t":3,"n":"DoF Distance"},{"t":3,"n":"DoF Range"},{"t":3,"n":"DoF Flags","c":[{"t":4,"n":"Use Target"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Mode - Front"},{"t":4,"n":"Mode - Back"},{"t":4,"n":"No Sky"},{"t":4,"n":"Blur Radius Bit 2"},{"t":4,"n":"Blur Radius Bit 1"},{"t":4,"n":"Blur Radius Bit 0"}]},{"t":3,"n":"Radial Blur Ramp Down"},{"t":3,"n":"Radial Blur Down Start"},{"t":3,"n":"Fade Color"},{"t":3,"n":"Motion Blur Strength"}]},{"t":7,"p":1,"n":"BNAM - Blur Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"VNAM - Double Vision Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"TNAM - Tint Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"NAM3 - Fade Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"RNAM - Radial Blur Strength"},{"t":7,"p":1,"n":"SNAM - Radial Blur Ramp Up"},{"t":7,"p":1,"n":"UNAM - Radial Blur Start"},{"t":7,"p":1,"n":"NAM1 - Radial Blur Ramp Down","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM2 - Radial Blur Down Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"WNAM - DoF Strength"},{"t":7,"p":1,"n":"XNAM - DoF Distance","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"YNAM - DoF Range","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM4 - Motion Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"HDR","c":[{"t":7,"p":1,"n":"aIAD - Eye Adapt Speed Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"@IAD - Eye Adapt Speed Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"bIAD - Bloom Blur Radius Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"AIAD - Bloom Blur Radius Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"cIAD - Bloom Threshold Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"BIAD - Bloom Threshold Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"dIAD - Bloom Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"CIAD - Bloom Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"eIAD - Target Lum Min Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"DIAD - Target Lum Min Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"fIAD - Target Lum Max Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"EIAD - Target Lum Max Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"gIAD - Sunlight Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"FIAD - Sunlight Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"hIAD - Sky Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"GIAD - Sky Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"iIAD - Unknown"},{"t":11,"n":"HIAD - Unknown"},{"t":11,"n":"jIAD - Unknown"},{"t":11,"n":"IIAD - Unknown"},{"t":11,"n":"kIAD - Unknown"},{"t":11,"n":"JIAD - Unknown"},{"t":11,"n":"lIAD - Unknown"},{"t":11,"n":"KIAD - Unknown"},{"t":11,"n":"mIAD - Unknown"},{"t":11,"n":"LIAD - Unknown"},{"t":11,"n":"nIAD - Unknown"},{"t":11,"n":"MIAD - Unknown"},{"t":11,"n":"oIAD - Unknown"},{"t":11,"n":"NIAD - Unknown"},{"t":11,"n":"pIAD - Unknown"},{"t":11,"n":"OIAD - Unknown"},{"t":11,"n":"qIAD - Unknown"},{"t":11,"n":"PIAD - Unknown"},{"t":6,"s":1,"p":1,"n":"Cinematic","c":[{"t":7,"p":1,"n":"rIAD - Saturation Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"QIAD - Saturation Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"sIAD - Brightness Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"RIAD - Brightness Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"tIAD - Contrast Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SIAD - Contrast Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"uIAD - Unknown"},{"t":11,"n":"TIAD - Unknown"}]},{"t":1,"p":1,"n":"IMGS - Image Space","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"ENAM - Unknown"},{"t":6,"s":1,"p":1,"n":"HNAM - HDR","c":[{"t":5,"p":1,"n":"Eye Adapt Speed"},{"t":5,"p":1,"n":"Bloom Blur Radius"},{"t":5,"p":1,"n":"Bloom Threshold"},{"t":5,"p":1,"n":"Bloom Scale"},{"t":5,"p":1,"n":"Receive Bloom Threshold"},{"t":5,"p":1,"n":"White"},{"t":5,"p":1,"n":"Sunlight Scale"},{"t":5,"p":1,"n":"Sky Scale"},{"t":5,"p":1,"n":"Eye Adapt Strength"}]},{"t":6,"s":1,"p":1,"n":"CNAM - Cinematic","c":[{"t":5,"p":1,"n":"Saturation"},{"t":5,"p":1,"n":"Brightness"},{"t":5,"p":1,"n":"Contrast"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Tint","c":[{"t":5,"p":1,"n":"Amount"},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Depth of Field","c":[{"t":5,"p":1,"n":"Strength"},{"t":5,"p":1,"n":"Distance"},{"t":5,"p":1,"n":"Range"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Sky \/ Blur Radius"}]}]},{"t":1,"p":1,"n":"INFO - Dialog response","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"p":1,"n":"Actor Changed"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"Script Fragments","c":[{"t":3,"p":1,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"OnBegin"},{"t":4,"p":1,"n":"OnEnd"}]},{"t":2,"p":1,"n":"FileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":11,"n":"DATA - Unknown"},{"t":6,"s":1,"p":1,"n":"ENAM - Response flags","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Goodbye"},{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Say once"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"p":1,"n":"Random end"},{"t":4,"p":1,"n":"Invisible continue"},{"t":4,"p":1,"n":"Walk Away"},{"t":4,"p":1,"n":"Walk Away Invisible in Menu"},{"t":4,"p":1,"n":"Force subtitle"},{"t":4,"p":1,"n":"Can move while greeting"},{"t":4,"p":1,"n":"No LIP File"},{"t":4,"p":1,"n":"Requires post-processing"},{"t":4,"p":1,"n":"Audio Output Override"},{"t":4,"p":1,"n":"Spends favor points"},{"t":4,"n":"Unknown 16"}]},{"t":3,"p":1,"n":"Reset Hours"}]},{"t":3,"p":1,"n":"TPIC - Topic"},{"t":3,"p":1,"n":"PNAM - Previous INFO"},{"t":3,"p":1,"n":"CNAM - Favor Level"},{"t":8,"p":1,"n":"Link To","d":1,"c":[{"t":3,"p":1,"n":"TCLT - Response"}]},{"t":3,"p":1,"n":"DNAM - Response Data"},{"t":8,"s":1,"p":1,"n":"Responses","d":1,"c":[{"t":6,"p":1,"n":"Response","c":[{"t":6,"p":1,"n":"TRDT - Response Data","c":[{"t":3,"p":1,"n":"Emotion Type"},{"t":3,"p":1,"n":"Emotion Value"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Response number"},{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Use Emotion Animation"}]}]},{"t":2,"p":1,"n":"NAM1 - Response Text"},{"t":2,"p":1,"n":"NAM2 - Script Notes"},{"t":2,"p":1,"n":"NAM3 - Edits"},{"t":3,"p":1,"n":"SNAM - Idle Animations: Speaker"},{"t":3,"p":1,"n":"LNAM - Idle Animations: Listener"}]}]},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"SCHR - Unknown"},{"t":3,"n":"QNAM - Unknown"},{"n":"NEXT - Marker"}]}]},{"t":2,"p":1,"n":"RNAM - Prompt"},{"t":3,"p":1,"n":"ANAM - Speaker"},{"t":3,"p":1,"n":"TWAT - Walk Away Topic"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"}]},{"t":1,"p":1,"n":"INGR - Ingredient","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Ingredient Value"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No auto-calculation"},{"t":4,"p":1,"n":"Food item"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"References Persist"}]}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"IPCT - Impact","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":5,"p":1,"n":"Effect - Duration"},{"t":3,"p":1,"n":"Effect - Orientation"},{"t":5,"p":1,"n":"Angle Threshold"},{"t":5,"p":1,"n":"Placement Radius"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Decal Data"}]},{"t":3,"p":1,"n":"Impact Result"},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Parallax"},{"t":4,"p":1,"n":"Alpha - Blending"},{"t":4,"p":1,"n":"Alpha - Testing"},{"t":4,"p":1,"n":"No Subtextures"}]},{"t":11,"n":"Unknown"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Texture Set"},{"t":3,"p":1,"n":"ENAM - Secondary Texture Set"},{"t":3,"p":1,"n":"SNAM - Sound 1"},{"t":3,"p":1,"n":"NAM1 - Sound 2"},{"t":3,"p":1,"n":"NAM2 - Hazard"}]},{"t":1,"p":1,"n":"IPDS - Impact Data Set","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Data","d":1,"c":[{"t":6,"p":1,"n":"PNAM - PNAM","c":[{"t":3,"p":1,"n":"Material"},{"t":3,"p":1,"n":"Impact"}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"KYWD - Keyword","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LAND - Landscape","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Compressed"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":11,"n":"DATA - Unknown"},{"t":11,"n":"VNML - Vertex Normals"},{"t":11,"n":"VHGT - Vertext Height Map"},{"t":11,"n":"VCLR - Vertex Colours"},{"t":8,"s":1,"p":1,"n":"Layers","d":1,"c":[{"t":6,"p":1,"n":"Base Layer","c":[{"t":6,"p":1,"n":"BTXT - Base Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]}]},{"t":6,"p":1,"n":"Alpha Layer","c":[{"t":6,"p":1,"n":"ATXT - Alpha Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]},{"t":11,"p":1,"n":"VTXT - Alpha Layer Data"}]}]},{"t":7,"p":1,"n":"VTEX - Textures","c":[{"t":3,"p":1,"n":"Texture"}]}]},{"t":1,"p":1,"n":"LCRT - Location Reference Type","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"n":"LCTN - Location","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":3,"n":"NAM0 - Horse Marker Ref"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LENS - Lens Flare","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Color Influence"},{"t":5,"p":1,"n":"DNAM - Fade Distance Radius Scale"},{"t":3,"n":"LFSP - Count"},{"t":8,"s":1,"p":1,"n":"Lens Flare Sprites","d":1,"c":[{"t":6,"p":1,"n":"Flare","c":[{"t":2,"p":1,"n":"DNAM - Lens Flare Sprite ID"},{"t":2,"p":1,"n":"FNAM - Texture"},{"t":6,"p":1,"n":"LFSD - Lens Flare Data","c":[{"t":6,"p":1,"n":"Tint","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"},{"t":5,"p":1,"n":"Position"},{"t":5,"p":1,"n":"Angular Fade"},{"t":5,"p":1,"n":"Opacity"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Rotates"},{"t":4,"p":1,"n":"Shrinks When Occluded"}]}]}]}]}]},{"t":1,"p":1,"n":"LGTM - Lighting Template","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Dist"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Ambient Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":6,"p":1,"n":"Light Fade Distances","c":[{"t":5,"p":1,"n":"Start"},{"t":5,"p":1,"n":"End"}]},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DALC - Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":1,"p":1,"n":"LIGH - Light","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Random Anim Start"},{"t":4,"p":1,"n":"Portal-strict"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"p":1,"n":"Obstacle"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Time"},{"t":3,"p":1,"n":"Radius"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Dynamic"},{"t":4,"p":1,"n":"Can be Carried"},{"t":4,"p":1,"n":"Negative"},{"t":4,"p":1,"n":"Flicker"},{"t":4,"n":"Unknown"},{"t":4,"p":1,"n":"Off By Default"},{"t":4,"p":1,"n":"Flicker Slow"},{"t":4,"p":1,"n":"Pulse"},{"t":4,"p":1,"n":"Pulse Slow"},{"t":4,"p":1,"n":"Spot Light"},{"t":4,"p":1,"n":"Shadow Spotlight"},{"t":4,"p":1,"n":"Shadow Hemisphere"},{"t":4,"p":1,"n":"Shadow Omnidirectional"},{"t":4,"p":1,"n":"Portal-strict"}]},{"t":5,"p":1,"n":"Falloff Exponent"},{"t":5,"p":1,"n":"FOV"},{"t":5,"p":1,"n":"Near Clip"},{"t":6,"p":1,"n":"Flicker Effect","c":[{"t":5,"p":1,"n":"Period"},{"t":5,"p":1,"n":"Intensity Amplitude"},{"t":5,"p":1,"n":"Movement Amplitude"}]},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"FNAM - Fade value"},{"t":3,"p":1,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Displays In Main Menu"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"NNAM - Loading Screen NIF"},{"t":5,"p":1,"n":"SNAM - Initial Scale"},{"t":6,"s":1,"p":1,"n":"RNAM - Initial Rotation","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"ONAM - Rotation Offset Constraints","c":[{"t":3,"p":1,"n":"Min"},{"t":3,"p":1,"n":"Max"}]},{"t":6,"s":1,"p":1,"n":"XNAM - Initial Translation Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"LTEX - Landscape Texture","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"MNAM - Material Type"},{"t":6,"s":1,"p":1,"n":"HNAM - Havok Data","c":[{"t":3,"p":1,"n":"Friction"},{"t":3,"p":1,"n":"Restitution"}]},{"t":3,"p":1,"n":"SNAM - Texture Specular Exponent"},{"t":8,"s":1,"p":1,"n":"Grasses","d":1,"c":[{"t":3,"p":1,"n":"GNAM - Grass"}]},{"t":3,"p":1,"n":"INAM - Flags","c":[{"t":4,"p":1,"n":"Is Snow"}]}]},{"t":1,"p":1,"n":"LVLI - Leveled Item","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags","d":1,"c":[{"t":4,"p":1,"n":"Calculate from all levels <= player's level"},{"t":4,"p":1,"n":"Calculate for each item in count"},{"t":4,"p":1,"n":"Use All"},{"t":4,"p":1,"n":"Special Loot"}]},{"t":3,"p":1,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]}]},{"t":1,"p":1,"n":"LVLN - Leveled NPC","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags","c":[{"t":4,"p":1,"n":"Calculate from all levels <= player's level"},{"t":4,"p":1,"n":"Calculate for each item in count"}]},{"t":3,"p":1,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"LVSP - Leveled Spell","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags","c":[{"t":4,"p":1,"n":"Calculate from all levels <= player's level"},{"t":4,"p":1,"n":"Calculate for each item in count"},{"t":4,"p":1,"n":"Use All Spells"}]},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]}]}]}]},{"t":1,"p":1,"n":"MATO - Material Object","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":8,"s":1,"p":1,"n":"Property Data","d":1,"c":[{"t":11,"p":1,"n":"DNAM - Data"}]},{"t":6,"s":1,"p":1,"n":"DATA - Directional Material Data","c":[{"t":5,"p":1,"n":"Falloff Scale"},{"t":5,"p":1,"n":"Falloff Bias"},{"t":5,"p":1,"n":"Noise UV Scale"},{"t":5,"p":1,"n":"Material UV Scale"},{"t":6,"p":1,"n":"Projection Vector","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Normal Dampener"},{"t":6,"p":1,"n":"Single Pass Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Single Pass"}]},{"t":11,"n":"Unused"}]}]},{"t":1,"p":1,"n":"MATT - Material Type","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Material Parent"},{"t":2,"p":1,"n":"MNAM - Material Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Havok Display Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"BNAM - Buoyancy"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Stair Material"},{"t":4,"p":1,"n":"Arrows Stick"}]},{"t":3,"p":1,"n":"HNAM - Havok Impact Data Set"}]},{"t":1,"p":1,"n":"MESG - Message","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"INAM - Icon (unused)"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Message Box"},{"t":4,"p":1,"n":"Auto Display"}]},{"t":3,"p":1,"n":"TNAM - Display Time"},{"t":8,"s":1,"p":1,"n":"Menu Buttons","d":1,"c":[{"t":6,"p":1,"n":"Menu Button","c":[{"t":2,"p":1,"n":"ITXT - Button Text"},{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Hostile"},{"t":4,"p":1,"n":"Recover"},{"t":4,"p":1,"n":"Detrimental"},{"t":4,"p":1,"n":"Snap to Navmesh"},{"t":4,"p":1,"n":"No Hit Event"},{"t":4,"p":1,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unknown 7"},{"t":4,"p":1,"n":"Unknown 8"},{"t":4,"p":1,"n":"Dispel with Keywords"},{"t":4,"p":1,"n":"No Duration"},{"t":4,"p":1,"n":"No Magnitude"},{"t":4,"p":1,"n":"No Area"},{"t":4,"p":1,"n":"FX Persist"},{"t":4,"p":1,"n":"Unknown 14"},{"t":4,"p":1,"n":"Gory Visuals"},{"t":4,"p":1,"n":"Hide in UI"},{"t":4,"p":1,"n":"Unknown 17"},{"t":4,"p":1,"n":"No Recast"},{"t":4,"p":1,"n":"Unknown 19"},{"t":4,"p":1,"n":"Unknown 20"},{"t":4,"p":1,"n":"Unknown 21"},{"t":4,"p":1,"n":"Power Affects Magnitude"},{"t":4,"p":1,"n":"Power Affects Duration"},{"t":4,"p":1,"n":"Unknown 24"},{"t":4,"p":1,"n":"Unknown 25"},{"t":4,"p":1,"n":"Unknown 26"},{"t":4,"p":1,"n":"Painless"},{"t":4,"p":1,"n":"No Hit Effect"},{"t":4,"p":1,"n":"No Death Dispel"},{"t":4,"p":1,"n":"Unknown 30"},{"t":4,"p":1,"n":"Unknown 31"},{"t":4,"p":1,"n":"Unknown 32"}]},{"t":5,"p":1,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Assoc. Item"},{"t":3,"p":1,"n":"Magic Skill"},{"t":3,"p":1,"n":"Resist Value"},{"t":3,"p":1,"n":"Counter Effect count"},{"t":3,"p":1,"n":"Casting Light"},{"t":5,"p":1,"n":"Taper Weight"},{"t":3,"p":1,"n":"Hit Shader"},{"t":3,"p":1,"n":"Enchant Shader"},{"t":3,"p":1,"n":"Minimum Skill Level"},{"t":6,"s":1,"p":1,"n":"Spellmaking","c":[{"t":3,"p":1,"n":"Area"},{"t":5,"p":1,"n":"Casting Time"}]},{"t":5,"p":1,"n":"Taper Curve"},{"t":5,"p":1,"n":"Taper Duration"},{"t":5,"p":1,"n":"Second AV Weight"},{"t":3,"p":1,"n":"Archtype"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Delivery"},{"t":3,"p":1,"n":"Second Actor Value"},{"t":3,"p":1,"n":"Casting Art"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data"},{"t":5,"p":1,"n":"Skill Usage Multiplier"},{"t":6,"s":1,"p":1,"n":"Dual Casting","c":[{"t":3,"p":1,"n":"Art"},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"Enchant Art"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Equip Ability"},{"t":3,"p":1,"n":"Image Space Modifier"},{"t":3,"p":1,"n":"Perk to Apply"},{"t":3,"p":1,"n":"Casting Sound Level"},{"t":6,"s":1,"p":1,"n":"Script Effect AI","c":[{"t":5,"p":1,"n":"Score"},{"t":5,"p":1,"n":"Delay Time"}]}]}]},{"t":8,"s":1,"p":1,"n":"Counter Effects","d":1,"c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"p":1,"n":"SNDD - Sounds","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":2,"p":1,"n":"DNAM - Magic Item Description"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MOVT - Movement Type","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":6,"s":1,"p":1,"n":"SPED - Default Data","c":[{"t":5,"p":1,"n":"Left Walk"},{"t":5,"p":1,"n":"Left Run"},{"t":5,"p":1,"n":"Right Walk"},{"t":5,"p":1,"n":"Right Run"},{"t":5,"p":1,"n":"Forward Walk"},{"t":5,"p":1,"n":"Forward Run"},{"t":5,"p":1,"n":"Back Walk"},{"t":5,"p":1,"n":"Back Run"},{"t":5,"p":1,"n":"Rotate in Place Walk"},{"t":5,"p":1,"n":"Rotate in Place Run"},{"t":5,"p":1,"n":"Rotate while Moving Run"}]},{"t":6,"s":1,"p":1,"n":"INAM - Anim Change Thresholds","c":[{"t":5,"p":1,"n":"Directional"},{"t":5,"p":1,"n":"Movement Speed"},{"t":5,"p":1,"n":"Rotation Speed"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"p":1,"n":"Must Update Anims"},{"t":4,"p":1,"n":"Hidden From Local Map"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Has Distant LOD"},{"t":4,"p":1,"n":"Random Anim Start"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"p":1,"n":"Has Currents"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"p":1,"n":"Obstacle"},{"t":4,"p":1,"n":"NavMesh Generation - Filter"},{"t":4,"p":1,"n":"NavMesh Generation - Bounding Box"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"NavMesh Generation - Ground"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"DATA - Flags","c":[{"t":4,"p":1,"n":"On Local Map"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"}]},{"t":3,"p":1,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"MUSC - Music Type","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Flags","d":1,"c":[{"t":4,"p":1,"n":"Plays One Selection"},{"t":4,"p":1,"n":"Abrupt Transition"},{"t":4,"p":1,"n":"Cycle Tracks"},{"t":4,"p":1,"n":"Maintain Track Order"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Ducks Current Track"},{"t":4,"p":1,"n":"Doesn't Queue"}]},{"t":6,"s":1,"p":1,"n":"PNAM - Data","c":[{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Ducking (dB)"}]},{"t":5,"p":1,"n":"WNAM - Fade Duration"},{"t":7,"p":1,"n":"TNAM - Music Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"p":1,"n":"MUST - Music Track","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"CNAM - Track Type"},{"t":5,"p":1,"n":"FLTV - Duration"},{"t":5,"p":1,"n":"DNAM - Fade-Out"},{"t":2,"p":1,"n":"ANAM - Track FileName"},{"t":2,"p":1,"n":"BNAM - Finale FileName"},{"t":6,"s":1,"p":1,"n":"LNAM - Loop Data","c":[{"t":5,"p":1,"n":"Loop Begins"},{"t":5,"p":1,"n":"Loop Ends"},{"t":3,"p":1,"n":"Loop Count"}]},{"t":7,"p":1,"n":"FNAM - Cue Points","c":[{"t":5,"p":1,"n":"Point"}]},{"t":3,"n":"CITC - Condition Count"},{"t":10,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"p":1,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"SNAM - Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"n":"NAVI - Navigation Mesh Info Map","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"NVER - Version"},{"t":8,"n":"Navigation Map Infos","c":[{"t":6,"n":"NVMI - Navigation Map Info","c":[{"t":3,"n":"Navigation Mesh"},{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"},{"t":3,"n":"Preferred Merges Flag"},{"t":7,"n":"Merged To","c":[{"t":3,"n":"mesh"}]},{"t":7,"n":"Preferred Merges","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Linked Doors","c":[{"t":6,"n":"Door","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Door Ref"}]}]},{"t":3,"n":"Is Island"},{"t":11,"n":"Unused"},{"t":6,"n":"Island Data","c":[{"t":11,"n":"Unknown"},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]}]},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"}]}]},{"t":6,"n":"NVPP - Preferred Pathing","c":[{"t":7,"n":"NavMeshes","c":[{"t":7,"n":"Set","c":[{"t":3,"n":""}]}]},{"t":7,"n":"NavMesh Tree?","c":[{"t":6,"n":"","c":[{"t":3,"n":"NavMesh"},{"t":3,"n":"Index\/Node"}]}]}]},{"t":7,"n":"NVSI - Unknown","c":[{"t":3,"n":"Navigation Mesh"}]}]},{"t":1,"n":"NAVM - Navigation Mesh","c":[{"t":6,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"n":"Record Flags","c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Compressed"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"AutoGen"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"NavmeshGenCell"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NVNM - Geometry","c":[{"t":3,"n":"Version"},{"t":11,"n":"Magic"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Edge Links","c":[{"t":6,"n":"Connection","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Mesh"},{"t":3,"n":"Triangle"}]}]},{"t":7,"n":"Door Triangles","c":[{"t":6,"n":"Door Triangle","c":[{"t":3,"n":"Triangle before door"},{"t":11,"n":"Unknown"},{"t":3,"n":"Door"}]}]},{"t":11,"n":"NavMeshGrid"}]},{"t":11,"n":"ONAM - Unknown"},{"t":11,"n":"PNAM - Unknown"},{"t":11,"n":"NNAM - Unknown"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Compressed"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"p":1,"n":"Bleedout Override"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags","d":1,"c":[{"t":4,"p":1,"n":"Female"},{"t":4,"p":1,"n":"Essential"},{"t":4,"p":1,"n":"Is CharGen Face Preset"},{"t":4,"p":1,"n":"Respawn"},{"t":4,"p":1,"n":"Auto-calc stats"},{"t":4,"p":1,"n":"Unique"},{"t":4,"p":1,"n":"Doesn't affect stealth meter"},{"t":4,"p":1,"n":"PC Level Mult"},{"t":4,"p":1,"n":"Use Template?"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"p":1,"n":"Protected"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Summonable"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Doesn't bleed"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Bleedout Override"},{"t":4,"p":1,"n":"Opposite Gender Anims"},{"t":4,"p":1,"n":"Simple Actor"},{"t":4,"p":1,"n":"looped script?"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"looped audio?"},{"t":4,"p":1,"n":"Is Ghost"},{"t":4,"n":"Unknown 30"},{"t":4,"p":1,"n":"Invulnerable"}]},{"t":3,"p":1,"n":"Magicka Offset"},{"t":3,"p":1,"n":"Stamina Offset"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Level Mult"},{"t":3,"p":1,"n":"Calc min level","lf":"Calc max level"},{"t":3,"p":1,"n":"Calc max level","lt":"Calc min level"},{"t":3,"p":1,"n":"Speed Multiplier"},{"t":3,"p":1,"n":"Disposition Base (unused)"},{"t":3,"p":1,"n":"Template Flags","d":1,"c":[{"t":4,"p":1,"n":"Use Traits"},{"t":4,"p":1,"n":"Use Stats"},{"t":4,"p":1,"n":"Use Factions"},{"t":4,"p":1,"n":"Use Spell List"},{"t":4,"p":1,"n":"Use AI Data"},{"t":4,"p":1,"n":"Use AI Packages"},{"t":4,"p":1,"n":"Use Model\/Animation?"},{"t":4,"p":1,"n":"Use Base Data"},{"t":4,"p":1,"n":"Use Inventory"},{"t":4,"p":1,"n":"Use Script"},{"t":4,"p":1,"n":"Use Def Pack List"},{"t":4,"p":1,"n":"Use Attack Data"},{"t":4,"p":1,"n":"Use Keywords"}]},{"t":3,"p":1,"n":"Health Offset"},{"t":3,"p":1,"n":"Bleedout Override"}]},{"t":8,"p":1,"n":"Factions","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Faction","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"INAM - Death item"},{"t":3,"p":1,"n":"VTCK - Voice"},{"t":3,"p":1,"n":"TPLT - Template"},{"t":3,"p":1,"n":"RNAM - Race","lt":"Tint Layers","lf":"NAM7 - Weight"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","d":1,"c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"WNAM - Worn Armor"},{"t":3,"p":1,"n":"ANAM - Far away model"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","d":1,"c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags","c":[{"t":4,"p":1,"n":"Ignore Weapon"},{"t":4,"p":1,"n":"Bash Attack"},{"t":4,"p":1,"n":"Power Attack"},{"t":4,"p":1,"n":"Left Attack"},{"t":4,"p":1,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"p":1,"n":"Override Data"}]},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":3,"p":1,"n":"Attack Type"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Stamina Mult"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"s":1,"p":1,"n":"Perks","d":1,"c":[{"t":6,"p":1,"n":"PRKR - Perk","c":[{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]}]},{"t":8,"s":1,"p":1,"n":"Packages","d":1,"c":[{"t":3,"p":1,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"SHRT - Short Name"},{"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - Player Skills","c":[{"t":7,"p":1,"n":"Skill Values","c":[{"t":3,"p":1,"n":"Skill #0 (OneHanded)"},{"t":3,"p":1,"n":"Skill #1 (TwoHanded)"},{"t":3,"p":1,"n":"Skill #2 (Marksman)"},{"t":3,"p":1,"n":"Skill #3 (Block)"},{"t":3,"p":1,"n":"Skill #4 (Smithing)"},{"t":3,"p":1,"n":"Skill #5 (HeavyArmor)"},{"t":3,"p":1,"n":"Skill #6 (LightArmor)"},{"t":3,"p":1,"n":"Skill #7 (Pickpocket)"},{"t":3,"p":1,"n":"Skill #8 (Lockpicking)"},{"t":3,"p":1,"n":"Skill #9 (Sneak)"},{"t":3,"p":1,"n":"Skill #10 (Alchemy)"},{"t":3,"p":1,"n":"Skill #11 (Speechcraft)"},{"t":3,"p":1,"n":"Skill #12 (Alteration)"},{"t":3,"p":1,"n":"Skill #13 (Conjuration)"},{"t":3,"p":1,"n":"Skill #14 (Destruction)"},{"t":3,"p":1,"n":"Skill #15 (Illusion)"},{"t":3,"p":1,"n":"Skill #16 (Restoration)"},{"t":3,"p":1,"n":"Skill #17 (Enchanting)"}]},{"t":7,"p":1,"n":"Skill Offsets","c":[{"t":3,"p":1,"n":"Skill #0 (OneHanded)"},{"t":3,"p":1,"n":"Skill #1 (TwoHanded)"},{"t":3,"p":1,"n":"Skill #2 (Marksman)"},{"t":3,"p":1,"n":"Skill #3 (Block)"},{"t":3,"p":1,"n":"Skill #4 (Smithing)"},{"t":3,"p":1,"n":"Skill #5 (HeavyArmor)"},{"t":3,"p":1,"n":"Skill #6 (LightArmor)"},{"t":3,"p":1,"n":"Skill #7 (Pickpocket)"},{"t":3,"p":1,"n":"Skill #8 (Lockpicking)"},{"t":3,"p":1,"n":"Skill #9 (Sneak)"},{"t":3,"p":1,"n":"Skill #10 (Alchemy)"},{"t":3,"p":1,"n":"Skill #11 (Speechcraft)"},{"t":3,"p":1,"n":"Skill #12 (Alteration)"},{"t":3,"p":1,"n":"Skill #13 (Conjuration)"},{"t":3,"p":1,"n":"Skill #14 (Destruction)"},{"t":3,"p":1,"n":"Skill #15 (Illusion)"},{"t":3,"p":1,"n":"Skill #16 (Restoration)"},{"t":3,"p":1,"n":"Skill #17 (Enchanting)"}]},{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"Magicka"},{"t":3,"p":1,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Far away model distance"},{"t":3,"p":1,"n":"Geared up weapons"}]},{"t":8,"s":1,"p":1,"n":"Head Parts","d":1,"c":[{"t":3,"p":1,"n":"PNAM - Head Part"}],"lt":"NAM6 - Height","lf":"HCLF - Hair Color"},{"t":3,"p":1,"n":"HCLF - Hair Color","lt":"Head Parts","lf":"FTST - Head texture"},{"t":3,"p":1,"n":"ZNAM - Combat Style"},{"t":3,"p":1,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"p":1,"n":"NAM6 - Height","lt":"NAM7 - Weight","lf":"Head Parts"},{"t":5,"p":1,"n":"NAM7 - Weight","lt":"RNAM - Race","lf":"NAM6 - Height"},{"t":3,"p":1,"n":"NAM8 - Sound Level"},{"t":10,"p":1,"n":"Sound Types","d":1,"c":[{"t":6,"p":1,"n":"Sound Type","c":[{"t":3,"p":1,"n":"CSDT - Type"},{"t":10,"p":1,"n":"Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"CSDI - Sound"},{"t":3,"p":1,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"p":1,"n":"CSCR - Inherits Sounds From"},{"t":3,"p":1,"n":"DOFT - Default outfit"},{"t":3,"p":1,"n":"SOFT - Sleeping outfit"},{"t":3,"p":1,"n":"DPLT - Default Package List"},{"t":3,"p":1,"n":"CRIF - Crime faction"},{"t":3,"p":1,"n":"FTST - Head texture","lt":"HCLF - Hair Color","lf":"QNAM - Texture lighting"},{"t":6,"s":1,"p":1,"n":"QNAM - Texture lighting","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}],"lt":"FTST - Head texture","lf":"NAM9 - Face morph"},{"t":6,"s":1,"p":1,"n":"NAM9 - Face morph","c":[{"t":5,"p":1,"n":"Nose Long\/Short"},{"t":5,"p":1,"n":"Nose Up\/Down"},{"t":5,"p":1,"n":"Jaw Up\/Down"},{"t":5,"p":1,"n":"Jaw Narrow\/Wide"},{"t":5,"p":1,"n":"Jaw Farward\/Back"},{"t":5,"p":1,"n":"Cheeks Up\/Down"},{"t":5,"p":1,"n":"Cheeks Farward\/Back"},{"t":5,"p":1,"n":"Eyes Up\/Down"},{"t":5,"p":1,"n":"Eyes In\/Out"},{"t":5,"p":1,"n":"Brows Up\/Down"},{"t":5,"p":1,"n":"Brows In\/Out"},{"t":5,"p":1,"n":"Brows Farward\/Back"},{"t":5,"p":1,"n":"Lips Up\/Down"},{"t":5,"p":1,"n":"Lips In\/Out"},{"t":5,"p":1,"n":"Chin Narrow\/Wide"},{"t":5,"p":1,"n":"Chin Up\/Down"},{"t":5,"p":1,"n":"Chin Underbite\/Overbite"},{"t":5,"p":1,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}],"lt":"QNAM - Texture lighting","lf":"NAMA - Face parts"},{"t":6,"s":1,"p":1,"n":"NAMA - Face parts","c":[{"t":3,"p":1,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Eyes"},{"t":3,"p":1,"n":"Mouth"}],"lt":"NAM9 - Face morph","lf":"Tint Layers"},{"t":10,"p":1,"n":"Tint Layers","d":1,"c":[{"t":6,"p":1,"n":"Layer","c":[{"t":3,"p":1,"n":"TINI - Tint Index"},{"t":6,"p":1,"n":"TINC - Tint Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"p":1,"n":"Alpha"}]},{"t":3,"p":1,"n":"TINV - Interpolation Value"},{"t":3,"p":1,"n":"TIAS - Preset"}]}],"lt":"NAMA - Face parts","lf":"RNAM - Race"}]},{"t":1,"p":1,"n":"OTFT - Outfit","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"INAM - Items","d":1,"c":[{"t":3,"p":1,"n":"Item"}]}]},{"t":1,"p":1,"n":"PACK - Package","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"OnBegin"},{"t":4,"p":1,"n":"OnEnd"},{"t":4,"p":1,"n":"OnChange"}]},{"t":2,"p":1,"n":"FileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"PKDT - Pack Data","c":[{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"p":1,"n":"Offers Services"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Must complete"},{"t":4,"p":1,"n":"Maintain Speed at Goal"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unlock doors at package start"},{"t":4,"p":1,"n":"Unlock doors at package end"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Continue if PC Near"},{"t":4,"p":1,"n":"Once per day"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Preferred Speed"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Always Sneak"},{"t":4,"p":1,"n":"Allow Swimming"},{"t":4,"n":"Unknown 20"},{"t":4,"p":1,"n":"Ignore Combat"},{"t":4,"p":1,"n":"Weapons Unequipped"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"Weapon Drawn"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"No Combat Alert"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"Wear Sleep Outfit (unused)"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Interrupt Override"},{"t":3,"p":1,"n":"Preferred Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Flags","c":[{"t":4,"p":1,"n":"Hellos to player"},{"t":4,"p":1,"n":"Random conversations"},{"t":4,"p":1,"n":"Observe combat behavior"},{"t":4,"p":1,"n":"Greet corpse behavior"},{"t":4,"p":1,"n":"Reaction to player actions"},{"t":4,"p":1,"n":"Friendly fire comments"},{"t":4,"p":1,"n":"Aggro Radius Behavior"},{"t":4,"p":1,"n":"Allow Idle Chatter"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"World Interactions"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"}]}]},{"t":6,"s":1,"p":1,"n":"PSDT - Schedule","c":[{"t":3,"p":1,"n":"Month"},{"t":3,"p":1,"n":"Day of week"},{"t":3,"p":1,"n":"Date"},{"t":3,"p":1,"n":"Hour"},{"t":3,"p":1,"n":"Minute"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Duration (minutes)"}]},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"Idle Animations","c":[{"t":3,"p":1,"n":"IDLF - Flags"},{"t":6,"p":1,"n":"IDLC - IDLC","c":[{"t":3,"p":1,"n":"Animation Count"},{"t":11,"n":"Unknown"}]},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":11,"n":"IDLB - Unknown"}]},{"t":3,"p":1,"n":"CNAM - Combat Style"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":6,"s":1,"p":1,"n":"PKCU - Counter","c":[{"t":3,"p":1,"n":"Data Input Count"},{"t":3,"p":1,"n":"Package Template"},{"t":3,"p":1,"n":"Version Counter (autoincremented)"}]},{"t":6,"s":1,"p":1,"n":"Package Data","c":[{"t":8,"p":1,"n":"Data Input Values","c":[{"t":6,"p":1,"n":"Value","c":[{"t":2,"p":1,"n":"ANAM - Type"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Bool"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"n":"BNAM - Unknown"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":6,"p":1,"n":"PLDT - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Radius"}]},{"t":6,"p":1,"n":"PTDA - Target","c":[{"t":6,"p":1,"n":"Target Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Count \/ Distance"}]}]},{"t":11,"n":"TPIC - Unknown"}]}]},{"t":8,"p":1,"n":"Data Inputs","c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags","c":[{"t":4,"p":1,"n":"Public"}]}]}]}]},{"t":11,"n":"XNAM - Marker"},{"t":6,"s":1,"p":1,"n":"Procedure Tree","c":[{"t":8,"p":1,"n":"Branches","c":[{"t":6,"p":1,"n":"Branch","c":[{"t":2,"p":1,"n":"ANAM - Branch Type"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"p":1,"n":"PRCB - Root","c":[{"t":3,"p":1,"n":"Branch Count"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Repeat when Complete"},{"t":4,"n":"Unknown 1"}]}]},{"t":2,"p":1,"n":"PNAM - Procedure Type"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Success Completes Package"}]},{"t":8,"p":1,"n":"Data Input Indexes","c":[{"t":3,"p":1,"n":"PKC2 - Index"}]},{"t":8,"p":1,"n":"Flags Override","c":[{"t":6,"p":1,"n":"PFO2 - Data","c":[{"t":3,"p":1,"n":"Set General Flags","c":[{"t":4,"p":1,"n":"Offers Services"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Must complete"},{"t":4,"p":1,"n":"Maintain Speed at Goal"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unlock doors at package start"},{"t":4,"p":1,"n":"Unlock doors at package end"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Continue if PC Near"},{"t":4,"p":1,"n":"Once per day"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Preferred Speed"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Always Sneak"},{"t":4,"p":1,"n":"Allow Swimming"},{"t":4,"n":"Unknown 20"},{"t":4,"p":1,"n":"Ignore Combat"},{"t":4,"p":1,"n":"Weapons Unequipped"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"Weapon Drawn"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"No Combat Alert"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"Wear Sleep Outfit (unused)"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Clear General Flags","c":[{"t":4,"p":1,"n":"Offers Services"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Must complete"},{"t":4,"p":1,"n":"Maintain Speed at Goal"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Unlock doors at package start"},{"t":4,"p":1,"n":"Unlock doors at package end"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Continue if PC Near"},{"t":4,"p":1,"n":"Once per day"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"p":1,"n":"Preferred Speed"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"Always Sneak"},{"t":4,"p":1,"n":"Allow Swimming"},{"t":4,"n":"Unknown 20"},{"t":4,"p":1,"n":"Ignore Combat"},{"t":4,"p":1,"n":"Weapons Unequipped"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"Weapon Drawn"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"No Combat Alert"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"Wear Sleep Outfit (unused)"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Set Interrupt Flags","c":[{"t":4,"p":1,"n":"Hellos to player"},{"t":4,"p":1,"n":"Random conversations"},{"t":4,"p":1,"n":"Observe combat behavior"},{"t":4,"p":1,"n":"Greet corpse behavior"},{"t":4,"p":1,"n":"Reaction to player actions"},{"t":4,"p":1,"n":"Friendly fire comments"},{"t":4,"p":1,"n":"Aggro Radius Behavior"},{"t":4,"p":1,"n":"Allow Idle Chatter"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"World Interactions"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"}]},{"t":3,"p":1,"n":"Clear Interrupt Flags","c":[{"t":4,"p":1,"n":"Hellos to player"},{"t":4,"p":1,"n":"Random conversations"},{"t":4,"p":1,"n":"Observe combat behavior"},{"t":4,"p":1,"n":"Greet corpse behavior"},{"t":4,"p":1,"n":"Reaction to player actions"},{"t":4,"p":1,"n":"Friendly fire comments"},{"t":4,"p":1,"n":"Aggro Radius Behavior"},{"t":4,"p":1,"n":"Allow Idle Chatter"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"World Interactions"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"}]},{"t":3,"p":1,"n":"Preferred Speed Override"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"PFOR - Unknown"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Data Inputs","d":1,"c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags","c":[{"t":4,"p":1,"n":"Public"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnBegin","c":[{"p":1,"n":"POBA - OnBegin Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnEnd","c":[{"p":1,"n":"POEA - OnEnd Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnChange","c":[{"p":1,"n":"POCA - OnChange Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCDA - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":1,"p":1,"n":"PARW - Placed Arrow","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PBAR - Placed Barrier","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PBEA - Placed Beam","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PCON - Placed Cone\/Voice","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PERK - Perk","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"FileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Trait"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Num Ranks"},{"t":3,"p":1,"n":"Playable"},{"t":3,"p":1,"n":"Hidden"}]},{"t":3,"p":1,"n":"NNAM - Next Perk"},{"t":10,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":6,"p":1,"n":"PRKE - Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Priority"}]},{"t":6,"p":1,"n":"Quest + Stage","c":[{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Ability"},{"t":6,"p":1,"n":"Entry Point","c":[{"t":3,"p":1,"n":"Entry Point"},{"t":3,"p":1,"n":"Function"},{"t":3,"p":1,"n":"Perk Condition Tab Count"}]},{"t":10,"p":1,"n":"Perk Conditions","c":[{"t":6,"p":1,"n":"Perk Condition","c":[{"t":3,"p":1,"n":"PRKC - Run On (Tab Index)"},{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":6,"p":1,"n":"Function Parameters","c":[{"t":3,"p":1,"n":"EPFT - Type"},{"t":2,"p":1,"n":"EPF2 - Button Label"},{"t":6,"p":1,"n":"EPF3 - Script Flags","c":[{"t":3,"p":1,"n":"Script Flags","c":[{"t":4,"p":1,"n":"Run Immediately"},{"t":4,"p":1,"n":"Replace Default"}]},{"t":3,"p":1,"n":"Fragment Index"}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Float"},{"t":6,"p":1,"n":"Float, Float","c":[{"t":5,"p":1,"n":"Float 1"},{"t":5,"p":1,"n":"Float 2"}]},{"t":3,"p":1,"n":"Leveled Item"},{"t":3,"p":1,"n":"Spell"},{"t":2,"p":1,"n":"Text"},{"t":6,"p":1,"n":"Actor Value, Float","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Float"}]}]},{"p":1,"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PFLA - Placed Flame","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PGRE - Placed Projectile","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PHZD - Placed Hazard","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"Player Reference","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PLYR - Player"}]},{"t":1,"p":1,"n":"PMIS - Placed Missile","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Turn Off Fire"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"p":1,"n":"Don't Havok Settle"},{"t":4,"p":1,"n":"No Respawn"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Hitscan"},{"t":4,"p":1,"n":"Explosion"},{"t":4,"p":1,"n":"Alt. Trigger"},{"t":4,"p":1,"n":"Muzzle Flash"},{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Can Be Disabled"},{"t":4,"p":1,"n":"Can Be Picked Up"},{"t":4,"p":1,"n":"Supersonic"},{"t":4,"p":1,"n":"Pins Limbs"},{"t":4,"p":1,"n":"Pass Through Small Transparent"},{"t":4,"p":1,"n":"Disable Combat Aim Correction"},{"t":4,"p":1,"n":"Rotation"}]},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Gravity"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Muzzle Flash - Light"},{"t":5,"p":1,"n":"Tracer Chance"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Sound"},{"t":5,"p":1,"n":"Muzzle Flash - Duration"},{"t":5,"p":1,"n":"Fade Duration"},{"t":5,"p":1,"n":"Impact Force"},{"t":3,"p":1,"n":"Sound - Countdown"},{"t":3,"p":1,"n":"Sound - Disable"},{"t":3,"p":1,"n":"Default Weapon Source"},{"t":5,"p":1,"n":"Cone Spread"},{"t":5,"p":1,"n":"Collision Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Relaunch Interval"},{"t":3,"p":1,"n":"Decal Data"},{"t":3,"p":1,"n":"Collision Layer"}]},{"t":6,"s":1,"p":1,"n":"Muzzle Flash Model","c":[{"t":2,"p":1,"n":"NAM1 - Model FileName"},{"t":11,"p":1,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"p":1,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"PWAT","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"QUST - Quest","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"FragmentCount"},{"t":2,"p":1,"n":"FileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Unknown"},{"t":3,"p":1,"n":"Quest Stage Index"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]},{"t":7,"p":1,"n":"Aliases","c":[{"t":6,"s":1,"p":1,"n":"Alias","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Alias Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - General","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Start Game Enabled"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"Allow repeated stages"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"Run Once"},{"t":4,"p":1,"n":"Exclude from dialogue export"},{"t":4,"p":1,"n":"Warn on alias fill failure"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"}]},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":2,"p":1,"n":"ENAM - Event"},{"t":8,"s":1,"p":1,"n":"Text Display Globals","d":1,"c":[{"t":3,"p":1,"n":"QTGL - Global"}]},{"t":2,"p":1,"n":"FLTR - Object Window Filter"},{"t":6,"s":1,"p":1,"n":"Quest Dialogue Conditions","c":[{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":10,"s":1,"p":1,"n":"Stages","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"INDX - Stage Index","c":[{"t":3,"p":1,"n":"Stage Index"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Unknown 1"},{"t":4,"p":1,"n":"Start Up Stage"},{"t":4,"p":1,"n":"Shut Down Stage"},{"t":4,"p":1,"n":"Keep Instance Data From Here On"}]},{"t":3,"p":1,"n":"Unknown"}]},{"t":8,"p":1,"n":"Log Entries","c":[{"t":6,"p":1,"n":"Log Entry","c":[{"t":3,"p":1,"n":"QSDT - Stage Flags","c":[{"t":4,"p":1,"n":"Complete Quest"},{"t":4,"p":1,"n":"Fail Quest"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"p":1,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"CNAM - Log Entry"},{"t":3,"p":1,"n":"NAM0 - Next Quest"},{"t":11,"p":1,"n":"SCHR - Unused"},{"t":11,"p":1,"n":"SCTX - Unused"},{"t":11,"p":1,"n":"QNAM - Unused"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Objectives","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Objective","c":[{"t":3,"p":1,"n":"QOBJ - Objective Index"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"ORed With Previous"}]},{"t":2,"p":1,"n":"NNAM - Display Text"},{"t":8,"p":1,"n":"Targets","c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Compass Marker Ignores Locks"}]},{"t":11,"p":1,"n":"Unused"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"p":1,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},{"t":3,"p":1,"n":"ANAM - Next Alias ID"},{"t":8,"p":1,"n":"Aliases","d":1,"c":[{"t":6,"p":1,"n":"Alias","c":[{"t":3,"p":1,"n":"ALST - Reference Alias ID"},{"t":2,"p":1,"n":"ALID - Alias Name"},{"t":6,"p":1,"n":"FNAM - Alias Flags","d":1,"c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Reserves Location\/Reference"},{"t":4,"p":1,"n":"Optional"},{"t":4,"p":1,"n":"Quest Object"},{"t":4,"p":1,"n":"Allow Reuse in Quest"},{"t":4,"p":1,"n":"Allow Dead"},{"t":4,"p":1,"n":"Matching Ref - In Loaded Area"},{"t":4,"p":1,"n":"Essential"},{"t":4,"p":1,"n":"Allow Disabled"},{"t":4,"p":1,"n":"Stores Text"},{"t":4,"p":1,"n":"Allow Reserved"},{"t":4,"p":1,"n":"Protected"},{"t":4,"p":1,"n":"Forced by Aliases?"},{"t":4,"p":1,"n":"Allow Destroyed"},{"t":4,"p":1,"n":"Matching Ref - Closest"},{"t":4,"p":1,"n":"Uses Stored Text"},{"t":4,"p":1,"n":"Initially Disabled"}]},{"t":3,"p":1,"n":"Additional Flags","c":[{"t":4,"p":1,"n":"Allow Cleared"},{"t":4,"p":1,"n":"Clear Names When Removed"}]}]},{"t":3,"p":1,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"p":1,"n":"ALFL - Specific Location"},{"t":3,"p":1,"n":"ALFR - Forced Reference"},{"t":3,"p":1,"n":"ALUA - Unique Actor"},{"t":6,"s":1,"p":1,"n":"Location Alias Reference","c":[{"t":3,"p":1,"n":"ALFA - Alias"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":3,"p":1,"n":"ALRT - Ref Type"}]},{"t":6,"s":1,"p":1,"n":"External Alias Reference","c":[{"t":3,"p":1,"n":"ALEQ - Quest"},{"t":3,"p":1,"n":"ALEA - Alias"}]},{"t":6,"s":1,"p":1,"n":"Create Reference to Object","c":[{"t":3,"p":1,"n":"ALCO - Object"},{"t":6,"p":1,"n":"ALCA - Alias","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Create"}]},{"t":3,"p":1,"n":"ALCL - Level"}]},{"t":6,"s":1,"p":1,"n":"Find Matching Reference Near Alias","c":[{"t":3,"p":1,"n":"ALNA - Alias"},{"t":3,"p":1,"n":"ALNT - Type"}]},{"t":6,"s":1,"p":1,"n":"Find Matching Reference From Event","c":[{"t":2,"p":1,"n":"ALFE - From Event"},{"t":11,"p":1,"n":"ALFD - Event Data"}]},{"t":10,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"p":1,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":3,"p":1,"n":"ALDN - Display Name"},{"t":8,"p":1,"n":"Alias Spells","c":[{"t":3,"p":1,"n":"ALSP - Spell"}]},{"t":8,"p":1,"n":"Alias Factions","c":[{"t":3,"p":1,"n":"ALFC - Faction"}]},{"t":8,"p":1,"n":"Alias Package Data","c":[{"t":3,"p":1,"n":"ALPC - Package"}]},{"t":3,"p":1,"n":"VTCK - Voice Types"},{"p":1,"n":"ALED - Alias End"}]},{"t":6,"n":"Alias","c":[{"t":3,"n":"ALLS - Location Alias ID"},{"t":2,"n":"ALID - Alias Name"},{"t":6,"n":"FNAM - Alias Flags","c":[{"t":3,"n":"Flags","c":[{"t":4,"n":"Reserves Location\/Reference"},{"t":4,"n":"Optional"},{"t":4,"n":"Quest Object"},{"t":4,"n":"Allow Reuse in Quest"},{"t":4,"n":"Allow Dead"},{"t":4,"n":"Matching Ref - In Loaded Area"},{"t":4,"n":"Essential"},{"t":4,"n":"Allow Disabled"},{"t":4,"n":"Stores Text"},{"t":4,"n":"Allow Reserved"},{"t":4,"n":"Protected"},{"t":4,"n":"Forced by Aliases?"},{"t":4,"n":"Allow Destroyed"},{"t":4,"n":"Matching Ref - Closest"},{"t":4,"n":"Uses Stored Text"},{"t":4,"n":"Initially Disabled"}]},{"t":3,"n":"Additional Flags","c":[{"t":4,"n":"Allow Cleared"},{"t":4,"n":"Clear Names When Removed"}]}]},{"t":3,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"n":"ALFL - Specific Location"},{"t":3,"n":"ALFR - Forced Reference"},{"t":3,"n":"ALUA - Unique Actor"},{"t":6,"n":"Location Alias Reference","c":[{"t":3,"n":"ALFA - Alias"},{"t":3,"n":"KNAM - Keyword"},{"t":3,"n":"ALRT - Ref Type"}]},{"t":6,"n":"External Alias Reference","c":[{"t":3,"n":"ALEQ - Quest"},{"t":3,"n":"ALEA - Alias"}]},{"t":6,"n":"Create Reference to Object","c":[{"t":3,"n":"ALCO - Object"},{"t":6,"n":"ALCA - Alias","c":[{"t":3,"n":"Alias"},{"t":3,"n":"Create"}]},{"t":3,"n":"ALCL - Level"}]},{"t":6,"n":"Find Matching Reference Near Alias","c":[{"t":3,"n":"ALNA - Alias"},{"t":3,"n":"ALNT - Type"}]},{"t":6,"n":"Find Matching Reference From Event","c":[{"t":2,"n":"ALFE - From Event"},{"t":11,"n":"ALFD - Event Data"}]},{"t":10,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - CTDA","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":3,"n":"Variable Name"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Knowable"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords"},{"t":3,"n":"COCT - Count"},{"t":10,"n":"Items","c":[{"t":6,"n":"Item","c":[{"t":6,"n":"CNTO - Item","c":[{"t":3,"n":"Item"},{"t":3,"n":"Count"}]},{"t":6,"n":"COED - Extra Data","c":[{"t":3,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"n":"Global Variable"},{"t":3,"n":"Required Rank"},{"t":5,"n":"Item Condition"}]}]}]},{"t":3,"n":"SPOR - Spectator override package list"},{"t":3,"n":"OCOR - Observe dead body override package list"},{"t":3,"n":"GWOR - Guard warn override package list"},{"t":3,"n":"ECOR - Combat override package list"},{"t":3,"n":"ALDN - Display Name"},{"t":8,"n":"Alias Spells","c":[{"t":3,"n":"ALSP - Spell"}]},{"t":8,"n":"ALFC - Alias Factions","c":[{"t":3,"n":"ALFC - Faction"}]},{"t":8,"n":"Alias Package Data","c":[{"t":3,"n":"ALPC - Package"}]},{"t":3,"n":"VTCK - Voice Types"},{"n":"ALED - Alias End"}]}]},{"t":2,"p":1,"n":"NNAM - Description"},{"t":8,"s":1,"p":1,"n":"Targets","d":1,"c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Compass Marker Ignores Locks"}]},{"t":11,"n":"Unknown"}]},{"t":10,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"RACE - Race","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"p":1,"n":"Critter?"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":3,"p":1,"n":"WNAM - Skin"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"n":"30 - Head"},{"t":4,"n":"31 - Hair"},{"t":4,"n":"32 - Body"},{"t":4,"n":"33 - Hands"},{"t":4,"n":"34 - Forearms"},{"t":4,"n":"35 - Amulet"},{"t":4,"n":"36 - Ring"},{"t":4,"n":"37 - Feet"},{"t":4,"n":"38 - Calves"},{"t":4,"n":"39 - Shield"},{"t":4,"n":"40 - Tail"},{"t":4,"n":"41 - LongHair"},{"t":4,"n":"42 - Circlet"},{"t":4,"n":"43 - Ears"},{"t":4,"n":"44 - Unnamed"},{"t":4,"n":"45 - Unnamed"},{"t":4,"n":"46 - Unnamed"},{"t":4,"n":"47 - Unnamed"},{"t":4,"n":"48 - Unnamed"},{"t":4,"n":"49 - Unnamed"},{"t":4,"n":"50 - DecapitateHead"},{"t":4,"n":"51 - Decapitate"},{"t":4,"n":"52 - Unnamed"},{"t":4,"n":"53 - Unnamed"},{"t":4,"n":"54 - Unnamed"},{"t":4,"n":"55 - Unnamed"},{"t":4,"n":"56 - Unnamed"},{"t":4,"n":"57 - Unnamed"},{"t":4,"n":"58 - Unnamed"},{"t":4,"n":"59 - Unnamed"},{"t":4,"n":"60 - Unnamed"},{"t":4,"n":"61 - FX01"}]},{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}]},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags","c":[{"t":4,"n":"30 - Head"},{"t":4,"n":"31 - Hair"},{"t":4,"n":"32 - Body"},{"t":4,"n":"33 - Hands"},{"t":4,"n":"34 - Forearms"},{"t":4,"n":"35 - Amulet"},{"t":4,"n":"36 - Ring"},{"t":4,"n":"37 - Feet"},{"t":4,"n":"38 - Calves"},{"t":4,"n":"39 - Shield"},{"t":4,"n":"40 - Tail"},{"t":4,"n":"41 - LongHair"},{"t":4,"n":"42 - Circlet"},{"t":4,"n":"43 - Ears"},{"t":4,"n":"44 - Unnamed"},{"t":4,"n":"45 - Unnamed"},{"t":4,"n":"46 - Unnamed"},{"t":4,"n":"47 - Unnamed"},{"t":4,"n":"48 - Unnamed"},{"t":4,"n":"49 - Unnamed"},{"t":4,"n":"50 - DecapitateHead"},{"t":4,"n":"51 - Decapitate"},{"t":4,"n":"52 - Unnamed"},{"t":4,"n":"53 - Unnamed"},{"t":4,"n":"54 - Unnamed"},{"t":4,"n":"55 - Unnamed"},{"t":4,"n":"56 - Unnamed"},{"t":4,"n":"57 - Unnamed"},{"t":4,"n":"58 - Unnamed"},{"t":4,"n":"59 - Unnamed"},{"t":4,"n":"60 - Unnamed"},{"t":4,"n":"61 - FX01"}]},{"t":3,"p":1,"n":"General Flags","c":[{"t":4,"n":"(ARMA)Modulates Voice"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"(ARMO)Non-Playable"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"}]},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"p":1,"n":"DATA - DATA","c":[{"t":9,"s":1,"p":1,"n":"Skill Boosts","c":[{"t":6,"p":1,"n":"Skill Boost","c":[{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Boost"}]}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Male Height"},{"t":5,"p":1,"n":"Female Height"},{"t":5,"p":1,"n":"Male Weight"},{"t":5,"p":1,"n":"Female Weight"},{"t":3,"p":1,"n":"Flags","d":1,"c":[{"t":4,"p":1,"n":"Playable"},{"t":4,"p":1,"n":"FaceGen Head"},{"t":4,"p":1,"n":"Child"},{"t":4,"p":1,"n":"Tilt Front\/Back"},{"t":4,"p":1,"n":"Tilt Left\/Right"},{"t":4,"p":1,"n":"No Shadow"},{"t":4,"p":1,"n":"Swims"},{"t":4,"p":1,"n":"Flies"},{"t":4,"p":1,"n":"Walks"},{"t":4,"p":1,"n":"Immobile"},{"t":4,"p":1,"n":"Not Pushable"},{"t":4,"p":1,"n":"No Combat In Water"},{"t":4,"p":1,"n":"No Rotating to Head-Track"},{"t":4,"p":1,"n":"Don't Show Blood Spray"},{"t":4,"p":1,"n":"Don't Show Blood Decal"},{"t":4,"p":1,"n":"Uses Head Track Anims"},{"t":4,"p":1,"n":"Spells Align w\/Magic Node"},{"t":4,"p":1,"n":"Use World Raycasts For FootIK"},{"t":4,"p":1,"n":"Allow Ragdoll Collision"},{"t":4,"p":1,"n":"Regen HP In Combat"},{"t":4,"p":1,"n":"Can't Open Doors"},{"t":4,"p":1,"n":"Allow PC Dialogue"},{"t":4,"p":1,"n":"No Knockdowns"},{"t":4,"p":1,"n":"Allow Pickpocket"},{"t":4,"p":1,"n":"Always Use Proxy Controller"},{"t":4,"p":1,"n":"Don't Show Weapon Blood"},{"t":4,"p":1,"n":"Overlay Head Part List"},{"t":4,"p":1,"n":"Override Head Part List"},{"t":4,"p":1,"n":"Can Pickup Items"},{"t":4,"p":1,"n":"Allow Multiple Membrane Shaders"},{"t":4,"p":1,"n":"Can Dual Wield"},{"t":4,"p":1,"n":"Avoids Roads"}]},{"t":5,"p":1,"n":"Starting Health"},{"t":5,"p":1,"n":"Starting Magicka"},{"t":5,"p":1,"n":"Starting Stamina"},{"t":5,"p":1,"n":"Base Carry Weight"},{"t":5,"p":1,"n":"Base Mass"},{"t":5,"p":1,"n":"Acceleration rate"},{"t":5,"p":1,"n":"Deceleration rate"},{"t":3,"p":1,"n":"Size"},{"t":3,"p":1,"n":"Head Biped Object"},{"t":3,"p":1,"n":"Hair Biped Object"},{"t":5,"p":1,"n":"Injured Health Pct"},{"t":3,"p":1,"n":"Shield Biped Object"},{"t":5,"p":1,"n":"Health Regen"},{"t":5,"p":1,"n":"Magicka Regen"},{"t":5,"p":1,"n":"Stamina Regen"},{"t":5,"p":1,"n":"Unarmed Damage"},{"t":5,"p":1,"n":"Unarmed Reach"},{"t":3,"p":1,"n":"Body Biped Object"},{"t":5,"p":1,"n":"Aim Angle Tolerance"},{"t":5,"p":1,"n":"Flight Radius"},{"t":5,"p":1,"n":"Angular Acceleration Rate"},{"t":5,"p":1,"n":"Angular Tolerance"},{"t":3,"p":1,"n":"Flags 2","d":1,"c":[{"t":4,"p":1,"n":"Use Advanced Avoidance"},{"t":4,"p":1,"n":"Non-Hostile"},{"t":4,"p":1,"n":"Unknown 2"},{"t":4,"p":1,"n":"Unknown 3"},{"t":4,"p":1,"n":"Allow Mounted Combat"}]},{"t":6,"p":1,"n":"Mount Data","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"n":"Unknown"}]}]},{"p":1,"n":"MNAM - Male Marker"},{"t":2,"p":1,"n":"ANAM - Male Skeletal Model"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"p":1,"n":"FNAM - Female Marker"},{"t":2,"p":1,"n":"ANAM - Female Skeletal Model"},{"p":1,"n":"NAM2 - Marker NAM2 #1"},{"t":8,"p":1,"n":"MTNM - Movement Type Names","c":[{"t":2,"p":1,"n":"MTNM - Name"}]},{"t":7,"p":1,"n":"VTCK - Voices","c":[{"t":3,"p":1,"n":"Male"},{"t":3,"p":1,"n":"Female"}]},{"t":7,"p":1,"n":"DNAM - Decapitate Armors","c":[{"t":3,"p":1,"n":"Male"},{"t":3,"p":1,"n":"Female"}]},{"t":7,"p":1,"n":"HCLF - Default Hair Colors","c":[{"t":3,"p":1,"n":"Male"},{"t":3,"p":1,"n":"Female"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"p":1,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"p":1,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"n":"Attack Flags","c":[{"t":4,"n":"Ignore Weapon"},{"t":4,"n":"Bash Attack"},{"t":4,"n":"Power Attack"},{"t":4,"n":"Left Attack"},{"t":4,"n":"Rotating Attack"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Override Data"}]},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":3,"p":1,"n":"Attack Type"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Stamina Mult"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"}]}]},{"t":6,"p":1,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"p":1,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"INDX - Index"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]}]},{"t":6,"p":1,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"INDX - Index"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"HNAM - Hairs","c":[{"t":3,"p":1,"n":"Hair"}]},{"t":7,"p":1,"n":"ENAM - Eyes","c":[{"t":3,"p":1,"n":"Eye"}]},{"t":3,"p":1,"n":"GNAM - Body Part Data"},{"p":1,"n":"NAM2 - Marker NAM2 #2"},{"p":1,"n":"NAM3 - Marker NAM3 #3"},{"t":6,"s":1,"p":1,"n":"Male Behavior Graph","c":[{"p":1,"n":"MNAM - Male Data Marker"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"Female Behavior Graph","c":[{"p":1,"n":"FNAM - Female Data Marker"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":3,"p":1,"n":"NAM4 - Material Type"},{"t":3,"p":1,"n":"NAM5 - Impact Data Set"},{"t":3,"p":1,"n":"NAM7 - Decapitation FX"},{"t":3,"p":1,"n":"ONAM - Open Loot Sound"},{"t":3,"p":1,"n":"LNAM - Close Loot Sound"},{"t":8,"s":1,"p":1,"n":"Biped Object Names","c":[{"t":2,"p":1,"n":"NAME - Name"}]},{"t":10,"n":"Movement Types","c":[{"t":6,"n":"Movement Types","c":[{"t":3,"n":"MTYP - Movement Type"},{"t":6,"n":"SPED - Override Values","c":[{"t":5,"n":"Left - Walk"},{"t":5,"n":"Left - Run"},{"t":5,"n":"Right - Walk"},{"t":5,"n":"Right - Run"},{"t":5,"n":"Forward - Walk"},{"t":5,"n":"Forward - Run"},{"t":5,"n":"Back - Walk"},{"t":5,"n":"Back - Run"},{"t":5,"n":"Rotate - Walk"},{"t":5,"n":"Unknown"}]}]}]},{"t":3,"p":1,"n":"VNAM - Equipment Flags","d":1,"c":[{"t":4,"p":1,"n":"Hand To Hand Melee"},{"t":4,"p":1,"n":"One Hand Sword"},{"t":4,"p":1,"n":"One Hand Dagger"},{"t":4,"p":1,"n":"One Hand Axe"},{"t":4,"p":1,"n":"One Hand Mace"},{"t":4,"p":1,"n":"Two Hand Sword"},{"t":4,"p":1,"n":"Two Hand Axe"},{"t":4,"p":1,"n":"Bow"},{"t":4,"p":1,"n":"Staff"},{"t":4,"p":1,"n":"Spell"},{"t":4,"p":1,"n":"Shield"},{"t":4,"p":1,"n":"Torch"},{"t":4,"p":1,"n":"Crossbow"}]},{"t":8,"p":1,"n":"Equip Slots","c":[{"t":3,"p":1,"n":"QNAM - Equip Slot"}]},{"t":3,"n":"UNES - Unarmed Equip Slot"},{"t":8,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"IH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AE","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AA","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AO","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ER","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AX","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"S","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Z","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ZH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"F","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"TH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"V","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"DH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"M","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"N","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"NG","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"L","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"R","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"W","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Y","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"HH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"B","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"D","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"JH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"G","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"P","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"T","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"K","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"CH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SHOTSIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"FLAP","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]}]},{"t":3,"n":"WKMV - Base Movement Default - Walk"},{"t":3,"n":"RNMV - Base Movement Default - Run"},{"t":3,"n":"SWMV - Base Movement Default - Swim"},{"t":3,"n":"FLMV - Base Movement Default - Fly"},{"t":3,"n":"SNMV - Base Movement Default - Sneak"},{"t":3,"n":"SPMV - Base Movement Default - Sprint"},{"t":6,"p":1,"n":"Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"t":6,"p":1,"n":"Male Head Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"s":1,"p":1,"n":"Head Parts","c":[{"t":6,"p":1,"n":"Head Part","c":[{"t":3,"p":1,"n":"INDX - Head Part Number"},{"t":3,"p":1,"n":"HEAD - Head"}]}]},{"t":6,"p":1,"n":"Available Morphs","c":[{"t":11,"p":1,"n":"MPAI - Unknown"},{"t":6,"p":1,"n":"MPAV - Nose Variants","c":[{"t":3,"p":1,"n":"Nose Morph Flags","c":[{"t":4,"p":1,"n":"NoseType0"},{"t":4,"p":1,"n":"NoseType1"},{"t":4,"p":1,"n":"NoseType2"},{"t":4,"p":1,"n":"NoseType3"},{"t":4,"p":1,"n":"NoseType4"},{"t":4,"p":1,"n":"NoseType5"},{"t":4,"p":1,"n":"NoseType6"},{"t":4,"p":1,"n":"NoseType7"},{"t":4,"p":1,"n":"NoseType8"},{"t":4,"p":1,"n":"NoseType9"},{"t":4,"p":1,"n":"NoseType10"},{"t":4,"p":1,"n":"NoseType11"},{"t":4,"p":1,"n":"NoseType12"},{"t":4,"p":1,"n":"NoseType13"},{"t":4,"p":1,"n":"NoseType14"},{"t":4,"p":1,"n":"NoseType15"},{"t":4,"p":1,"n":"NoseType16"},{"t":4,"p":1,"n":"NoseType17"},{"t":4,"p":1,"n":"NoseType18"},{"t":4,"p":1,"n":"NoseType19"},{"t":4,"p":1,"n":"NoseType20"},{"t":4,"p":1,"n":"NoseType21"},{"t":4,"p":1,"n":"NoseType22"},{"t":4,"p":1,"n":"NoseType23"},{"t":4,"p":1,"n":"NoseType24"},{"t":4,"p":1,"n":"NoseType25"},{"t":4,"p":1,"n":"NoseType26"},{"t":4,"p":1,"n":"NoseType27"},{"t":4,"p":1,"n":"NoseType28"},{"t":4,"p":1,"n":"NoseType29"},{"t":4,"p":1,"n":"NoseType30"},{"t":4,"p":1,"n":"NoseType31"}]},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"MPAV - Brow Variants","c":[{"t":3,"p":1,"n":"Brow Morph Flags","c":[{"t":4,"p":1,"n":"BrowType0"},{"t":4,"p":1,"n":"BrowType1"},{"t":4,"p":1,"n":"BrowType2"},{"t":4,"p":1,"n":"BrowType3"},{"t":4,"p":1,"n":"BrowType4"},{"t":4,"p":1,"n":"BrowType5"},{"t":4,"p":1,"n":"BrowType6"},{"t":4,"p":1,"n":"BrowType7"},{"t":4,"p":1,"n":"BrowType8"},{"t":4,"p":1,"n":"BrowType9"},{"t":4,"p":1,"n":"BrowType10"},{"t":4,"p":1,"n":"BrowType11"},{"t":4,"p":1,"n":"BrowType12"},{"t":4,"p":1,"n":"BrowType13"},{"t":4,"p":1,"n":"BrowType14"},{"t":4,"p":1,"n":"BrowType15"},{"t":4,"p":1,"n":"BrowType16"},{"t":4,"p":1,"n":"BrowType17"},{"t":4,"p":1,"n":"BrowType18"},{"t":4,"p":1,"n":"BrowType19"},{"t":4,"p":1,"n":"BrowType20"}]},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"MPAV - Eye Variants","c":[{"t":3,"p":1,"n":"Eye Morph Flags 1","c":[{"t":4,"p":1,"n":"EyesType0"},{"t":4,"p":1,"n":"EyesType1"},{"t":4,"p":1,"n":"EyesType2"},{"t":4,"p":1,"n":"EyesType3"},{"t":4,"p":1,"n":"EyesType4"},{"t":4,"p":1,"n":"EyesType5"},{"t":4,"p":1,"n":"EyesType6"},{"t":4,"p":1,"n":"EyesType7"},{"t":4,"p":1,"n":"EyesType8"},{"t":4,"p":1,"n":"EyesType9"},{"t":4,"p":1,"n":"EyesType10"},{"t":4,"p":1,"n":"EyesType11"},{"t":4,"p":1,"n":"EyesType12"},{"t":4,"p":1,"n":"EyesType13"},{"t":4,"p":1,"n":"EyesType14"},{"t":4,"p":1,"n":"EyesType15"},{"t":4,"p":1,"n":"EyesType16"},{"t":4,"p":1,"n":"EyesType17"},{"t":4,"p":1,"n":"EyesType18"},{"t":4,"p":1,"n":"EyesType19"},{"t":4,"p":1,"n":"EyesType20"},{"t":4,"p":1,"n":"EyesType21"},{"t":4,"p":1,"n":"EyesType22"},{"t":4,"p":1,"n":"EyesType23"},{"t":4,"p":1,"n":"EyesType24"},{"t":4,"p":1,"n":"EyesType25"},{"t":4,"p":1,"n":"EyesType26"},{"t":4,"p":1,"n":"EyesType27"},{"t":4,"p":1,"n":"EyesType28"},{"t":4,"p":1,"n":"EyesType29"},{"t":4,"p":1,"n":"EyesType30"},{"t":4,"p":1,"n":"EyesType31"}]},{"t":3,"p":1,"n":"Eye Morph Flags 2","c":[{"t":4,"p":1,"n":"EyesType32"},{"t":4,"p":1,"n":"EyesType33"},{"t":4,"p":1,"n":"EyesType34"},{"t":4,"p":1,"n":"EyesType35"},{"t":4,"p":1,"n":"EyesType36"},{"t":4,"p":1,"n":"EyesType37"},{"t":4,"p":1,"n":"EyesType38"}]},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"MPAV - Lip Variants","c":[{"t":3,"p":1,"n":"Lip Morph Flags","c":[{"t":4,"p":1,"n":"LipType0"},{"t":4,"p":1,"n":"LipType1"},{"t":4,"p":1,"n":"LipType2"},{"t":4,"p":1,"n":"LipType3"},{"t":4,"p":1,"n":"LipType4"},{"t":4,"p":1,"n":"LipType5"},{"t":4,"p":1,"n":"LipType6"},{"t":4,"p":1,"n":"LipType7"},{"t":4,"p":1,"n":"LipType8"},{"t":4,"p":1,"n":"LipType9"},{"t":4,"p":1,"n":"LipType10"},{"t":4,"p":1,"n":"LipType11"},{"t":4,"p":1,"n":"LipType12"},{"t":4,"p":1,"n":"LipType13"},{"t":4,"p":1,"n":"LipType14"},{"t":4,"p":1,"n":"LipType15"},{"t":4,"p":1,"n":"LipType16"},{"t":4,"p":1,"n":"LipType17"},{"t":4,"p":1,"n":"LipType18"},{"t":4,"p":1,"n":"LipType19"},{"t":4,"p":1,"n":"LipType20"},{"t":4,"p":1,"n":"LipType21"},{"t":4,"p":1,"n":"LipType22"},{"t":4,"p":1,"n":"LipType23"},{"t":4,"p":1,"n":"LipType24"},{"t":4,"p":1,"n":"LipType25"},{"t":4,"p":1,"n":"LipType26"},{"t":4,"p":1,"n":"LipType27"},{"t":4,"p":1,"n":"LipType28"},{"t":4,"p":1,"n":"LipType29"},{"t":4,"p":1,"n":"LipType30"},{"t":4,"p":1,"n":"LipType31"}]},{"t":11,"p":1,"n":"Unknown"}]}]},{"t":8,"p":1,"n":"Race Presets Male","c":[{"t":3,"p":1,"n":"RPRM - Preset NPC"}]},{"t":8,"p":1,"n":"Available Hair Colors Male","d":1,"c":[{"t":3,"p":1,"n":"AHCM - Hair Color"}]},{"t":8,"p":1,"n":"Face Details Texture Set List Male","c":[{"t":3,"p":1,"n":"FTSM - Texture Set"}]},{"t":3,"p":1,"n":"DFTM - Default Face Texture Male"},{"t":8,"p":1,"n":"Tint Masks","c":[{"t":6,"p":1,"n":"Tint Assets","c":[{"t":8,"p":1,"n":"Tint Layer","c":[{"t":6,"p":1,"n":"Texture","c":[{"t":3,"p":1,"n":"TINI - Index"},{"t":2,"p":1,"n":"TINT - File Name"},{"t":3,"p":1,"n":"TINP - Mask Type"},{"t":3,"p":1,"n":"TIND - Preset Default"}]}]},{"t":8,"p":1,"n":"Presets","c":[{"t":6,"p":1,"n":"Preset","c":[{"t":3,"p":1,"n":"TINC - Color"},{"t":5,"p":1,"n":"TINV - Default Value"},{"t":3,"p":1,"n":"TIRS - Index"}]}]}]}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"p":1,"n":"Female Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"n":"FNAM - Female Data Marker"},{"t":10,"s":1,"p":1,"n":"Head Parts","c":[{"t":6,"p":1,"n":"Head Part","c":[{"t":3,"p":1,"n":"INDX - Head Part Number"},{"t":3,"p":1,"n":"HEAD - Head"}]}]},{"t":6,"p":1,"n":"Available Morphs","c":[{"t":11,"p":1,"n":"MPAI - Unknown"},{"t":6,"p":1,"n":"MPAV - Nose Variants","c":[{"t":3,"p":1,"n":"Nose Morph Flags","c":[{"t":4,"p":1,"n":"NoseType0"},{"t":4,"p":1,"n":"NoseType1"},{"t":4,"p":1,"n":"NoseType2"},{"t":4,"p":1,"n":"NoseType3"},{"t":4,"p":1,"n":"NoseType4"},{"t":4,"p":1,"n":"NoseType5"},{"t":4,"p":1,"n":"NoseType6"},{"t":4,"p":1,"n":"NoseType7"},{"t":4,"p":1,"n":"NoseType8"},{"t":4,"p":1,"n":"NoseType9"},{"t":4,"p":1,"n":"NoseType10"},{"t":4,"p":1,"n":"NoseType11"},{"t":4,"p":1,"n":"NoseType12"},{"t":4,"p":1,"n":"NoseType13"},{"t":4,"p":1,"n":"NoseType14"},{"t":4,"p":1,"n":"NoseType15"},{"t":4,"p":1,"n":"NoseType16"},{"t":4,"p":1,"n":"NoseType17"},{"t":4,"p":1,"n":"NoseType18"},{"t":4,"p":1,"n":"NoseType19"},{"t":4,"p":1,"n":"NoseType20"},{"t":4,"p":1,"n":"NoseType21"},{"t":4,"p":1,"n":"NoseType22"},{"t":4,"p":1,"n":"NoseType23"},{"t":4,"p":1,"n":"NoseType24"},{"t":4,"p":1,"n":"NoseType25"},{"t":4,"p":1,"n":"NoseType26"},{"t":4,"p":1,"n":"NoseType27"},{"t":4,"p":1,"n":"NoseType28"},{"t":4,"p":1,"n":"NoseType29"},{"t":4,"p":1,"n":"NoseType30"},{"t":4,"p":1,"n":"NoseType31"}]},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"MPAV - Brow Variants","c":[{"t":3,"p":1,"n":"Brow Morph Flags","c":[{"t":4,"p":1,"n":"BrowType0"},{"t":4,"p":1,"n":"BrowType1"},{"t":4,"p":1,"n":"BrowType2"},{"t":4,"p":1,"n":"BrowType3"},{"t":4,"p":1,"n":"BrowType4"},{"t":4,"p":1,"n":"BrowType5"},{"t":4,"p":1,"n":"BrowType6"},{"t":4,"p":1,"n":"BrowType7"},{"t":4,"p":1,"n":"BrowType8"},{"t":4,"p":1,"n":"BrowType9"},{"t":4,"p":1,"n":"BrowType10"},{"t":4,"p":1,"n":"BrowType11"},{"t":4,"p":1,"n":"BrowType12"},{"t":4,"p":1,"n":"BrowType13"},{"t":4,"p":1,"n":"BrowType14"},{"t":4,"p":1,"n":"BrowType15"},{"t":4,"p":1,"n":"BrowType16"},{"t":4,"p":1,"n":"BrowType17"},{"t":4,"p":1,"n":"BrowType18"},{"t":4,"p":1,"n":"BrowType19"},{"t":4,"p":1,"n":"BrowType20"}]},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"MPAV - Eye Variants","c":[{"t":3,"p":1,"n":"Eye Morph Flags 1","c":[{"t":4,"p":1,"n":"EyesType0"},{"t":4,"p":1,"n":"EyesType1"},{"t":4,"p":1,"n":"EyesType2"},{"t":4,"p":1,"n":"EyesType3"},{"t":4,"p":1,"n":"EyesType4"},{"t":4,"p":1,"n":"EyesType5"},{"t":4,"p":1,"n":"EyesType6"},{"t":4,"p":1,"n":"EyesType7"},{"t":4,"p":1,"n":"EyesType8"},{"t":4,"p":1,"n":"EyesType9"},{"t":4,"p":1,"n":"EyesType10"},{"t":4,"p":1,"n":"EyesType11"},{"t":4,"p":1,"n":"EyesType12"},{"t":4,"p":1,"n":"EyesType13"},{"t":4,"p":1,"n":"EyesType14"},{"t":4,"p":1,"n":"EyesType15"},{"t":4,"p":1,"n":"EyesType16"},{"t":4,"p":1,"n":"EyesType17"},{"t":4,"p":1,"n":"EyesType18"},{"t":4,"p":1,"n":"EyesType19"},{"t":4,"p":1,"n":"EyesType20"},{"t":4,"p":1,"n":"EyesType21"},{"t":4,"p":1,"n":"EyesType22"},{"t":4,"p":1,"n":"EyesType23"},{"t":4,"p":1,"n":"EyesType24"},{"t":4,"p":1,"n":"EyesType25"},{"t":4,"p":1,"n":"EyesType26"},{"t":4,"p":1,"n":"EyesType27"},{"t":4,"p":1,"n":"EyesType28"},{"t":4,"p":1,"n":"EyesType29"},{"t":4,"p":1,"n":"EyesType30"},{"t":4,"p":1,"n":"EyesType31"}]},{"t":3,"p":1,"n":"Eye Morph Flags 2","c":[{"t":4,"p":1,"n":"EyesType32"},{"t":4,"p":1,"n":"EyesType33"},{"t":4,"p":1,"n":"EyesType34"},{"t":4,"p":1,"n":"EyesType35"},{"t":4,"p":1,"n":"EyesType36"},{"t":4,"p":1,"n":"EyesType37"},{"t":4,"p":1,"n":"EyesType38"}]},{"t":11,"p":1,"n":"Unknown"}]},{"t":6,"p":1,"n":"MPAV - Lip Variants","c":[{"t":3,"p":1,"n":"Lip Morph Flags","c":[{"t":4,"p":1,"n":"LipType0"},{"t":4,"p":1,"n":"LipType1"},{"t":4,"p":1,"n":"LipType2"},{"t":4,"p":1,"n":"LipType3"},{"t":4,"p":1,"n":"LipType4"},{"t":4,"p":1,"n":"LipType5"},{"t":4,"p":1,"n":"LipType6"},{"t":4,"p":1,"n":"LipType7"},{"t":4,"p":1,"n":"LipType8"},{"t":4,"p":1,"n":"LipType9"},{"t":4,"p":1,"n":"LipType10"},{"t":4,"p":1,"n":"LipType11"},{"t":4,"p":1,"n":"LipType12"},{"t":4,"p":1,"n":"LipType13"},{"t":4,"p":1,"n":"LipType14"},{"t":4,"p":1,"n":"LipType15"},{"t":4,"p":1,"n":"LipType16"},{"t":4,"p":1,"n":"LipType17"},{"t":4,"p":1,"n":"LipType18"},{"t":4,"p":1,"n":"LipType19"},{"t":4,"p":1,"n":"LipType20"},{"t":4,"p":1,"n":"LipType21"},{"t":4,"p":1,"n":"LipType22"},{"t":4,"p":1,"n":"LipType23"},{"t":4,"p":1,"n":"LipType24"},{"t":4,"p":1,"n":"LipType25"},{"t":4,"p":1,"n":"LipType26"},{"t":4,"p":1,"n":"LipType27"},{"t":4,"p":1,"n":"LipType28"},{"t":4,"p":1,"n":"LipType29"},{"t":4,"p":1,"n":"LipType30"},{"t":4,"p":1,"n":"LipType31"}]},{"t":11,"p":1,"n":"Unknown"}]}]},{"t":8,"p":1,"n":"Race Presets Female","c":[{"t":3,"p":1,"n":"RPRF - Preset NPC"}]},{"t":8,"p":1,"n":"Available Hair Colors Female","d":1,"c":[{"t":3,"p":1,"n":"AHCF - Hair Color"}]},{"t":8,"p":1,"n":"Face Details Texture Set List Female","c":[{"t":3,"p":1,"n":"FTSF - Texture Set"}]},{"t":3,"p":1,"n":"DFTF - Default Face Texture Female"},{"t":8,"p":1,"n":"Tint Masks","c":[{"t":6,"p":1,"n":"Tint Assets","c":[{"t":8,"p":1,"n":"Tint Layer","c":[{"t":6,"p":1,"n":"Texture","c":[{"t":3,"p":1,"n":"TINI - Index"},{"t":2,"p":1,"n":"TINT - File Name"},{"t":3,"p":1,"n":"TINP - Mask Type"},{"t":3,"p":1,"n":"TIND - Preset Default"}]}]},{"t":8,"p":1,"n":"Presets","c":[{"t":6,"p":1,"n":"Preset","c":[{"t":3,"p":1,"n":"TINC - Color"},{"t":5,"p":1,"n":"TINV - Default Value"},{"t":3,"p":1,"n":"TIRS - Index"}]}]}]}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]},{"t":3,"n":"NAM8 - Morph race"},{"t":3,"n":"RNAM - Armor race"}]},{"t":1,"p":1,"n":"REFR - Placed Object","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"p":1,"n":"Persistent"},{"t":4,"p":1,"n":"Initially Disabled"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Is Full LOD"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"p":1,"n":"Filter (Collision Geometry)"},{"t":4,"p":1,"n":"Bounding Box (Collision Geometry)"},{"t":4,"p":1,"n":"Reflected By Auto Water"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"Ground"},{"t":4,"p":1,"n":"Multibound"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":6,"s":1,"p":1,"n":"XMBO - Bound Half Extents","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"XPRM - Primitive","c":[{"t":6,"p":1,"n":"Bounds","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"s":1,"p":1,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":7,"p":1,"n":"XPOD - Portal Data","c":[{"t":6,"p":1,"n":"References","c":[{"t":3,"p":1,"n":"Origin"},{"t":3,"p":1,"n":"Destination"}]}]},{"t":6,"s":1,"p":1,"n":"XPTL - Room Portal (unused)","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":6,"p":1,"n":"Bound Data","c":[{"t":6,"p":1,"n":"XRMR - Header","c":[{"t":3,"p":1,"n":"Linked Rooms Count"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Has Image Space"},{"t":4,"p":1,"n":"Has Lighting Template"}]},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"LNAM - Lighting Template","lt":"INAM - Image Space"},{"t":3,"p":1,"n":"INAM - Image Space","lf":"LNAM - Lighting Template"},{"t":8,"s":1,"p":1,"n":"Linked Rooms","d":1,"c":[{"t":3,"p":1,"n":"XLRM - Linked Room"}]}]},{"p":1,"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type","c":[{"t":4,"p":1,"n":"Reflection"},{"t":4,"p":1,"n":"Refraction"}]}]}]},{"t":8,"s":1,"p":1,"n":"Lit Water","d":1,"c":[{"t":3,"p":1,"n":"XLTW - Water"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":6,"s":1,"p":1,"n":"XLIG - Light Data","c":[{"t":5,"p":1,"n":"FOV 90+\/-"},{"t":5,"p":1,"n":"Fade 1.35+\/-"},{"t":5,"p":1,"n":"End Distance Cap"},{"t":5,"p":1,"n":"Shadow Depth Bias"},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"XALP - Alpha","c":[{"t":3,"p":1,"n":"Cutoff"},{"t":3,"p":1,"n":"Base"}]},{"t":6,"s":1,"p":1,"n":"XTEL - Teleport Destination","c":[{"t":3,"p":1,"n":"Door"},{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"No Alarm"}]}]},{"t":3,"p":1,"n":"XTNM - Teleport Message Box"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":6,"n":"XCVL - Unknown","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"}]},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":3,"p":1,"n":"XSPC - Spawn Container"},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags","c":[{"t":4,"p":1,"n":"Parent Activate Only"}]},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"p":1,"n":"XLIB - Leveled Item Base Object"},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XTRI - Collision Layer"},{"t":6,"s":1,"p":1,"n":"XLOC - Lock Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Key"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":""},{"t":4,"p":1,"n":"Leveled Lock"}]}]},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"XNDP - Navigation Door Link","c":[{"t":3,"p":1,"n":"Navigation Mesh"},{"t":3,"p":1,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XCNT - Item Count"},{"t":5,"p":1,"n":"XCHG - Charge"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Set Enable State to Opposite of Parent"},{"t":4,"p":1,"n":"Pop In"}]},{"t":11,"n":"Unused"}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":8,"s":1,"p":1,"n":"Patrol","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":3,"p":1,"n":"XACT - Action Flag","c":[{"t":4,"p":1,"n":"Use Default"},{"t":4,"p":1,"n":"Activate"},{"t":4,"p":1,"n":"Open"},{"t":4,"p":1,"n":"Open by Default"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"p":1,"n":"ONAM - Open by Default"},{"t":6,"s":1,"p":1,"n":"Map Marker","c":[{"p":1,"n":"XMRK - Map Marker Data"},{"t":3,"p":1,"n":"FNAM - Map Flags","c":[{"t":4,"p":1,"n":"Visible"},{"t":4,"p":1,"n":"Can Travel To"},{"t":4,"p":1,"n":"\"Show All\" Hidden"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"TNAM - TNAM","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XATR - Attach Ref"},{"t":7,"p":1,"n":"XLOD - Distant LOD Data","c":[{"t":5,"p":1,"n":""}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"REGN - Region","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"p":1,"n":"Border Region"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"RCLR - Map Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":8,"s":1,"p":1,"n":"Region Areas","d":1,"c":[{"t":6,"p":1,"n":"Region Area","c":[{"t":3,"p":1,"n":"RPLI - Edge Fall-off"},{"t":7,"p":1,"n":"RPLD - Region Point List Data","c":[{"t":6,"p":1,"n":"Point","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]}]}]},{"t":10,"p":1,"n":"Region Data Entries","d":1,"c":[{"t":6,"p":1,"n":"Region Data Entry","c":[{"t":6,"p":1,"n":"RDAT - Data Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Override"}]},{"t":3,"p":1,"n":"Priority"},{"t":11,"n":"Unknown"}]},{"t":6,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":3,"p":1,"n":"RDMO - Music"},{"t":7,"p":1,"n":"RDSA - Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Chance"}]}]},{"t":2,"p":1,"n":"RDMP - Map Name"},{"t":7,"p":1,"n":"RDOT - Objects","c":[{"t":6,"p":1,"n":"Object","c":[{"t":3,"p":1,"n":"Object"},{"t":3,"p":1,"n":"Parent Index"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Clustering"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Radius wrt Parent"},{"t":3,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Sink"},{"t":5,"p":1,"n":"Sink Variance"},{"t":5,"p":1,"n":"Size Variance"},{"t":6,"p":1,"n":"Angle Variance","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]}]}]},{"t":7,"p":1,"n":"RDGS - Grasses","c":[{"t":6,"p":1,"n":"Grass","c":[{"t":3,"p":1,"n":"Grass"},{"t":11,"n":"Unknown"}]}]},{"t":7,"p":1,"n":"RDWT - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]}]}]}]},{"t":1,"p":1,"n":"RELA - Relationship","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"p":1,"n":"Secret"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Child"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"p":1,"n":"Secret"}]},{"t":3,"p":1,"n":"Association Type"}]}]},{"t":1,"p":1,"n":"REVB - Reverb Parameters","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Decay Time (ms)"},{"t":3,"p":1,"n":"HF Reference (Hz)"},{"t":3,"p":1,"n":"Room Filter"},{"t":3,"p":1,"n":"Room HF Filter"},{"t":3,"p":1,"n":"Reflections"},{"t":3,"p":1,"n":"Reverb Amp"},{"t":3,"p":1,"n":"Decay HF Ratio"},{"t":3,"p":1,"n":"Reflect Delay (ms), scaled"},{"t":3,"p":1,"n":"Reverb Delay (ms)"},{"t":3,"p":1,"n":"Diffusion %"},{"t":3,"p":1,"n":"Density %"},{"t":3,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"RFCT - Visual Effect","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Effect Data","c":[{"t":3,"p":1,"n":"Effect Art"},{"t":3,"p":1,"n":"Shader"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Rotate to Face Target"},{"t":4,"p":1,"n":"Attach to Camera"},{"t":4,"p":1,"n":"Inherit Rotation"}]}]}]},{"t":1,"p":1,"n":"RGDL","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCEN - Scene","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"OnBegin"},{"t":4,"p":1,"n":"OnEnd"}]},{"t":2,"p":1,"n":"FileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]},{"t":7,"p":1,"n":"Phase Fragments","c":[{"t":6,"p":1,"n":"Phase Fragment","c":[{"t":3,"p":1,"n":"Phase Flag"},{"t":3,"p":1,"n":"Phase Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Begin on Quest Start"},{"t":4,"p":1,"n":"Stop on Quest End"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"Repeat Conditions While True"},{"t":4,"p":1,"n":"Interruptible"}]},{"t":8,"s":1,"p":1,"n":"Phases","d":1,"c":[{"t":6,"p":1,"n":"Phase","c":[{"p":1,"n":"HNAM - Marker Phase Start"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":6,"p":1,"n":"Start Conditions","c":[{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":6,"p":1,"n":"Completion Conditions","c":[{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":3,"p":1,"n":"WNAM - Editor Width"},{"p":1,"n":"HNAM - Marker Phase End"}]}]},{"t":8,"s":1,"p":1,"n":"Actors","d":1,"c":[{"t":6,"p":1,"n":"Actor","c":[{"t":3,"p":1,"n":"ALID - Actor ID"},{"t":3,"p":1,"n":"LNAM - Flags","c":[{"t":4,"p":1,"n":"No Player Activation"},{"t":4,"p":1,"n":"Optional"}]},{"t":3,"p":1,"n":"DNAM - Behaviour Flags","c":[{"t":4,"p":1,"n":"Death Pause (unsused)"},{"t":4,"p":1,"n":"Death End"},{"t":4,"p":1,"n":"Combat Pause"},{"t":4,"p":1,"n":"Combat End"},{"t":4,"p":1,"n":"Dialogue Pause"},{"t":4,"p":1,"n":"Dialogue End"},{"t":4,"p":1,"n":"OBS_COM Pause"},{"t":4,"p":1,"n":"OBS_COM End"}]}]}]},{"t":8,"s":1,"p":1,"n":"Actions","d":1,"c":[{"t":6,"p":1,"n":"Action","c":[{"t":3,"p":1,"n":"ANAM - Type"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":3,"p":1,"n":"ALID - Actor ID"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"INAM - Index"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Face Target"},{"t":4,"p":1,"n":"Looping"},{"t":4,"p":1,"n":"Headtrack Player"}]},{"t":3,"p":1,"n":"SNAM - Start Phase"},{"t":3,"p":1,"n":"ENAM - End Phase"},{"t":5,"p":1,"n":"SNAM - Timer Seconds"},{"t":8,"p":1,"n":"Packages","c":[{"t":3,"p":1,"n":"PNAM - Package"}]},{"t":3,"p":1,"n":"DATA - Topic"},{"t":3,"p":1,"n":"HTID - Headtrack Actor ID"},{"t":5,"p":1,"n":"DMAX - Looping - Max"},{"t":5,"p":1,"n":"DMIN - Looping - Min"},{"t":3,"p":1,"n":"DEMO - Emotion Type"},{"t":3,"p":1,"n":"DEVA - Emotion Value"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"p":1,"n":"ANAM - End Marker"}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"p":1,"n":"NEXT - Marker"},{"t":3,"p":1,"n":"PNAM - Quest"},{"t":3,"p":1,"n":"INAM - Last Action Index"},{"t":11,"n":"VNAM - Unknown"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"SCOL - Static Collection","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures"}]},{"t":8,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"ONAM - Static"},{"t":7,"p":1,"n":"DATA - Placements"}]}]}]},{"t":1,"p":1,"n":"SCPT","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCRL - Scroll","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - Item","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Manual Cost Calc"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"PC Start Spell"},{"t":4,"n":"Unknown 19"},{"t":4,"p":1,"n":"Area Effect Ignores LOS"},{"t":4,"p":1,"n":"Ignore Resistance"},{"t":4,"p":1,"n":"No Absorb\/Reflect"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"No Dual Cast Modification"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SHOU - Shout","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"p":1,"n":"Treat spells as powers"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Words of Power","d":1,"c":[{"t":6,"p":1,"n":"SNAM - SNAM","c":[{"t":3,"p":1,"n":"Word"},{"t":3,"p":1,"n":"Spell"},{"t":5,"p":1,"n":"Recovery Time"}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"p":1,"n":"Can Hold NPC Soul"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - DATA","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"SOUL - Contained Soul"},{"t":3,"p":1,"n":"SLCP - Maximum Capacity"},{"t":3,"p":1,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SMBN - Story Manager Branch Node","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Previous Sibling "},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Warn if no child quest started"}]},{"t":11,"n":"XNAM - Unknown"}]},{"t":1,"p":1,"n":"SMEN - Story Manager Event Node","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Previous Sibling "},{"t":3,"n":"CITC - Condition Count"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Warn if no child quest started"}]},{"t":11,"n":"XNAM - Unknown"},{"t":2,"p":1,"n":"ENAM - Type"}]},{"t":1,"p":1,"n":"SMQN - Story Manager Quest Node","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Previous Sibling "},{"t":3,"n":"CITC - Condition Count"},{"t":10,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Flags","c":[{"t":3,"p":1,"n":"Node Flags","c":[{"t":4,"p":1,"n":"Random"},{"t":4,"p":1,"n":"Warn if no child quest started"}]},{"t":3,"p":1,"n":"Quest Flags","c":[{"t":4,"p":1,"n":"Do all before repeating"},{"t":4,"p":1,"n":"Shares event"},{"t":4,"p":1,"n":"Num quests to run"}]}]},{"t":3,"p":1,"n":"XNAM - Max concurrent quests"},{"t":3,"p":1,"n":"MNAM - Num quests to run"},{"t":3,"n":"QNAM - Quest Count"},{"t":10,"p":1,"n":"Quests","d":1,"c":[{"t":6,"p":1,"n":"Quest","c":[{"t":3,"p":1,"n":"NNAM - Quest"},{"t":11,"n":"FNAM - Unknown"},{"t":5,"p":1,"n":"RNAM - Hours until reset"}]}]}]},{"t":1,"p":1,"n":"SNCT - Sound Category","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"FNAM - Flags","c":[{"t":4,"p":1,"n":"Mute When Submerged"},{"t":4,"p":1,"n":"Should Appear on Menu"}]},{"t":3,"p":1,"n":"PNAM - Parent"},{"t":3,"p":1,"n":"VNAM - Static Volume Multiplier"},{"t":3,"p":1,"n":"UNAM - Default Menu Value"}]},{"t":1,"p":1,"n":"SNDR - Sound Descriptor","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"CNAM - Unknown"},{"t":3,"p":1,"n":"GNAM - Category"},{"t":3,"p":1,"n":"SNAM - Alternate Sound For"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"Sound Files","c":[{"t":2,"p":1,"n":"ANAM - File Name"}]}]},{"t":3,"p":1,"n":"ONAM - Output Model"},{"t":2,"p":1,"n":"FNAM - String"},{"t":10,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"LNAM - Values","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Looping"},{"t":3,"p":1,"n":"Rumble Send Value = (Small \/ 7) + ((Big \/ 7) * 16)"}]},{"t":6,"s":1,"p":1,"n":"BNAM - Values","c":[{"t":3,"p":1,"n":"% Frequency Shift"},{"t":3,"p":1,"n":"% Frequency Variance"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"db Variance"},{"t":3,"p":1,"n":"Static Attenuation (db)"}]}]},{"t":1,"p":1,"n":"SOPM - Sound Output Model","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"NAM1 - Data","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Attenuates With Distance"},{"t":4,"p":1,"n":"Allows Rumble"}]},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reverb Send %"}]},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Type"},{"t":11,"n":"CNAM - Unknown"},{"t":11,"n":"SNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"ONAM - Output Values","c":[{"t":7,"p":1,"n":"Channels","c":[{"t":6,"p":1,"n":"Channel 0","c":[{"t":3,"p":1,"n":"L"},{"t":3,"p":1,"n":"R"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"BL"},{"t":3,"p":1,"n":"BR"}]},{"t":6,"p":1,"n":"Channel 1","c":[{"t":3,"p":1,"n":"L"},{"t":3,"p":1,"n":"R"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"BL"},{"t":3,"p":1,"n":"BR"}]},{"t":6,"p":1,"n":"Channel 2? (unused)","c":[{"t":3,"p":1,"n":"L"},{"t":3,"p":1,"n":"R"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"BL"},{"t":3,"p":1,"n":"BR"}]}]}]},{"t":6,"s":1,"p":1,"n":"ANAM - Attenuation Values","c":[{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Min Distance"},{"t":5,"p":1,"n":"Max Distance"},{"t":7,"p":1,"n":"Curve","c":[{"t":3,"p":1,"n":""}]}]}]},{"t":1,"p":1,"n":"SOUN - Sound Marker","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":11,"n":"FNAM - Unknown"},{"t":11,"n":"SNDD - Unknown"},{"t":3,"p":1,"n":"SDSC - Sound Descriptor"}]},{"t":1,"p":1,"n":"SPEL - Spell","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Manual Cost Calc"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"p":1,"n":"PC Start Spell"},{"t":4,"n":"Unknown 19"},{"t":4,"p":1,"n":"Area Effect Ignores LOS"},{"t":4,"p":1,"n":"Ignore Resistance"},{"t":4,"p":1,"n":"No Absorb\/Reflect"},{"t":4,"n":"Unknown 23"},{"t":4,"p":1,"n":"No Dual Cast Modification"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"},{"t":4,"n":"Unknown 32"}]},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - EFIT","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":10,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - CTDA","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Variable Name"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Knowable"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SPGD - Shader Particle Geometry","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":5,"p":1,"n":"Gravity Velocity"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Rotation Velocity"},{"t":5,"p":1,"n":"Particle Size X"},{"t":5,"p":1,"n":"Particle Size Y"},{"t":5,"p":1,"n":"Center Offset Min"},{"t":5,"p":1,"n":"Center Offset Max"},{"t":5,"p":1,"n":"Initial Rotation Range"},{"t":3,"p":1,"n":"# of Subtextures X"},{"t":3,"p":1,"n":"# of Subtextures Y"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Box Size"},{"t":5,"p":1,"n":"Particle Density"}]},{"t":2,"p":1,"n":"ICON - Particle Texture"}]},{"t":1,"p":1,"n":"STAT - Static","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Never Fades"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"p":1,"n":"Has Tree LOD"},{"t":4,"p":1,"n":"Add-On LOD Object"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"Hidden From Local Map"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"n":"Unknown 12"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Has Distant LOD"},{"t":4,"n":"Unknown 16"},{"t":4,"p":1,"n":"Uses HD LOD Texture"},{"t":4,"n":"Unknown 18"},{"t":4,"p":1,"n":"Has Currents"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"p":1,"n":"Is Marker"},{"t":4,"n":"Unknown 24"},{"t":4,"p":1,"n":"Obstacle"},{"t":4,"p":1,"n":"NavMesh Generation - Filter"},{"t":4,"p":1,"n":"NavMesh Generation - Bounding Box"},{"t":4,"p":1,"n":"Show In World Map"},{"t":4,"n":"Unknown 29"},{"t":4,"p":1,"n":"NavMesh Generation - Ground"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Direction Material","c":[{"t":5,"p":1,"n":"Max Angle (30-120)"},{"t":3,"p":1,"n":"Material"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Considered Snow"}]},{"t":11,"n":"Unused"}]},{"t":7,"p":1,"n":"MNAM - Distant LOD","c":[{"t":6,"p":1,"n":"Level 0","c":[{"t":2,"p":1,"n":"Mesh"}]},{"t":6,"p":1,"n":"Level 1","c":[{"t":2,"p":1,"n":"Mesh"}]},{"t":6,"p":1,"n":"Level 2","c":[{"t":2,"p":1,"n":"Mesh"}]},{"t":6,"p":1,"n":"Level 3","c":[{"t":2,"p":1,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"Hidden From Local Map"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"p":1,"n":"Random Anim Start"},{"t":4,"p":1,"n":"Radio Station"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"TREE - Tree","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"p":1,"n":"Has Distant LOD"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer"},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Tree Data","c":[{"t":5,"p":1,"n":"Trunk Flexibility"},{"t":5,"p":1,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"TXST - Texture Set","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Textures (RGB\/A)","c":[{"t":2,"p":1,"n":"TX00 - Difuse"},{"t":2,"p":1,"n":"TX01 - Normal\/Gloss"},{"t":2,"p":1,"n":"TX02 - Environment Mask\/Subsurface Tint"},{"t":2,"p":1,"n":"TX03 - Glow\/Detail Map"},{"t":2,"p":1,"n":"TX04 - Height"},{"t":2,"p":1,"n":"TX05 - Environment"},{"t":2,"p":1,"n":"TX06 - Multilayer"},{"t":2,"p":1,"n":"TX07 - Backlight Mask\/Specular"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Parallax"},{"t":4,"p":1,"n":"Alpha - Blending"},{"t":4,"p":1,"n":"Alpha - Testing"},{"t":4,"p":1,"n":"No Subtextures"}]},{"t":11,"n":"Unknown"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"No Specular Map"},{"t":4,"p":1,"n":"Facegen Textures"},{"t":4,"p":1,"n":"Has Model Space Normal Map"}]}]},{"t":1,"p":1,"n":"VOLI - Volumetric Lighting","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Intensity"},{"t":5,"p":1,"n":"DNAM - Custom Color - Contribution"},{"t":5,"p":1,"n":"ENAM - Red"},{"t":5,"p":1,"n":"FNAM - Green"},{"t":5,"p":1,"n":"GNAM - Blue"},{"t":5,"p":1,"n":"HNAM - Density - Contribution"},{"t":5,"p":1,"n":"INAM - Density - Size"},{"t":5,"p":1,"n":"JNAM - Density - Wind Speed"},{"t":5,"p":1,"n":"KNAM - Density - Falling Speed"},{"t":5,"p":1,"n":"LNAM - Phase Function - Contribution"},{"t":5,"p":1,"n":"MNAM - Phase Function - Scattering"},{"t":5,"p":1,"n":"NNAM - Sampling Repartition - Range Factor"}]},{"t":1,"p":1,"n":"VTYP - Voice Type","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Flags","c":[{"t":4,"p":1,"n":"Allow Default Dialog"},{"t":4,"p":1,"n":"Female"}]}]},{"t":1,"p":1,"n":"WATR - Water","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"n":"Unused","c":[{"t":2,"n":"NNAM - Noise Map"}]},{"t":3,"p":1,"n":"ANAM - Opacity"},{"t":3,"p":1,"n":"FNAM - Flags","d":1,"c":[{"t":4,"p":1,"n":"Causes Damage"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"p":1,"n":"Enable Flowmap"},{"t":4,"p":1,"n":"Blend Normals"},{"t":4,"n":"Unknown 5"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"}]},{"t":11,"n":"MNAM - Unused"},{"t":3,"p":1,"n":"TNAM - Material"},{"t":3,"p":1,"n":"SNAM - Open Sound"},{"t":3,"p":1,"n":"XNAM - Spell"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":3,"p":1,"n":"DATA - Unused"},{"t":6,"s":1,"p":1,"n":"DNAM - Visual Data","c":[{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Specular Properties - Sun Specular Power"},{"t":5,"p":1,"n":"Water Properties - Reflectivity Amount"},{"t":5,"p":1,"n":"Water Properties - Fresnel Amount"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Distance - Near Plane"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Distance - Far Plane"},{"t":6,"p":1,"n":"Shallow Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Deep Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Reflection Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Displacement Simulator - Starting Size"},{"t":5,"p":1,"n":"Displacement Simulator - Force"},{"t":5,"p":1,"n":"Displacement Simulator - Velocity"},{"t":5,"p":1,"n":"Displacement Simulator - Falloff"},{"t":5,"p":1,"n":"Displacement Simulator - Dampner"},{"t":5,"p":1,"n":"Noise Properties - Noise Falloff"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Wind Speed"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Wind Speed"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Wind Speed"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Amount"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Amount"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Distance - Near Plane"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Distance - Far Plane"},{"t":5,"p":1,"n":"Water Properties - Refraction Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Specular Power"},{"t":5,"p":1,"n":"Specular Properties - Specular Radius"},{"t":5,"p":1,"n":"Specular Properties - Specular Brightness"},{"t":5,"p":1,"n":"Noise Properties - Layer One - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Amplitude Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Amplitude Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Amplitude Scale"},{"t":5,"p":1,"n":"Water Properties - Reflection Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Sun Sparkle Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Sun Specular Magnitude"},{"t":5,"p":1,"n":"Depth Properties - Reflections"},{"t":5,"p":1,"n":"Depth Properties - Refraction"},{"t":5,"p":1,"n":"Depth Properties - Normals"},{"t":5,"p":1,"n":"Depth Properties - Specular Lighting"},{"t":5,"p":1,"n":"Specular Properties - Sun Sparkle Power"},{"t":5,"p":1,"n":"Noise Properties - Flowmap Scale"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"s":1,"p":1,"n":"NAM0 - Linear Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"NAM1 - Angular Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"NAM2 - Noise Layer One - Noise Texture"},{"t":2,"p":1,"n":"NAM3 - Noise Layer Two - Noise Texture"},{"t":2,"p":1,"n":"NAM4 - Noise Layer Three - Noise Texture"},{"t":2,"p":1,"n":"NAM5 - Flow Normals - Noise Texture"}]},{"t":1,"p":1,"n":"WEAP - Weapon","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"p":1,"n":"Non-Playable"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","d":1,"c":[{"t":6,"s":1,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"p":1,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"p":1,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon FileName"},{"t":2,"p":1,"n":"MICO - Small Icon FileName"}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Destructible","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Cap Damage"},{"t":4,"p":1,"n":"Disable"},{"t":4,"p":1,"n":"Destroy"},{"t":4,"p":1,"n":"Ignore External Dmg"}]},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model FileName"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","d":1,"c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Has Scope","c":[{"t":2,"p":1,"n":"MOD3 - Model FileName"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO3S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"p":1,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"WNAM - 1st Person Model Object"},{"t":3,"p":1,"n":"SNAM - Attack Sound"},{"t":3,"p":1,"n":"XNAM - Attack Sound 2D"},{"t":3,"p":1,"n":"NAM7 - Attack Loop Sound"},{"t":3,"p":1,"n":"TNAM - Attack Fail Sound"},{"t":3,"p":1,"n":"UNAM - Idle Sound"},{"t":3,"p":1,"n":"NAM9 - Equip Sound"},{"t":3,"p":1,"n":"NAM8 - Unequip Sound"},{"t":6,"s":1,"p":1,"n":"DATA - Game Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Damage"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Reach"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Ignores Normal Weapon Resistance"},{"t":4,"p":1,"n":"Automatic (unused)"},{"t":4,"p":1,"n":"Has Scope (unused)"},{"t":4,"p":1,"n":"Can't Drop"},{"t":4,"p":1,"n":"Hide Backpack (unused)"},{"t":4,"p":1,"n":"Embedded Weapon (unused)"},{"t":4,"p":1,"n":"Don't Use 1st Person IS Anim (unused)"},{"t":4,"p":1,"n":"Non-playable"}]},{"t":5,"p":1,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Base VATS To-Hit Chance"},{"t":3,"p":1,"n":"Attack Animation"},{"t":3,"p":1,"n":"# Projectiles"},{"t":3,"p":1,"n":"Embedded Weapon AV (unused)"},{"t":5,"p":1,"n":"Range Min"},{"t":5,"p":1,"n":"Range Max"},{"t":3,"p":1,"n":"On Hit"},{"t":3,"p":1,"n":"Flags2","c":[{"t":4,"p":1,"n":"Player Only"},{"t":4,"p":1,"n":"NPCs Use Ammo"},{"t":4,"p":1,"n":"No Jam After Reload (unused)"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Minor Crime"},{"t":4,"p":1,"n":"Range Fixed"},{"t":4,"p":1,"n":"Not Used in Normal Combat"},{"t":4,"n":"Unknown 8"},{"t":4,"p":1,"n":"Don't Use 3rd Person IS Anim (unused)"},{"t":4,"p":1,"n":"Burst Shot"},{"t":4,"p":1,"n":"Rumble - Alternate"},{"t":4,"p":1,"n":"Long Bursts"},{"t":4,"p":1,"n":"Non-hostile"},{"t":4,"p":1,"n":"Bound Weapon"}]},{"t":5,"p":1,"n":"Animation Attack Mult"},{"t":5,"p":1,"n":"Rumble - Left Motor Strength"},{"t":5,"p":1,"n":"Rumble - Right Motor Strength"},{"t":5,"p":1,"n":"Rumble - Duration"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Resist"},{"t":5,"p":1,"n":"Stagger"}]},{"t":6,"s":1,"p":1,"n":"CRDT - Critical Data","c":[{"t":3,"p":1,"n":"Damage"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"% Mult"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"On Death"}]},{"t":3,"p":1,"n":"Effect"}]},{"t":3,"p":1,"n":"VNAM - Detection Sound Level"},{"t":3,"p":1,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"WOOP - Word of Power","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"TNAM - Translation"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"p":1,"n":"Can't Wait"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Large References","d":1,"c":[{"t":6,"p":1,"n":"RNAM - Grid","c":[{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"X"},{"t":7,"p":1,"n":"References","c":[{"t":6,"n":"Reference","c":[{"t":3,"n":"Ref"},{"t":3,"n":"Y"},{"t":3,"n":"X"}]}]}]}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":3,"p":1,"n":"LTMP - Interior Lighting"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XLCN - Location"},{"t":6,"s":1,"p":1,"n":"Parent","c":[{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":6,"p":1,"n":"PNAM - PNAM","c":[{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Use Land Data"},{"t":4,"p":1,"n":"Use LOD Data"},{"t":4,"p":1,"n":"Use Map Data"},{"t":4,"p":1,"n":"Use Water Data"},{"t":4,"p":1,"n":"Use Climate Data"},{"t":4,"p":1,"n":"Use Image Space Data (unused)"},{"t":4,"p":1,"n":"Use Sky Cell"}]},{"t":11,"n":"Unknown"}]}]},{"t":3,"p":1,"n":"CNAM - Climate"},{"t":3,"p":1,"n":"NAM2 - Water"},{"t":3,"p":1,"n":"NAM3 - LOD Water Type"},{"t":5,"p":1,"n":"NAM4 - LOD Water Height"},{"t":6,"s":1,"p":1,"n":"DNAM - Land Data","c":[{"t":5,"p":1,"n":"Default Land Height"},{"t":5,"p":1,"n":"Default Water Height"}]},{"t":2,"p":1,"n":"ICON - Map Image"},{"t":6,"s":1,"p":1,"n":"Cloud Model","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"MNAM - Map Data","c":[{"t":6,"p":1,"n":"Usable Dimensions","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Cell Coordinates","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"SE Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]},{"t":6,"p":1,"n":"Camera Data","c":[{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Initial Pitch"}]}]},{"t":6,"s":1,"p":1,"n":"ONAM - World Map Offset Data","c":[{"t":5,"p":1,"n":"World Map Scale"},{"t":5,"p":1,"n":"Cell X Offset"},{"t":5,"p":1,"n":"Cell Y Offset"},{"t":5,"p":1,"n":"Cell Z Offset"}]},{"t":5,"p":1,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"p":1,"n":"DATA - Flags","d":1,"c":[{"t":4,"p":1,"n":"Small World"},{"t":4,"p":1,"n":"Can't Fast Travel"},{"t":4,"n":"Unknown 3"},{"t":4,"p":1,"n":"No LOD Water"},{"t":4,"p":1,"n":"No Landscape"},{"t":4,"p":1,"n":"No Sky"},{"t":4,"p":1,"n":"Fixed Dimensions"},{"t":4,"p":1,"n":"No Grass"}]},{"t":6,"s":1,"p":1,"n":"Object Bounds","c":[{"t":6,"p":1,"n":"NAM0 - Min","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"NAM9 - Max","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":3,"p":1,"n":"ZNAM - Music"},{"t":2,"p":1,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"p":1,"n":"XNAM - Water Noise Texture"},{"t":2,"p":1,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"p":1,"n":"UNAM - HD LOD Normal Texture"},{"t":2,"p":1,"n":"XWEM - Water Environment Map (unused)"},{"t":11,"n":"OFST - Offset Data"}]},{"t":1,"p":1,"n":"WTHR - Weather","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"p":1,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"p":1,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"p":1,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"p":1,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"p":1,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"p":1,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"p":1,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"p":1,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"p":1,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"p":1,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"p":1,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"p":1,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"p":1,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"p":1,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"p":1,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"p":1,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"p":1,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"p":1,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"p":1,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"p":1,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"p":1,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"p":1,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"p":1,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"p":1,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"p":1,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"p":1,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"p":1,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"p":1,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"DNAM - Unused"},{"t":11,"n":"CNAM - Unused"},{"t":11,"n":"ANAM - Unused"},{"t":11,"n":"BNAM - Unused"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Precipitation Type"},{"t":3,"p":1,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"s":1,"p":1,"n":"Cloud Speed","c":[{"t":7,"p":1,"n":"RNAM - Y Speed","c":[{"t":3,"p":1,"n":"Layer"}]},{"t":7,"p":1,"n":"QNAM - X Speed","c":[{"t":3,"p":1,"n":"Layer"}]}]},{"t":7,"s":1,"p":1,"n":"PNAM - Cloud Colors","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"s":1,"p":1,"n":"JNAM - Cloud Alphas","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":5,"p":1,"n":"Sunrise"},{"t":5,"p":1,"n":"Day"},{"t":5,"p":1,"n":"Sunset"},{"t":5,"p":1,"n":"Night"}]}]},{"t":6,"s":1,"p":1,"n":"NAM0 - Weather Colors","c":[{"t":6,"p":1,"n":"Sky-Upper","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sunlight","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Stars","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky-Lower","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Horizon","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Effect Lighting","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Diffuse","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky Statics","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Water Multiplier","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Moon Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":6,"s":1,"p":1,"n":"FNAM - Fog Distance","c":[{"t":5,"p":1,"n":"Day - Near"},{"t":5,"p":1,"n":"Day - Far"},{"t":5,"p":1,"n":"Night - Near"},{"t":5,"p":1,"n":"Night - Far"},{"t":5,"p":1,"n":"Day - Power"},{"t":5,"p":1,"n":"Night - Power"},{"t":5,"p":1,"n":"Day - Max"},{"t":5,"p":1,"n":"Night - Max"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Trans Delta"},{"t":3,"p":1,"n":"Sun Glare"},{"t":3,"p":1,"n":"Sun Damage"},{"t":3,"p":1,"n":"Precipitation - Begin Fade In"},{"t":3,"p":1,"n":"Precipitation - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"p":1,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Frequency"},{"t":3,"p":1,"n":"Flags","c":[{"t":4,"p":1,"n":"Weather - Pleasant"},{"t":4,"p":1,"n":"Weather - Cloudy"},{"t":4,"p":1,"n":"Weather - Rainy"},{"t":4,"p":1,"n":"Weather - Snow"},{"t":4,"p":1,"n":"Sky Statics - Always Visible"},{"t":4,"p":1,"n":"Sky Statics - Follows Sun Position"}]},{"t":6,"p":1,"n":"Lightning Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Visual Effect - Begin"},{"t":3,"p":1,"n":"Visual Effect - End"},{"t":3,"p":1,"n":"Wind Direction"},{"t":3,"p":1,"n":"Wind Direction Range"}]},{"t":3,"p":1,"n":"NAM1 - Disabled Cloud Layers","d":1,"c":[{"t":4,"p":1,"n":"0"},{"t":4,"p":1,"n":"1"},{"t":4,"p":1,"n":"2"},{"t":4,"p":1,"n":"3"},{"t":4,"p":1,"n":"4"},{"t":4,"p":1,"n":"5"},{"t":4,"p":1,"n":"6"},{"t":4,"p":1,"n":"7"},{"t":4,"p":1,"n":"8"},{"t":4,"p":1,"n":"9"},{"t":4,"p":1,"n":"10"},{"t":4,"p":1,"n":"11"},{"t":4,"p":1,"n":"12"},{"t":4,"p":1,"n":"13"},{"t":4,"p":1,"n":"14"},{"t":4,"p":1,"n":"15"},{"t":4,"p":1,"n":"16"},{"t":4,"p":1,"n":"17"},{"t":4,"p":1,"n":"18"},{"t":4,"p":1,"n":"19"},{"t":4,"p":1,"n":"20"},{"t":4,"p":1,"n":"21"},{"t":4,"p":1,"n":"22"},{"t":4,"p":1,"n":"23"},{"t":4,"p":1,"n":"24"},{"t":4,"p":1,"n":"25"},{"t":4,"p":1,"n":"26"},{"t":4,"p":1,"n":"27"},{"t":4,"p":1,"n":"28"},{"t":4,"p":1,"n":"29"},{"t":4,"p":1,"n":"30"},{"t":4,"p":1,"n":"31"}]},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Sky Statics","d":1,"c":[{"t":3,"p":1,"n":"TNAM - Static"}]},{"t":6,"s":1,"p":1,"n":"IMSP - Image Spaces","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"}]},{"t":6,"s":1,"p":1,"n":"HNAM - Volumetric Lighting","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"}]},{"t":6,"s":1,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"DALC - Sunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Day","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Sunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Night","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":6,"s":1,"p":1,"n":"Aurora","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model FileName"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":3,"p":1,"n":"GNAM - Sun Glare Lens Flare"}]},{"t":1,"p":1,"n":"AACT - Action","d":1,"c":[{"t":6,"p":1,"n":"Record Header","c":[{"t":2,"n":"Signature"},{"t":3,"n":"Data Size"},{"t":3,"p":1,"n":"Record Flags","d":1,"c":[{"t":4,"n":"Unknown 0"},{"t":4,"n":"Unknown 1"},{"t":4,"n":"Unknown 2"},{"t":4,"n":"Unknown 3"},{"t":4,"n":"Unknown 4"},{"t":4,"p":1,"n":"Deleted"},{"t":4,"n":"Unknown 6"},{"t":4,"n":"Unknown 7"},{"t":4,"n":"Unknown 8"},{"t":4,"n":"Unknown 9"},{"t":4,"n":"Unknown 10"},{"t":4,"n":"Unknown 11"},{"t":4,"p":1,"n":"Ignored"},{"t":4,"n":"Unknown 13"},{"t":4,"n":"Unknown 14"},{"t":4,"n":"Unknown 15"},{"t":4,"n":"Unknown 16"},{"t":4,"n":"Unknown 17"},{"t":4,"n":"Unknown 18"},{"t":4,"n":"Unknown 19"},{"t":4,"n":"Unknown 20"},{"t":4,"n":"Unknown 21"},{"t":4,"n":"Unknown 22"},{"t":4,"n":"Unknown 23"},{"t":4,"n":"Unknown 24"},{"t":4,"n":"Unknown 25"},{"t":4,"n":"Unknown 26"},{"t":4,"n":"Unknown 27"},{"t":4,"n":"Unknown 28"},{"t":4,"n":"Unknown 29"},{"t":4,"n":"Unknown 30"},{"t":4,"n":"Unknown 31"}]},{"t":3,"n":"FormID"},{"t":11,"n":"Version Control Info 1"},{"t":3,"n":"Form Version"},{"t":11,"n":"Version Control Info 2"}]},{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]}]},"name":"Smash.All","hash":"011B7A28","color":128}
\ No newline at end of file
diff --git a/frontend/settings/Skyrim/Smash.All.old.json b/frontend/settings/Skyrim/Smash.All.old.json
new file mode 100755
index 0000000..272a037
--- /dev/null
+++ b/frontend/settings/Skyrim/Smash.All.old.json
@@ -0,0 +1 @@
+{"records":"ACHR,ACTI,ADDN,ALCH,AMMO,ANIO,APPA,ARMA,ARMO,ARTO,ASPC,ASTP,AVIF,BOOK,BPTD,CAMS,CELL,CLAS,CLDC,CLFM,CLMT,COBJ,COLL,CONT,CPTH,CSTY,DEBR,DIAL,DLBR,DLVW,DOOR,DUAL,ECZN,EFSH,ENCH,EQUP,EXPL,EYES,FACT,FLOR,FLST,FSTP,FSTS,FURN,GLOB,GMST,GRAS,HAIR,HAZD,HDPT,IDLM,IMAD,IMGS,INFO,INGR,IPCT,IPDS,KEYM,KYWD,LAND,LCRT,LENS,LGTM,LIGH,LSCR,LTEX,LVLI,LVLN,LVSP,MATO,MATT,MESG,MGEF,MISC,MOVT,MSTT,MUSC,MUST,NPC_,OTFT,PACK,PARW,PBAR,PBEA,PCON,PERK,PFLA,PGRE,PHZD,PMIS,PROJ,PWAT,QUST,RACE,REFR,REGN,RELA,REVB,RFCT,RGDL,SCEN,SCOL,SCPT,SCRL,SHOU,SLGM,SMBN,SMEN,SMQN,SNCT,SNDR,SOPM,SOUN,SPEL,SPGD,STAT,TACT,TREE,TXST,VOLI,VTYP,WATR,WEAP,WOOP,WRLD,WTHR,AACT","description":"Smashes all the things. Produced using autoset attributes on all record types found in Skyrim.esm and DLCs. Replaces the old \"Automatic\" setting.\r\n\r\nLast updated 04\/14\/2018.","tree":{"records":[{"t":1,"p":1,"n":"ACHR - Placed NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":6,"s":1,"p":1,"n":"Patrol Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":3,"p":1,"n":"TNAM - Topic"}]},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XMRC - Merchant Container"},{"t":3,"p":1,"n":"XCNT - Count"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":5,"p":1,"n":"XHLP - Health"},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XCLP - Linked Reference Color","c":[{"t":6,"p":1,"n":"Link Start Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Link End Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XHOR - Horse"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIBS - Ignored By Sandbox"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"ACTI - Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"PNAM - Marker Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"SNAM - Sound - Looping"},{"t":3,"p":1,"n":"VNAM - Sound - Activation"},{"t":3,"p":1,"n":"WNAM - Water Type"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"}]},{"t":1,"p":1,"n":"ADDN - Addon Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DATA - Node Index"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Master Particle System Cap"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"ALCH - Ingestible","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":5,"p":1,"n":"DATA - Weight"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Value"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Addiction"},{"t":5,"p":1,"n":"Addiction Chance"},{"t":3,"p":1,"n":"Sound - Consume"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"AMMO - Ammunition","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Damage"},{"t":3,"p":1,"n":"Value"}]},{"t":2,"p":1,"n":"ONAM - Short Name"}]},{"t":1,"p":1,"n":"ANIO - Animated Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":2,"p":1,"n":"BNAM - Unload Event"}]},{"t":1,"p":1,"n":"APPA - Alchemical Apparatus","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"p":1,"n":"QUAL - Quality"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"ARMA - Armor Addon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BODT - Body Template","lf":"BODT - Body Template"},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BOD2 - Biped Body Template","lf":"BOD2 - Biped Body Template"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Male Priority"},{"t":3,"p":1,"n":"Female Priority"},{"t":3,"p":1,"n":"Weight slider - Male"},{"t":3,"p":1,"n":"Weight slider - Female"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Detection Sound Value"},{"t":5,"p":1,"n":"Weapon Adjust"}]},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO2S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO3S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Male 1st Person","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO4S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Female 1st Person","c":[{"t":2,"p":1,"n":"MOD5 - Model Filename"},{"t":11,"p":1,"n":"MO5T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO5S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"NAM0 - Male Skin Texture"},{"t":3,"p":1,"n":"NAM1 - Female Skin texture"},{"t":3,"p":1,"n":"NAM2 - Male Skin Texture Swap List"},{"t":3,"p":1,"n":"NAM3 - Female Skin Texture Swap List"},{"t":8,"s":1,"p":1,"n":"Additional Races","d":1,"c":[{"t":3,"p":1,"n":"MODL - Race"}]},{"t":3,"p":1,"n":"SNDD - Footstep Sound"},{"t":3,"p":1,"n":"ONAM - Art Object"}]},{"t":1,"p":1,"n":"ARMO - Armor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Male world model","c":[{"t":2,"p":1,"n":"MOD2 - Model Filename"},{"t":11,"p":1,"n":"MO2T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO2S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Female world model","c":[{"t":2,"p":1,"n":"MOD4 - Model Filename"},{"t":11,"p":1,"n":"MO4T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO4S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon 2 (female)","c":[{"t":2,"p":1,"n":"ICO2 - Large Icon filename"},{"t":2,"p":1,"n":"MIC2 - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BODT - Body Template","lf":"BODT - Body Template"},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}],"lt":"BOD2 - Biped Body Template","lf":"BOD2 - Biped Body Template"},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":2,"p":1,"n":"BMCT - Ragdoll Constraint Template"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"RNAM - Race"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Armature","d":1,"c":[{"t":3,"p":1,"n":"MODL - Model Filename"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"DNAM - Armor Rating"},{"t":3,"p":1,"n":"TNAM - Template Armor"}]},{"t":1,"p":1,"n":"ARTO - Art Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DNAM - Art Type"}]},{"t":1,"p":1,"n":"ASPC - Acoustic Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"SNAM - Ambient Sound"},{"t":3,"p":1,"n":"RDAT - Use Sound from Region (Interiors Only)"},{"t":3,"p":1,"n":"BNAM - Environment Type (reverb)"}]},{"t":1,"p":1,"n":"ASTP - Association Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MPRT - Male Parent Title"},{"t":2,"p":1,"n":"FPRT - Female Parent Title"},{"t":2,"p":1,"n":"MCHT - Male Child Title"},{"t":2,"p":1,"n":"FCHT - Female Child Title"},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"AVIF - Actor Value Information","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"ANAM - Abbreviation"},{"t":11,"n":"CNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"AVSK - Skill","c":[{"t":5,"p":1,"n":"Skill Use Mult"},{"t":5,"p":1,"n":"Skill Offset Mult"},{"t":5,"p":1,"n":"Skill Improve Mult"},{"t":5,"p":1,"n":"Skill Improve Offset"}]},{"t":8,"s":1,"p":1,"n":"Perk Tree","d":1,"c":[{"t":6,"p":1,"n":"Node","c":[{"t":3,"p":1,"n":"PNAM - Perk"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"XNAM - Perk-Grid X"},{"t":3,"p":1,"n":"YNAM - Perk-Grid Y"},{"t":5,"p":1,"n":"HNAM - Horizontal Position"},{"t":5,"p":1,"n":"VNAM - Vertical Position"},{"t":3,"p":1,"n":"SNAM - Associated Skill"},{"t":8,"p":1,"n":"Connections","c":[{"t":3,"p":1,"n":"CNAM - Line to Index"}]},{"t":3,"p":1,"n":"INAM - Index"}]}]}]},{"t":1,"p":1,"n":"BOOK - Book","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":2,"p":1,"n":"DESC - Book Text"},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"INAM - Inventory Art"},{"t":2,"p":1,"n":"CNAM - Description"}]},{"t":1,"p":1,"n":"BPTD - Body Part Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":10,"p":1,"n":"Body Parts","d":1,"c":[{"t":6,"p":1,"n":"Body Part","c":[{"t":2,"p":1,"n":"BPTN - Part Name"},{"t":2,"p":1,"n":"PNAM - Pose Matching"},{"t":2,"p":1,"n":"BPNN - Part Node"},{"t":2,"p":1,"n":"BPNT - VATS Target"},{"t":2,"p":1,"n":"BPNI - IK Data - Start Node"},{"t":6,"p":1,"n":"BPND - ","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Part Type"},{"t":3,"p":1,"n":"Health Percent"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"To Hit Chance"},{"t":3,"p":1,"n":"Explodable - Explosion Chance %"},{"t":3,"p":1,"n":"Explodable - Debris Count"},{"t":3,"p":1,"n":"Explodable - Debris"},{"t":3,"p":1,"n":"Explodable - Explosion"},{"t":5,"p":1,"n":"Tracking Max Angle"},{"t":5,"p":1,"n":"Explodable - Debris Scale"},{"t":3,"p":1,"n":"Severable - Debris Count"},{"t":3,"p":1,"n":"Severable - Debris"},{"t":3,"p":1,"n":"Severable - Explosion"},{"t":5,"p":1,"n":"Severable - Debris Scale"},{"t":6,"p":1,"n":"Gore Effects Positioning","c":[{"t":6,"p":1,"n":"Translate","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Severable - Impact DataSet"},{"t":3,"p":1,"n":"Explodable - Impact DataSet"},{"t":3,"p":1,"n":"Severable - Decal Count"},{"t":3,"p":1,"n":"Explodable - Decal Count"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Limb Replacement Scale"}]},{"t":2,"p":1,"n":"NAM1 - Limb Replacement Model"},{"t":2,"p":1,"n":"NAM4 - Gore Effects - Target Bone"},{"t":11,"p":1,"n":"NAM5 - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"CAMS - Camera Shot","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Action"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Time Multipliers","c":[{"t":5,"p":1,"n":"Player"},{"t":5,"p":1,"n":"Target"},{"t":5,"p":1,"n":"Global"}]},{"t":5,"p":1,"n":"Max Time"},{"t":5,"p":1,"n":"Min Time"},{"t":5,"p":1,"n":"Target % Between Actors"},{"t":5,"p":1,"n":"Near Target Distance"}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"}]},{"t":1,"p":1,"n":"CELL - Cell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"XCLC - Grid","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Force Hide Land"}]},{"t":6,"s":1,"p":1,"n":"XCLL - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Distance"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Ambient Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":5,"p":1,"n":"Light Fade Begin"},{"t":5,"p":1,"n":"Light Fade End"},{"t":3,"p":1,"n":"Inherits"}]},{"t":11,"n":"TVDT - Occlusion Data"},{"t":11,"n":"MHDT - Max Height Data"},{"t":3,"p":1,"n":"LTMP - Lighting Template"},{"t":11,"n":"LNAM - Unknown"},{"t":5,"p":1,"n":"XCLW - Water Height"},{"t":2,"p":1,"n":"XNAM - Water Noise Texture"},{"t":7,"p":1,"n":"XCLR - Regions","c":[{"t":3,"p":1,"n":"Region"}]},{"t":3,"p":1,"n":"XLCN - Location"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":3,"p":1,"n":"XCWT - Water"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XILL - Lock List"},{"t":2,"p":1,"n":"XWEM - Water Environment Map"},{"t":3,"p":1,"n":"XCCM - Sky\/Weather from Region"},{"t":3,"p":1,"n":"XCAS - Acoustic Space"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XCMO - Music Type"},{"t":3,"p":1,"n":"XCIM - Image Space"}]},{"t":1,"p":1,"n":"CLAS - Class","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Teaches"},{"t":3,"p":1,"n":"Maximum training level"},{"t":7,"p":1,"n":"Skill Weights","c":[{"t":3,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"Bleedout Default"},{"t":3,"p":1,"n":"Voice Points"},{"t":7,"p":1,"n":"Attribute Weights","c":[{"t":3,"p":1,"n":"Weight"}]}]}]},{"t":1,"p":1,"n":"CLDC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"CLFM - Color","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"FNAM - Playable"}]},{"t":1,"p":1,"n":"CLMT - Climate","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"WLST - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]},{"t":2,"p":1,"n":"FNAM - Sun Texture"},{"t":2,"p":1,"n":"GNAM - Sun Glare Texture"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"TNAM - Timing","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Begin"},{"t":3,"p":1,"n":"End"}]},{"t":3,"p":1,"n":"Volatility"},{"t":3,"p":1,"n":"Moons \/ Phase Length"}]}]},{"t":1,"p":1,"n":"COBJ - Constructible Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"CNAM - Created Object"},{"t":3,"p":1,"n":"BNAM - Workbench Keyword"},{"t":3,"p":1,"n":"NAM1 - Created Object Count"}]},{"t":1,"p":1,"n":"COLL - Collision Layer","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"p":1,"n":"BNAM - Index"},{"t":6,"s":1,"p":1,"n":"FNAM - Debug Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"GNAM - Flags"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":3,"n":"INTV - Interactables Count"},{"t":7,"p":1,"n":"CNAM - Collides With","c":[{"t":3,"p":1,"n":"Forms"}]}]},{"t":1,"p":1,"n":"CONT - Container","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"QNAM - Sound - Close"}]},{"t":1,"p":1,"n":"CPTH - Camera Path","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"ANAM - Related Camera Paths","c":[{"t":3,"p":1,"n":"Related Camera Path"}]},{"t":3,"p":1,"n":"DATA - Camera Zoom"},{"t":8,"s":1,"p":1,"n":"Camera Shots","d":1,"c":[{"t":3,"p":1,"n":"SNAM - Camera Shot"}]}]},{"t":1,"p":1,"n":"CSTY - Combat Style","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CSGD - General","c":[{"t":5,"p":1,"n":"Offensive Mult"},{"t":5,"p":1,"n":"Defensive Mult"},{"t":5,"p":1,"n":"Group Offensive Mult"},{"t":5,"p":1,"n":"Equipment Score Mult - Melee"},{"t":5,"p":1,"n":"Equipment Score Mult - Magic"},{"t":5,"p":1,"n":"Equipment Score Mult - Ranged"},{"t":5,"p":1,"n":"Equipment Score Mult - Shout"},{"t":5,"p":1,"n":"Equipment Score Mult - Unarmed"},{"t":5,"p":1,"n":"Equipment Score Mult - Staff"},{"t":5,"p":1,"n":"Avoid Threat Chance"}]},{"t":11,"n":"CSMD - Unknown"},{"t":6,"s":1,"p":1,"n":"CSME - Melee","c":[{"t":5,"p":1,"n":"Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Staggered Mult"},{"t":5,"p":1,"n":"Power Attack Blocking Mult"},{"t":5,"p":1,"n":"Bash Mult"},{"t":5,"p":1,"n":"Bash Recoil Mult"},{"t":5,"p":1,"n":"Bash Attack Mult"},{"t":5,"p":1,"n":"Bash Power Attack Mult"},{"t":5,"p":1,"n":"Special Attack Mult"}]},{"t":6,"s":1,"p":1,"n":"CSCR - Close Range","c":[{"t":5,"p":1,"n":"Circle Mult"},{"t":5,"p":1,"n":"Fallback Mult"},{"t":5,"p":1,"n":"Flank Distance"},{"t":5,"p":1,"n":"Stalk Time"}]},{"t":6,"s":1,"p":1,"n":"CSLR - Long Range","c":[{"t":5,"p":1,"n":"Strafe Mult"}]},{"t":6,"s":1,"p":1,"n":"CSFL - Flight","c":[{"t":5,"p":1,"n":"Hover Chance"},{"t":5,"p":1,"n":"Dive Bomb Chance"},{"t":5,"p":1,"n":"Ground Attack Chance"},{"t":5,"p":1,"n":"Hover Time"},{"t":5,"p":1,"n":"Ground Attack Time"},{"t":5,"p":1,"n":"Perch Attack Chance"},{"t":5,"p":1,"n":"Perch Attack Time"},{"t":5,"p":1,"n":"Flying Attack Chance"}]},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"DEBR - Debris","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Models","d":1,"c":[{"t":6,"p":1,"n":"Model","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Percentage"},{"t":2,"p":1,"n":"Model Filename"},{"t":3,"p":1,"n":"Flags"}]},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"}]}]}]},{"t":1,"p":1,"n":"DIAL - Dialog Topic","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":5,"p":1,"n":"PNAM - Priority"},{"t":3,"p":1,"n":"BNAM - Branch"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Topic Flags"},{"t":3,"p":1,"n":"Category"},{"t":3,"p":1,"n":"Subtype"}]},{"t":2,"p":1,"n":"SNAM - Subtype Name"},{"t":3,"p":1,"n":"TIFC - Info Count"}]},{"t":1,"p":1,"n":"DLBR - Dialog Branch","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":3,"n":"TNAM - Unknown"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Starting Topic"}]},{"t":1,"p":1,"n":"DLVW - Dialog View","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"QNAM - Quest"},{"t":8,"s":1,"p":1,"n":"Branches","d":1,"c":[{"t":3,"p":1,"n":"BNAM - Branch"}]},{"t":8,"n":"Unknown TNAM","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"TNAM - Unknown"}]}]},{"t":11,"n":"ENAM - Unknown"},{"t":11,"n":"DNAM - Unknown"}]},{"t":1,"n":"DOBJ - Default Object Manager","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"DNAM - Objects","c":[{"t":6,"n":"Object","c":[{"t":3,"n":"Use"},{"t":3,"n":"Object ID"}]}]}]},{"t":1,"p":1,"n":"DOOR - Door","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"SNAM - Sound - Open"},{"t":3,"p":1,"n":"ANAM - Sound - Close"},{"t":3,"p":1,"n":"BNAM - Sound - Loop"},{"t":3,"p":1,"n":"FNAM - Flags"}]},{"t":1,"p":1,"n":"DUAL - Dual Cast Data","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Effect Shader"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Inherit Scale"}]}]},{"t":1,"p":1,"n":"ECZN - Encounter Zone","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Min Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Max Level"}]}]},{"t":1,"p":1,"n":"EFSH - Effect Shader","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"ICON - Fill Texture"},{"t":2,"p":1,"n":"ICO2 - Particle Shader Texture"},{"t":2,"p":1,"n":"NAM7 - Holes Texture"},{"t":2,"p":1,"n":"NAM8 - Membrane Palette Texture"},{"t":2,"p":1,"n":"NAM9 - Particle Palette Texture"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Membrane Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Membrane Shader - Blend Operation"},{"t":3,"p":1,"n":"Membrane Shader - Z Test Function"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 1","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Presistent Alpha Ratio"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Animation Speed (V)"},{"t":5,"p":1,"n":"Edge Effect - Fall Off"},{"t":6,"p":1,"n":"Edge Effect - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade In Time"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Time"},{"t":5,"p":1,"n":"Edge Effect - Alpha Fade Out Time"},{"t":5,"p":1,"n":"Edge Effect - Persistent Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Amplitude"},{"t":5,"p":1,"n":"Edge Effect - Alpha Pulse Frequency"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Full Alpha Ratio"},{"t":5,"p":1,"n":"Edge Effect - Full Alpha Ratio"},{"t":3,"p":1,"n":"Membrane Shader - Dest Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Source Blend Mode"},{"t":3,"p":1,"n":"Particle Shader - Blend Operation"},{"t":3,"p":1,"n":"Particle Shader - Z Test Function"},{"t":3,"p":1,"n":"Particle Shader - Dest Blend Mode"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Up Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Time"},{"t":5,"p":1,"n":"Particle Shader - Particle Birth Ramp Down Time"},{"t":5,"p":1,"n":"Particle Shader - Full Particle Birth Ratio"},{"t":5,"p":1,"n":"Particle Shader - Persistant Particle Count"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime"},{"t":5,"p":1,"n":"Particle Shader - Particle Lifetime +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Acceleration Along Normal"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #1"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #2"},{"t":5,"p":1,"n":"Particle Shader - Initial Velocity #3"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #1"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #2"},{"t":5,"p":1,"n":"Particle Shader - Acceleration #3"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 1 Time"},{"t":5,"p":1,"n":"Particle Shader - Scale Key 2 Time"},{"t":6,"p":1,"n":"Color Key 1 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 2 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Color Key 3 - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Color Key 1 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 2 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 3 - Color Alpha"},{"t":5,"p":1,"n":"Color Key 1 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 2 - Color Key Time"},{"t":5,"p":1,"n":"Color Key 3 - Color Key Time"},{"t":5,"p":1,"n":"Particle Shader - Initial Speed Along Normal +\/-"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg)"},{"t":5,"p":1,"n":"Particle Shader - Initial Rotation (deg) +\/-"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec)"},{"t":5,"p":1,"n":"Particle Shader - Rotation Speed (deg\/sec) +\/-"},{"t":3,"p":1,"n":"Addon Models"},{"t":5,"p":1,"n":"Holes - Start Time"},{"t":5,"p":1,"n":"Holes - End Time"},{"t":5,"p":1,"n":"Holes - Start Val"},{"t":5,"p":1,"n":"Holes - End Val"},{"t":5,"p":1,"n":"Edge Width (alpha units)"},{"t":6,"p":1,"n":"Edge Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Explosion Wind Speed"},{"t":3,"p":1,"n":"Texture Count U"},{"t":3,"p":1,"n":"Texture Count V"},{"t":5,"p":1,"n":"Addon Models - Fade In Time"},{"t":5,"p":1,"n":"Addon Models - Fade Out Time"},{"t":5,"p":1,"n":"Addon Models - Scale Start"},{"t":5,"p":1,"n":"Addon Models - Scale End"},{"t":5,"p":1,"n":"Addon Models - Scale In Time"},{"t":5,"p":1,"n":"Addon Models - Scale Out Time"},{"t":3,"p":1,"n":"Ambient Sound"},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 2","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key 3","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fill\/Texture Effect - Color Key Scale\/Time","c":[{"t":5,"p":1,"n":"Color Key 1 - Scale"},{"t":5,"p":1,"n":"Color Key 2 - Scale"},{"t":5,"p":1,"n":"Color Key 3 - Scale"},{"t":5,"p":1,"n":"Color Key 1 - Time"},{"t":5,"p":1,"n":"Color Key 2 - Time"},{"t":5,"p":1,"n":"Color Key 3 - Time"}]},{"t":5,"p":1,"n":"Color Scale"},{"t":5,"p":1,"n":"Birth Position Offset"},{"t":5,"p":1,"n":"Birth Position Offset Range +\/-"},{"t":6,"p":1,"n":"Particle Shader Animated","c":[{"t":3,"p":1,"n":"Start Frame"},{"t":3,"p":1,"n":"Start Frame Variation"},{"t":3,"p":1,"n":"End Frame"},{"t":3,"p":1,"n":"Loop Start Frame"},{"t":3,"p":1,"n":"Loop Start Variation"},{"t":3,"p":1,"n":"Frame Count"},{"t":3,"p":1,"n":"Frame Count Variation"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (U)"},{"t":5,"p":1,"n":"Fill\/Texture Effect - Texture Scale (V)"},{"t":3,"p":1,"n":"Scene Graph Emit Depth Limit (unused)"}]}]},{"t":1,"p":1,"n":"ENCH - Object Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Enchantment Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Enchantment Amount"},{"t":3,"p":1,"n":"Target Type"},{"t":3,"p":1,"n":"Enchant Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Base Enchantment"},{"t":3,"p":1,"n":"Worn Restrictions"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"EQUP - Equip Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"p":1,"n":"PNAM - Slot Parents","c":[{"t":3,"p":1,"n":"Can Be Equipped"}]},{"t":3,"p":1,"n":"DATA - Use All Parents"}]},{"t":1,"p":1,"n":"EXPL - Explosion","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Sound 1"},{"t":3,"p":1,"n":"Sound 2"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Placed Object"},{"t":3,"p":1,"n":"Spawn Projectile"},{"t":5,"p":1,"n":"Force"},{"t":5,"p":1,"n":"Damage"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"IS Radius"},{"t":5,"p":1,"n":"Vertical Offset Mult"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Sound Level"}]}]},{"t":1,"p":1,"n":"EYES - Eyes","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"ICON - Texture"},{"t":3,"p":1,"n":"DATA - Flags"}]},{"t":1,"p":1,"n":"FACT - Faction","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"s":1,"p":1,"n":"Relations","d":1,"c":[{"t":6,"p":1,"n":"XNAM - Relation","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Modifier"},{"t":3,"p":1,"n":"Group Combat Reaction"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Flags","c":[{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"JAIL - Exterior Jail Marker"},{"t":3,"p":1,"n":"WAIT - Follower Wait Marker"},{"t":3,"p":1,"n":"STOL - Stolen Goods Container"},{"t":3,"p":1,"n":"PLCN - Player Inventory Container"},{"t":3,"p":1,"n":"CRGR - Shared Crime Faction List"},{"t":3,"p":1,"n":"JOUT - Jail Outfit"},{"t":6,"s":1,"p":1,"n":"CRVA - Crime Values","c":[{"t":3,"p":1,"n":"Arrest"},{"t":3,"p":1,"n":"Attack On Sight"},{"t":3,"p":1,"n":"Murder"},{"t":3,"p":1,"n":"Assault"},{"t":3,"p":1,"n":"Trespass"},{"t":3,"p":1,"n":"Pickpocket"},{"t":3,"n":"Unknown"},{"t":5,"p":1,"n":"Steal Multiplier"},{"t":3,"p":1,"n":"Escape"},{"t":3,"p":1,"n":"Werewolf"}]},{"t":10,"p":1,"n":"Ranks","d":1,"c":[{"t":6,"p":1,"n":"Rank","c":[{"t":3,"p":1,"n":"RNAM - Rank#"},{"t":2,"p":1,"n":"MNAM - Male Title"},{"t":2,"p":1,"n":"FNAM - Female Title"},{"t":2,"n":"INAM - Insignia Unused"}]}]},{"t":3,"p":1,"n":"VEND - Vendor Buy\/Sell List"},{"t":3,"p":1,"n":"VENC - Merchant Container"},{"t":6,"s":1,"p":1,"n":"VENV - Vendor Values","c":[{"t":3,"p":1,"n":"Start Hour"},{"t":3,"p":1,"n":"End Hour"},{"t":3,"p":1,"n":"Radius"},{"t":11,"n":"Unknown 1"},{"t":3,"p":1,"n":"Only Buys Stolen Items"},{"t":3,"p":1,"n":"Not\/Sell Buy"},{"t":11,"n":"Unknown 2"}]},{"t":6,"s":1,"p":1,"n":"PLVD - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Radius"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"FLOR - Flora","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":2,"p":1,"n":"RNAM - Activate Text Override"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Seasonal ingredient production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer "},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]}]},{"t":1,"p":1,"n":"FLST - FormID List","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"FormIDs","d":1,"c":[{"t":3,"p":1,"n":"LNAM - FormID"}]}]},{"t":1,"p":1,"n":"FSTP - Footstep","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DATA - Impact Data Set"},{"t":2,"p":1,"n":"ANAM - Tag"}]},{"t":1,"p":1,"n":"FSTS - Footstep Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"XCNT - Count","c":[{"t":3,"p":1,"n":"Walk Forward Sets"},{"t":3,"p":1,"n":"Run Forward Sets"},{"t":3,"p":1,"n":"Walk Forward Alternate Sets"},{"t":3,"p":1,"n":"Run Forward Alternate Sets"},{"t":3,"p":1,"n":"Walk Forward Alternate 2 Sets"}]},{"t":7,"s":1,"p":1,"n":"DATA - Footstep Sets","c":[{"t":3,"p":1,"n":"Footstep"}]}]},{"t":1,"p":1,"n":"FURN - Furniture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"KNAM - Interaction Keyword"},{"t":3,"p":1,"n":"MNAM - Active Markers \/ Flags"},{"t":6,"s":1,"p":1,"n":"WBDT - Workbench Data","c":[{"t":3,"p":1,"n":"Bench Type"},{"t":3,"p":1,"n":"Uses Skill"}]},{"t":3,"p":1,"n":"NAM1 - Associated Spell"},{"t":8,"s":1,"p":1,"n":"Markers","d":1,"c":[{"t":6,"p":1,"n":"Marker","c":[{"t":3,"p":1,"n":"ENAM - Marker Index"},{"t":6,"p":1,"n":"NAM0 - Disabled Entry Points","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Disabled Points"}]},{"t":3,"p":1,"n":"FNMK - Marker Keyword"}]}]},{"t":8,"s":1,"p":1,"n":"Marker Entry Points","d":1,"c":[{"t":6,"p":1,"n":"FNPR - Marker","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Entry Points"}]}]},{"t":2,"p":1,"n":"XMRK - Model Filename"}]},{"t":1,"p":1,"n":"GLOB - Global","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Type"},{"t":5,"p":1,"n":"FLTV - Value"}]},{"t":1,"p":1,"n":"GMST - Game Setting","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"Name"},{"t":3,"p":1,"n":"Int"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"}]},{"t":1,"p":1,"n":"GRAS - Grass","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Units From Water"},{"t":3,"p":1,"n":"Units From Water Type"},{"t":5,"p":1,"n":"Position Range"},{"t":5,"p":1,"n":"Height Range"},{"t":5,"p":1,"n":"Color Range"},{"t":5,"p":1,"n":"Wave Period"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"HAIR","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"HAZD - Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"MNAM - Image Space Modifier"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Limit"},{"t":5,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Image Space Radius"},{"t":5,"p":1,"n":"Target Interval"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Spell"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Impact Data Set"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":1,"p":1,"n":"HDPT - Head Part","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"PNAM - Type"},{"t":8,"s":1,"p":1,"n":"Extra Parts","d":1,"c":[{"t":3,"p":1,"n":"HNAM - Part"}]},{"t":8,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"NAM0 - Part Type"},{"t":2,"p":1,"n":"NAM1 - Filename"}]}]},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"CNAM - Color"},{"t":3,"p":1,"n":"RNAM - Valid Races"}]},{"t":1,"n":"IDLE - Idle Animation","c":[{"t":2,"n":"EDID - Editor ID"},{"t":8,"n":"Conditions","c":[{"t":6,"n":"Condition","c":[{"t":6,"n":"CTDA - ","c":[{"t":3,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"n":"Comparison Value - Float"},{"t":3,"n":"Comparison Value - Global"},{"t":3,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"n":"None"},{"t":3,"n":"Integer"},{"t":5,"n":"Float"},{"t":11,"n":"Variable Name (unused)"},{"t":3,"n":"Sex"},{"t":3,"n":"Actor Value"},{"t":3,"n":"Crime Type"},{"t":3,"n":"Axis"},{"t":3,"n":"Quest Stage (unused)"},{"t":3,"n":"Misc Stat"},{"t":3,"n":"Alignment"},{"t":3,"n":"Equip Type"},{"t":3,"n":"Form Type"},{"t":3,"n":"Critical Stage"},{"t":3,"n":"Object Reference"},{"t":3,"n":"Inventory Object"},{"t":3,"n":"Actor"},{"t":3,"n":"Voice Type"},{"t":3,"n":"Idle"},{"t":3,"n":"Form List"},{"t":3,"n":"Quest"},{"t":3,"n":"Faction"},{"t":3,"n":"Cell"},{"t":3,"n":"Class"},{"t":3,"n":"Race"},{"t":3,"n":"Actor Base"},{"t":3,"n":"Global"},{"t":3,"n":"Weather"},{"t":3,"n":"Package"},{"t":3,"n":"Encounter Zone"},{"t":3,"n":"Perk"},{"t":3,"n":"Owner"},{"t":3,"n":"Furniture"},{"t":3,"n":"Effect Item"},{"t":3,"n":"Base Effect"},{"t":3,"n":"Worldspace"},{"t":3,"n":"VATS Value Function"},{"t":3,"n":"VATS Value Param (INVALID)"},{"t":3,"n":"Referenceable Object"},{"t":3,"n":"Region"},{"t":3,"n":"Keyword"},{"t":3,"n":"Player Action"},{"t":3,"n":"Casting Type"},{"t":3,"n":"Shout"},{"t":3,"n":"Location"},{"t":3,"n":"Location Ref Type"},{"t":3,"n":"Alias"},{"t":3,"n":"Packdata ID"},{"t":3,"n":"Association Type"},{"t":3,"n":"Furniture Anim"},{"t":3,"n":"Furniture Entry"},{"t":3,"n":"Scene"},{"t":3,"n":"Ward State"},{"t":3,"n":"Event"},{"t":3,"n":"Event Data"},{"t":3,"n":"Quest Stage"},{"t":3,"n":"Weapon"},{"t":3,"n":"Weapon List"},{"t":3,"n":"Target"},{"t":3,"n":"Target List"},{"t":3,"n":"Target Part"},{"t":3,"n":"VATS Action"},{"t":3,"n":"Critical Effect"},{"t":3,"n":"Critical Effect List"},{"t":3,"n":"Weapon Type"},{"t":3,"n":"Projectile Type"},{"t":3,"n":"Delivery Type"},{"t":3,"n":"Run On"},{"t":3,"n":"Reference"},{"t":3,"n":"Parameter #3"}]},{"t":2,"n":"CIS1 - Parameter #1"},{"t":2,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"n":"DNAM - Filename"},{"t":2,"n":"ENAM - Animation Event"},{"t":7,"n":"ANAM - Related Idle Animations","c":[{"t":3,"n":"Related Idle Animation"}]},{"t":6,"n":"DATA - Data (unused)","c":[{"t":6,"n":"Looping seconds (both 255 forever)","c":[{"t":3,"n":"Min"},{"t":3,"n":"Max"}]},{"t":3,"n":"Flags"},{"t":3,"n":"Animation Group Section"},{"t":3,"n":"Replay Delay"}]}]},{"t":1,"p":1,"n":"IDLM - Idle Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"IDLF - Flags"},{"t":3,"p":1,"n":"IDLC - Animation Count"},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"IMAD - Image Space Adapter","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DNAM - Data Count","c":[{"t":3,"n":"Flags"},{"t":5,"n":"Duration"},{"t":6,"n":"HDR","c":[{"t":3,"n":"Eye Adapt Speed Mult"},{"t":3,"n":"Eye Adapt Speed Add"},{"t":3,"n":"Bloom Blur Radius Mult"},{"t":3,"n":"Bloom Blur Radius Add"},{"t":3,"n":"Bloom Threshold Mult"},{"t":3,"n":"Bloom Threshold Add"},{"t":3,"n":"Bloom Scale Mult"},{"t":3,"n":"Bloom Scale Add"},{"t":3,"n":"Target Lum Min Mult"},{"t":3,"n":"Target Lum Min Add"},{"t":3,"n":"Target Lum Max Mult"},{"t":3,"n":"Target Lum Max Add"},{"t":3,"n":"Sunlight Scale Mult"},{"t":3,"n":"Sunlight Scale Add"},{"t":3,"n":"Sky Scale Mult"},{"t":3,"n":"Sky Scale Add"}]},{"t":3,"n":"Unknown08 Mult"},{"t":3,"n":"Unknown48 Add"},{"t":3,"n":"Unknown09 Mult"},{"t":3,"n":"Unknown49 Add"},{"t":3,"n":"Unknown0A Mult"},{"t":3,"n":"Unknown4A Add"},{"t":3,"n":"Unknown0B Mult"},{"t":3,"n":"Unknown4B Add"},{"t":3,"n":"Unknown0C Mult"},{"t":3,"n":"Unknown4C Add"},{"t":3,"n":"Unknown0D Mult"},{"t":3,"n":"Unknown4D Add"},{"t":3,"n":"Unknown0E Mult"},{"t":3,"n":"Unknown4E Add"},{"t":3,"n":"Unknown0F Mult"},{"t":3,"n":"Unknown4F Add"},{"t":3,"n":"Unknown10 Mult"},{"t":3,"n":"Unknown50 Add"},{"t":6,"n":"Cinematic","c":[{"t":3,"n":"Saturation Mult"},{"t":3,"n":"Saturation Add"},{"t":3,"n":"Brightness Mult"},{"t":3,"n":"Brightness Add"},{"t":3,"n":"Contrast Mult"},{"t":3,"n":"Contrast Add"}]},{"t":3,"n":"Unknown14 Mult"},{"t":3,"n":"Unknown54 Add"},{"t":3,"n":"Tint Color"},{"t":3,"n":"Blur Radius"},{"t":3,"n":"Double Vision Strength"},{"t":3,"n":"Radial Blur Strength"},{"t":3,"n":"Radial Blur Ramp Up"},{"t":3,"n":"Radial Blur Start"},{"t":3,"n":"Radial Blur Flags"},{"t":5,"n":"Radial Blur Center X"},{"t":5,"n":"Radial Blur Center Y"},{"t":3,"n":"DoF Strength"},{"t":3,"n":"DoF Distance"},{"t":3,"n":"DoF Range"},{"t":3,"n":"DoF Flags"},{"t":3,"n":"Radial Blur Ramp Down"},{"t":3,"n":"Radial Blur Down Start"},{"t":3,"n":"Fade Color"},{"t":3,"n":"Motion Blur Strength"}]},{"t":7,"p":1,"n":"BNAM - Blur Radius","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"VNAM - Double Vision Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"TNAM - Tint Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"NAM3 - Fade Color","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"},{"t":5,"p":1,"n":"Alpha"}]}]},{"t":7,"p":1,"n":"RNAM - Radial Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SNAM - Radial Blur Ramp Up","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"UNAM - Radial Blur Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM1 - Radial Blur Ramp Down","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM2 - Radial Blur Down Start","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"WNAM - DoF Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"XNAM - DoF Distance","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"YNAM - DoF Range","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"NAM4 - Motion Blur Strength","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":6,"s":1,"p":1,"n":"HDR","c":[{"t":7,"p":1,"n":"aIAD - Eye Adapt Speed Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"@IAD - Eye Adapt Speed Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"bIAD - Bloom Blur Radius Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"AIAD - Bloom Blur Radius Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"cIAD - Bloom Threshold Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"BIAD - Bloom Threshold Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"dIAD - Bloom Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"CIAD - Bloom Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"eIAD - Target Lum Min Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"DIAD - Target Lum Min Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"fIAD - Target Lum Max Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"EIAD - Target Lum Max Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"gIAD - Sunlight Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"FIAD - Sunlight Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"hIAD - Sky Scale Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"GIAD - Sky Scale Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"iIAD - Unknown"},{"t":11,"n":"HIAD - Unknown"},{"t":11,"n":"jIAD - Unknown"},{"t":11,"n":"IIAD - Unknown"},{"t":11,"n":"kIAD - Unknown"},{"t":11,"n":"JIAD - Unknown"},{"t":11,"n":"lIAD - Unknown"},{"t":11,"n":"KIAD - Unknown"},{"t":11,"n":"mIAD - Unknown"},{"t":11,"n":"LIAD - Unknown"},{"t":11,"n":"nIAD - Unknown"},{"t":11,"n":"MIAD - Unknown"},{"t":11,"n":"oIAD - Unknown"},{"t":11,"n":"NIAD - Unknown"},{"t":11,"n":"pIAD - Unknown"},{"t":11,"n":"OIAD - Unknown"},{"t":11,"n":"qIAD - Unknown"},{"t":11,"n":"PIAD - Unknown"},{"t":6,"s":1,"p":1,"n":"Cinematic","c":[{"t":7,"p":1,"n":"rIAD - Saturation Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"QIAD - Saturation Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"sIAD - Brightness Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"RIAD - Brightness Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"tIAD - Contrast Mult","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]},{"t":7,"p":1,"n":"SIAD - Contrast Add","c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Time"},{"t":5,"p":1,"n":"Value"}]}]}]},{"t":11,"n":"uIAD - Unknown"},{"t":11,"n":"TIAD - Unknown"}]},{"t":1,"p":1,"n":"IMGS - Image Space","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"ENAM - Unknown"},{"t":6,"s":1,"p":1,"n":"HNAM - HDR","c":[{"t":5,"p":1,"n":"Eye Adapt Speed"},{"t":5,"p":1,"n":"Bloom Blur Radius"},{"t":5,"p":1,"n":"Bloom Threshold"},{"t":5,"p":1,"n":"Bloom Scale"},{"t":5,"p":1,"n":"Receive Bloom Threshold"},{"t":5,"p":1,"n":"White"},{"t":5,"p":1,"n":"Sunlight Scale"},{"t":5,"p":1,"n":"Sky Scale"},{"t":5,"p":1,"n":"Eye Adapt Strength"}]},{"t":6,"s":1,"p":1,"n":"CNAM - Cinematic","c":[{"t":5,"p":1,"n":"Saturation"},{"t":5,"p":1,"n":"Brightness"},{"t":5,"p":1,"n":"Contrast"}]},{"t":6,"s":1,"p":1,"n":"TNAM - Tint","c":[{"t":5,"p":1,"n":"Amount"},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Depth of Field","c":[{"t":5,"p":1,"n":"Strength"},{"t":5,"p":1,"n":"Distance"},{"t":5,"p":1,"n":"Range"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Sky \/ Blur Radius"}]}]},{"t":1,"p":1,"n":"INFO - Dialog response","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":11,"n":"DATA - Unknown"},{"t":6,"s":1,"p":1,"n":"ENAM - Response flags","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Reset Hours"}]},{"t":3,"p":1,"n":"TPIC - Topic"},{"t":3,"p":1,"n":"PNAM - Previous INFO"},{"t":3,"p":1,"n":"CNAM - Favor Level"},{"t":8,"s":1,"p":1,"n":"Link To","d":1,"c":[{"t":3,"p":1,"n":"TCLT - Response"}]},{"t":3,"p":1,"n":"DNAM - Response Data"},{"t":8,"s":1,"p":1,"n":"Responses","d":1,"c":[{"t":6,"p":1,"n":"Response","c":[{"t":6,"p":1,"n":"TRDT - Response Data","c":[{"t":3,"p":1,"n":"Emotion Type"},{"t":3,"p":1,"n":"Emotion Value"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Response number"},{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"}]},{"t":2,"p":1,"n":"NAM1 - Response Text"},{"t":2,"p":1,"n":"NAM2 - Script Notes"},{"t":2,"p":1,"n":"NAM3 - Edits"},{"t":3,"p":1,"n":"SNAM - Idle Animations: Speaker"},{"t":3,"p":1,"n":"LNAM - Idle Animations: Listener"}]}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":8,"n":"Unknown","c":[{"t":6,"n":"Unknown","c":[{"t":11,"n":"SCHR - Unknown"},{"t":3,"n":"QNAM - Unknown"},{"n":"NEXT - Marker"}]}]},{"t":2,"p":1,"n":"RNAM - Prompt"},{"t":3,"p":1,"n":"ANAM - Speaker"},{"t":3,"p":1,"n":"TWAT - Walk Away Topic"},{"t":3,"p":1,"n":"ONAM - Audio Output Override"}]},{"t":1,"p":1,"n":"INGR - Ingredient","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"ENIT - Effect Data","c":[{"t":3,"p":1,"n":"Ingredient Value"},{"t":3,"p":1,"n":"Flags"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"IPCT - Impact","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":5,"p":1,"n":"Effect - Duration"},{"t":3,"p":1,"n":"Effect - Orientation"},{"t":5,"p":1,"n":"Angle Threshold"},{"t":5,"p":1,"n":"Placement Radius"},{"t":3,"p":1,"n":"Sound Level"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Impact Result"},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Texture Set"},{"t":3,"p":1,"n":"ENAM - Secondary Texture Set"},{"t":3,"p":1,"n":"SNAM - Sound 1"},{"t":3,"p":1,"n":"NAM1 - Sound 2"},{"t":3,"p":1,"n":"NAM2 - Hazard"}]},{"t":1,"p":1,"n":"IPDS - Impact Data Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"s":1,"p":1,"n":"Data","d":1,"c":[{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Material"},{"t":3,"p":1,"n":"Impact"}]}]}]},{"t":1,"p":1,"n":"KEYM - Key","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"KYWD - Keyword","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LAND - Landscape","d":1,"c":[{"t":11,"n":"DATA - Unknown"},{"t":11,"n":"VNML - Vertex Normals"},{"t":11,"n":"VHGT - Vertext Height Map"},{"t":11,"n":"VCLR - Vertex Colours"},{"t":8,"s":1,"p":1,"n":"Layers","d":1,"c":[{"t":6,"p":1,"n":"Base Layer","c":[{"t":6,"p":1,"n":"BTXT - Base Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]}]},{"t":6,"p":1,"n":"Alpha Layer","c":[{"t":6,"p":1,"n":"ATXT - Alpha Layer Header","c":[{"t":3,"p":1,"n":"Texture"},{"t":3,"p":1,"n":"Quadrant"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Layer"}]},{"t":11,"p":1,"n":"VTXT - Alpha Layer Data"}]}]},{"t":7,"p":1,"n":"VTEX - Textures","c":[{"t":3,"p":1,"n":"Texture"}]}]},{"t":1,"p":1,"n":"LCRT - Location Reference Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"n":"LCTN - Location","c":[{"t":2,"n":"EDID - Editor ID"},{"t":7,"n":"ACPR - Actor Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCPR - Location Cell Persistent Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCPR - Reference Cell Persistent Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACUN - Actor Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"LCUN - Location Cell Unique","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Location"}]}]},{"t":7,"n":"RCUN - Reference Cell Unique","c":[{"t":3,"n":"Actor"}]},{"t":7,"n":"ACSR - Actor Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCSR - Location Cell Static Reference","c":[{"t":6,"n":"","c":[{"t":3,"n":"Loc Ref Type"},{"t":3,"n":"Marker"},{"t":3,"n":"Location"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"RCSR - Reference Cell Static Reference","c":[{"t":3,"n":"Ref"}]},{"t":8,"n":"Actor Cell Encounter Cell","c":[{"t":6,"n":"ACEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Location Cell Encounter Cell","c":[{"t":6,"n":"LCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":8,"n":"Reference Cell Encounter Cell","c":[{"t":6,"n":"RCEC - Unknown","c":[{"t":3,"n":"Location"},{"t":7,"n":"Coordinates","c":[{"t":6,"n":"","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]}]}]},{"t":7,"n":"ACID - Actor Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"LCID - Location Cell Marker Reference","c":[{"t":3,"n":"Ref"}]},{"t":7,"n":"ACEP - Actor Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":7,"n":"LCEP - Location Cell Enable Point","c":[{"t":6,"n":"","c":[{"t":3,"n":"Actor"},{"t":3,"n":"Ref"},{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]}]},{"t":2,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"n":"KWDA - Keywords","c":[{"t":3,"n":"Keyword"}]},{"t":3,"n":"PNAM - Parent Location"},{"t":3,"n":"NAM1 - Music"},{"t":3,"n":"FNAM - Unreported Crime Faction"},{"t":3,"n":"MNAM - World Location Marker Ref"},{"t":5,"n":"RNAM - World Location Radius"},{"t":3,"n":"NAM0 - Horse Marker Ref"},{"t":6,"n":"CNAM - Color","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"LENS - Lens Flare","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Color Influence"},{"t":5,"p":1,"n":"DNAM - Fade Distance Radius Scale"},{"t":3,"n":"LFSP - Count"},{"t":8,"s":1,"p":1,"n":"Lens Flare Sprites","d":1,"c":[{"t":6,"p":1,"n":"Flare","c":[{"t":2,"p":1,"n":"DNAM - Lens Flare Sprite ID"},{"t":2,"p":1,"n":"FNAM - Texture"},{"t":6,"p":1,"n":"LFSD - Lens Flare Data","c":[{"t":6,"p":1,"n":"Tint","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"},{"t":5,"p":1,"n":"Position"},{"t":5,"p":1,"n":"Angular Fade"},{"t":5,"p":1,"n":"Opacity"},{"t":3,"p":1,"n":"Flags"}]}]}]}]},{"t":1,"p":1,"n":"LGTM - Lighting Template","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Lighting","c":[{"t":6,"p":1,"n":"Ambient Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Directional Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Fog Color Near","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Near"},{"t":5,"p":1,"n":"Fog Far"},{"t":3,"p":1,"n":"Directional Rotation XY"},{"t":3,"p":1,"n":"Directional Rotation Z"},{"t":5,"p":1,"n":"Directional Fade"},{"t":5,"p":1,"n":"Fog Clip Dist"},{"t":5,"p":1,"n":"Fog Power"},{"t":6,"p":1,"n":"Ambient Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"Fog Color Far","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Fog Max"},{"t":6,"p":1,"n":"Light Fade Distances","c":[{"t":5,"p":1,"n":"Start"},{"t":5,"p":1,"n":"End"}]},{"t":11,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DALC - Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":1,"p":1,"n":"LIGH - Light","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Time"},{"t":3,"p":1,"n":"Radius"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Falloff Exponent"},{"t":5,"p":1,"n":"FOV"},{"t":5,"p":1,"n":"Near Clip"},{"t":6,"p":1,"n":"Flicker Effect","c":[{"t":5,"p":1,"n":"Period"},{"t":5,"p":1,"n":"Intensity Amplitude"},{"t":5,"p":1,"n":"Movement Amplitude"}]},{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":5,"p":1,"n":"FNAM - Fade value"},{"t":3,"p":1,"n":"SNAM - Sound"}]},{"t":1,"p":1,"n":"LSCR - Load Screen","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"NNAM - Loading Screen NIF"},{"t":5,"p":1,"n":"SNAM - Initial Scale"},{"t":6,"s":1,"p":1,"n":"RNAM - Initial Rotation","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"ONAM - Rotation Offset Constraints","c":[{"t":3,"p":1,"n":"Min"},{"t":3,"p":1,"n":"Max"}]},{"t":6,"s":1,"p":1,"n":"XNAM - Initial Translation Offset","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"MOD2 - Camera Path"}]},{"t":1,"p":1,"n":"LTEX - Landscape Texture","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"TNAM - Texture Set"},{"t":3,"p":1,"n":"MNAM - Material Type"},{"t":6,"s":1,"p":1,"n":"HNAM - Havok Data","c":[{"t":3,"p":1,"n":"Friction"},{"t":3,"p":1,"n":"Restitution"}]},{"t":3,"p":1,"n":"SNAM - Texture Specular Exponent"},{"t":8,"s":1,"p":1,"n":"Grasses","d":1,"c":[{"t":3,"p":1,"n":"GNAM - Grass"}]},{"t":3,"n":"INAM - Unused"}]},{"t":1,"p":1,"n":"LVLI - Leveled Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]}]},{"t":1,"p":1,"n":"LVLN - Leveled NPC","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"p":1,"n":"LVLG - Global"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":1,"p":1,"n":"LVSP - Leveled Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":3,"p":1,"n":"LVLD - Chance None"},{"t":3,"p":1,"n":"LVLF - Flags"},{"t":3,"n":"LLCT - Count"},{"t":10,"p":1,"n":"Leveled List Entries","d":1,"c":[{"t":6,"p":1,"n":"Leveled List Entry","c":[{"t":6,"p":1,"n":"LVLO - Base Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Count"}]}]}]}]},{"t":1,"p":1,"n":"MATO - Material Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":8,"s":1,"p":1,"n":"Property Data","d":1,"c":[{"t":11,"p":1,"n":"DNAM - Data"}]},{"t":6,"s":1,"p":1,"n":"DATA - Directional Material Data","c":[{"t":5,"p":1,"n":"Falloff Scale"},{"t":5,"p":1,"n":"Falloff Bias"},{"t":5,"p":1,"n":"Noise UV Scale"},{"t":5,"p":1,"n":"Material UV Scale"},{"t":6,"p":1,"n":"Projection Vector","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":5,"p":1,"n":"Normal Dampener"},{"t":6,"p":1,"n":"Single Pass Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"MATT - Material Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Material Parent"},{"t":2,"p":1,"n":"MNAM - Material Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Havok Display Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"p":1,"n":"BNAM - Buoyancy"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"HNAM - Havok Impact Data Set"}]},{"t":1,"p":1,"n":"MESG - Message","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"DESC - Description"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"INAM - Icon (unused)"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":3,"p":1,"n":"TNAM - Display Time"},{"t":8,"s":1,"p":1,"n":"Menu Buttons","d":1,"c":[{"t":6,"p":1,"n":"Menu Button","c":[{"t":2,"p":1,"n":"ITXT - Button Text"},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"MGEF - Magic Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"Magic Effect Data","c":[{"t":6,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Base Cost"},{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Assoc. Item"},{"t":3,"p":1,"n":"Magic Skill"},{"t":3,"p":1,"n":"Resist Value"},{"t":3,"p":1,"n":"Counter Effect count"},{"t":3,"p":1,"n":"Casting Light"},{"t":5,"p":1,"n":"Taper Weight"},{"t":3,"p":1,"n":"Hit Shader"},{"t":3,"p":1,"n":"Enchant Shader"},{"t":3,"p":1,"n":"Minimum Skill Level"},{"t":6,"p":1,"n":"Spellmaking","c":[{"t":3,"p":1,"n":"Area"},{"t":5,"p":1,"n":"Casting Time"}]},{"t":5,"p":1,"n":"Taper Curve"},{"t":5,"p":1,"n":"Taper Duration"},{"t":5,"p":1,"n":"Second AV Weight"},{"t":3,"p":1,"n":"Archtype"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Projectile"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Delivery"},{"t":3,"p":1,"n":"Second Actor Value"},{"t":3,"p":1,"n":"Casting Art"},{"t":3,"p":1,"n":"Hit Effect Art"},{"t":3,"p":1,"n":"Impact Data"},{"t":5,"p":1,"n":"Skill Usage Multiplier"},{"t":6,"p":1,"n":"Dual Casting","c":[{"t":3,"p":1,"n":"Art"},{"t":5,"p":1,"n":"Scale"}]},{"t":3,"p":1,"n":"Enchant Art"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Equip Ability"},{"t":3,"p":1,"n":"Image Space Modifier"},{"t":3,"p":1,"n":"Perk to Apply"},{"t":3,"p":1,"n":"Casting Sound Level"},{"t":6,"p":1,"n":"Script Effect AI","c":[{"t":5,"p":1,"n":"Score"},{"t":5,"p":1,"n":"Delay Time"}]}]}]},{"t":8,"s":1,"p":1,"n":"Counter Effects","d":1,"c":[{"t":3,"n":"ESCE - Effect"}]},{"t":7,"p":1,"n":"SNDD - Sounds","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Sound"}]}]},{"t":2,"p":1,"n":"DNAM - Magic Item Description"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"MISC - Misc. Item","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]}]},{"t":1,"p":1,"n":"MOVT - Movement Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"MNAM - Name"},{"t":6,"s":1,"p":1,"n":"SPED - Default Data","c":[{"t":5,"p":1,"n":"Left Walk"},{"t":5,"p":1,"n":"Left Run"},{"t":5,"p":1,"n":"Right Walk"},{"t":5,"p":1,"n":"Right Run"},{"t":5,"p":1,"n":"Forward Walk"},{"t":5,"p":1,"n":"Forward Run"},{"t":5,"p":1,"n":"Back Walk"},{"t":5,"p":1,"n":"Back Run"},{"t":5,"p":1,"n":"Rotate in Place Walk"},{"t":5,"p":1,"n":"Rotate in Place Run"},{"t":5,"p":1,"n":"Rotate while Moving Run"}]},{"t":6,"s":1,"p":1,"n":"INAM - Anim Change Thresholds","c":[{"t":5,"p":1,"n":"Directional"},{"t":5,"p":1,"n":"Movement Speed"},{"t":5,"p":1,"n":"Rotation Speed"}]}]},{"t":1,"p":1,"n":"MSTT - Moveable Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"DATA - Flags"},{"t":3,"p":1,"n":"SNAM - Looping Sound"}]},{"t":1,"p":1,"n":"MUSC - Music Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":6,"s":1,"p":1,"n":"PNAM - Data","c":[{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Ducking (dB)"}]},{"t":5,"p":1,"n":"WNAM - Fade Duration"},{"t":7,"p":1,"n":"TNAM - Music Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"p":1,"n":"MUST - Music Track","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"CNAM - Track Type"},{"t":5,"p":1,"n":"FLTV - Duration"},{"t":5,"p":1,"n":"DNAM - Fade-Out"},{"t":2,"p":1,"n":"ANAM - Track Filename"},{"t":2,"p":1,"n":"BNAM - Finale Filename"},{"t":7,"p":1,"n":"FNAM - Cue Points","c":[{"t":5,"p":1,"n":"Point"}]},{"t":6,"s":1,"p":1,"n":"LNAM - Loop Data","c":[{"t":5,"p":1,"n":"Loop Begins"},{"t":5,"p":1,"n":"Loop Ends"},{"t":3,"p":1,"n":"Loop Count"}]},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":7,"p":1,"n":"SNAM - Tracks","c":[{"t":3,"p":1,"n":"Track"}]}]},{"t":1,"n":"NAVI - Navigation Mesh Info Map","c":[{"t":2,"n":"EDID - Editor ID"},{"t":3,"n":"NVER - Version"},{"t":8,"n":"Navigation Map Infos","c":[{"t":6,"n":"NVMI - Navigation Map Info","c":[{"t":3,"n":"Navigation Mesh"},{"t":11,"n":"Unknown"},{"t":5,"n":"X"},{"t":5,"n":"Y"},{"t":5,"n":"Z"},{"t":3,"n":"Preferred Merges Flag"},{"t":7,"n":"Merged To","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Preferred Merges","c":[{"t":3,"n":"Mesh"}]},{"t":7,"n":"Linked Doors","c":[{"t":6,"n":"Door","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Door Ref"}]}]},{"t":3,"n":"Is Island"},{"t":11,"n":"Unused"},{"t":6,"n":"Island Data","c":[{"t":11,"n":"Unknown"},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]}]},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"}]}]},{"t":6,"n":"NVPP - Preferred Pathing","c":[{"t":7,"n":"NavMeshes","c":[{"t":7,"n":"Set","c":[{"t":3,"n":""}]}]},{"t":7,"n":"NavMesh Tree?","c":[{"t":6,"n":"","c":[{"t":3,"n":"NavMesh"},{"t":3,"n":"Index\/Node"}]}]}]},{"t":7,"n":"NVSI - Unknown","c":[{"t":3,"n":"Navigation Mesh"}]}]},{"t":1,"n":"NAVM - Navigation Mesh","c":[{"t":2,"n":"EDID - Editor ID"},{"t":6,"n":"NVNM - Geometry","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Parent Worldspace"},{"t":6,"n":"Coordinates","c":[{"t":3,"n":"Grid Y"},{"t":3,"n":"Grid X"}]},{"t":3,"n":"Parent Cell"},{"t":7,"n":"Vertices","c":[{"t":11,"n":"Vertex"}]},{"t":7,"n":"Triangles","c":[{"t":11,"n":"Triangle"}]},{"t":7,"n":"External Connections","c":[{"t":6,"n":"Connection","c":[{"t":11,"n":"Unknown"},{"t":3,"n":"Mesh"},{"t":3,"n":"Triangle"}]}]},{"t":7,"n":"Door Triangles","c":[{"t":6,"n":"Door Triangle","c":[{"t":3,"n":"Triangle before door"},{"t":11,"n":"Unknown"},{"t":3,"n":"Door"}]}]}]},{"t":11,"n":"ONAM - Unknown"},{"t":11,"n":"PNAM - Unknown"},{"t":11,"n":"NNAM - Unknown"}]},{"t":1,"p":1,"n":"NPC_ - Non-Player Character (Actor)","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"ACBS - Configuration","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Magicka Offset"},{"t":3,"p":1,"n":"Stamina Offset"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Level Mult"},{"t":3,"p":1,"n":"Calc min level"},{"t":3,"p":1,"n":"Calc max level"},{"t":3,"p":1,"n":"Speed Multiplier"},{"t":3,"p":1,"n":"Disposition Base (unused)"},{"t":3,"p":1,"n":"Template Flags"},{"t":3,"p":1,"n":"Health Offset"},{"t":3,"p":1,"n":"Bleedout Override"}]},{"t":8,"s":1,"p":1,"n":"Factions","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Faction","c":[{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"INAM - Death item"},{"t":3,"p":1,"n":"VTCK - Voice"},{"t":3,"p":1,"n":"TPLT - Template"},{"t":3,"p":1,"n":"RNAM - Race","lt":"Tint Layers","lf":"NAM7 - Weight"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","d":1,"c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"WNAM - Worn Armor"},{"t":3,"p":1,"n":"ANAM - Far away model"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","d":1,"c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags"},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":3,"p":1,"n":"Attack Type"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Stamina Mult"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":3,"n":"PRKZ - Perk Count"},{"t":8,"s":1,"p":1,"n":"Perks","d":1,"c":[{"t":6,"p":1,"n":"PRKR - Perk","c":[{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unused"}]}]},{"t":3,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","d":1,"c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":6,"s":1,"p":1,"n":"AIDT - AI Data","c":[{"t":3,"p":1,"n":"Aggression"},{"t":3,"p":1,"n":"Confidence"},{"t":3,"p":1,"n":"Energy Level"},{"t":3,"p":1,"n":"Responsibility"},{"t":3,"p":1,"n":"Mood"},{"t":3,"p":1,"n":"Assistance"},{"t":6,"p":1,"n":"Aggro","c":[{"t":3,"p":1,"n":"Aggro Radius Behavior"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Warn"},{"t":3,"p":1,"n":"Warn\/Attack"},{"t":3,"p":1,"n":"Attack"}]}]},{"t":8,"s":1,"p":1,"n":"Packages","d":1,"c":[{"t":3,"p":1,"n":"PKID - Package"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"CNAM - Class"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"SHRT - Short Name"},{"t":11,"n":"DATA - Marker"},{"t":6,"s":1,"p":1,"n":"DNAM - Player Skills","c":[{"t":7,"p":1,"n":"Skill Values","c":[{"t":3,"p":1,"n":"Skill"}]},{"t":7,"p":1,"n":"Skill Offsets","c":[{"t":3,"p":1,"n":"Skill"}]},{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"Magicka"},{"t":3,"p":1,"n":"Stamina"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Far away model distance"},{"t":3,"p":1,"n":"Geared up weapons"}]},{"t":8,"s":1,"p":1,"n":"Head Parts","d":1,"c":[{"t":3,"p":1,"n":"PNAM - Head Part"}],"lt":"NAM6 - Height","lf":"HCLF - Hair Color"},{"t":3,"p":1,"n":"HCLF - Hair Color","lt":"Head Parts","lf":"FTST - Head texture"},{"t":3,"p":1,"n":"ZNAM - Combat Style"},{"t":3,"p":1,"n":"GNAM - Gift Filter"},{"t":11,"n":"NAM5 - Unknown"},{"t":5,"p":1,"n":"NAM6 - Height","lt":"NAM7 - Weight","lf":"Head Parts"},{"t":5,"p":1,"n":"NAM7 - Weight","lt":"RNAM - Race","lf":"NAM6 - Height"},{"t":3,"p":1,"n":"NAM8 - Sound Level"},{"t":10,"p":1,"n":"Sound Types","d":1,"c":[{"t":6,"p":1,"n":"Sound Type","c":[{"t":3,"p":1,"n":"CSDT - Type"},{"t":10,"p":1,"n":"Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"CSDI - Sound"},{"t":3,"p":1,"n":"CSDC - Sound Chance"}]}]}]}]},{"t":3,"p":1,"n":"CSCR - Inherits Sounds From"},{"t":3,"p":1,"n":"DOFT - Default outfit"},{"t":3,"p":1,"n":"SOFT - Sleeping outfit"},{"t":3,"p":1,"n":"DPLT - Default Package List"},{"t":3,"p":1,"n":"CRIF - Crime faction"},{"t":3,"p":1,"n":"FTST - Head texture","lt":"HCLF - Hair Color","lf":"QNAM - Texture lighting"},{"t":6,"s":1,"p":1,"n":"QNAM - Texture lighting","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}],"lt":"FTST - Head texture","lf":"NAM9 - Face morph"},{"t":6,"s":1,"p":1,"n":"NAM9 - Face morph","c":[{"t":5,"p":1,"n":"Nose Long\/Short"},{"t":5,"p":1,"n":"Nose Up\/Down"},{"t":5,"p":1,"n":"Jaw Up\/Down"},{"t":5,"p":1,"n":"Jaw Narrow\/Wide"},{"t":5,"p":1,"n":"Jaw Farward\/Back"},{"t":5,"p":1,"n":"Cheeks Up\/Down"},{"t":5,"p":1,"n":"Cheeks Farward\/Back"},{"t":5,"p":1,"n":"Eyes Up\/Down"},{"t":5,"p":1,"n":"Eyes In\/Out"},{"t":5,"p":1,"n":"Brows Up\/Down"},{"t":5,"p":1,"n":"Brows In\/Out"},{"t":5,"p":1,"n":"Brows Farward\/Back"},{"t":5,"p":1,"n":"Lips Up\/Down"},{"t":5,"p":1,"n":"Lips In\/Out"},{"t":5,"p":1,"n":"Chin Narrow\/Wide"},{"t":5,"p":1,"n":"Chin Up\/Down"},{"t":5,"p":1,"n":"Chin Underbite\/Overbite"},{"t":5,"p":1,"n":"Eyes Farward\/Back"},{"t":5,"n":"Unknown"}],"lt":"QNAM - Texture lighting","lf":"NAMA - Face parts"},{"t":6,"s":1,"p":1,"n":"NAMA - Face parts","c":[{"t":3,"p":1,"n":"Nose"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Eyes"},{"t":3,"p":1,"n":"Mouth"}],"lt":"NAM9 - Face morph","lf":"Tint Layers"},{"t":10,"p":1,"n":"Tint Layers","d":1,"c":[{"t":6,"p":1,"n":"Layer","c":[{"t":3,"p":1,"n":"TINI - Tint Index"},{"t":6,"p":1,"n":"TINC - Tint Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":3,"p":1,"n":"Alpha"}]},{"t":3,"p":1,"n":"TINV - Interpolation Value"},{"t":3,"p":1,"n":"TIAS - Preset"}]}],"lt":"NAMA - Face parts","lf":"RNAM - Race"}]},{"t":1,"p":1,"n":"OTFT - Outfit","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":7,"s":1,"p":1,"n":"INAM - Items","d":1,"c":[{"t":3,"p":1,"n":"Item"}]}]},{"t":1,"p":1,"n":"PACK - Package","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"PKDT - Pack Data","c":[{"t":3,"p":1,"n":"General Flags"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Interrupt Override"},{"t":3,"p":1,"n":"Preferred Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Interrupt Flags"}]},{"t":6,"s":1,"p":1,"n":"PSDT - Schedule","c":[{"t":3,"p":1,"n":"Month"},{"t":3,"p":1,"n":"Day of week"},{"t":3,"p":1,"n":"Date"},{"t":3,"p":1,"n":"Hour"},{"t":3,"p":1,"n":"Minute"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Duration (minutes)"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"Idle Animations","c":[{"t":3,"p":1,"n":"IDLF - Flags"},{"t":6,"p":1,"n":"IDLC - ","c":[{"t":3,"p":1,"n":"Animation Count"},{"t":11,"n":"Unknown"}]},{"t":5,"p":1,"n":"IDLT - Idle Timer Setting"},{"t":7,"p":1,"n":"IDLA - Animations","c":[{"t":3,"p":1,"n":"Animation"}]},{"t":11,"n":"IDLB - Unknown"}]},{"t":3,"p":1,"n":"CNAM - Combat Style"},{"t":3,"p":1,"n":"QNAM - Owner Quest"},{"t":6,"s":1,"p":1,"n":"PKCU - Counter","c":[{"t":3,"p":1,"n":"Data Input Count"},{"t":3,"p":1,"n":"Package Template"},{"t":3,"p":1,"n":"Version Counter (autoincremented)"}]},{"t":6,"s":1,"p":1,"n":"Package Data","c":[{"t":8,"p":1,"n":"Data Input Values","c":[{"t":6,"p":1,"n":"Value","c":[{"t":2,"p":1,"n":"ANAM - Type"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Bool"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"n":"BNAM - Unknown"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]},{"t":6,"p":1,"n":"PLDT - Location","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Cell"},{"t":11,"p":1,"n":"Near Package Start Location"},{"t":11,"p":1,"n":"Near Editor Location"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Keyword"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Radius"}]},{"t":6,"p":1,"n":"PTDA - Target","c":[{"t":6,"p":1,"n":"Target Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Object ID"},{"t":3,"p":1,"n":"Object Type"},{"t":3,"p":1,"n":"Alias"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Count \/ Distance"}]}]},{"t":11,"n":"TPIC - Unknown"}]}]},{"t":8,"p":1,"n":"Data Inputs","c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]}]},{"t":11,"n":"XNAM - Marker"},{"t":6,"s":1,"p":1,"n":"Procedure Tree","c":[{"t":8,"p":1,"n":"Branches","c":[{"t":6,"p":1,"n":"Branch","c":[{"t":2,"p":1,"n":"ANAM - Branch Type"},{"t":3,"p":1,"n":"CITC - Condition Count"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"p":1,"n":"PRCB - Root","c":[{"t":3,"p":1,"n":"Branch Count"},{"t":3,"p":1,"n":"Flags"}]},{"t":2,"p":1,"n":"PNAM - Procedure Type"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"p":1,"n":"Data Input Indexes","c":[{"t":3,"p":1,"n":"PKC2 - Index"}]},{"t":8,"p":1,"n":"Flags Override","c":[{"t":6,"p":1,"n":"PFO2 - Data","c":[{"t":3,"p":1,"n":"Set General Flags"},{"t":3,"p":1,"n":"Clear General Flags"},{"t":3,"p":1,"n":"Set Interrupt Flags"},{"t":3,"p":1,"n":"Clear Interrupt Flags"},{"t":3,"p":1,"n":"Preferred Speed Override"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Unknown","c":[{"t":11,"n":"PFOR - Unknown"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Data Inputs","d":1,"c":[{"t":6,"p":1,"n":"Data Input","c":[{"t":3,"p":1,"n":"UNAM - Index"},{"t":2,"p":1,"n":"BNAM - Name"},{"t":3,"p":1,"n":"PNAM - Flags"}]}]},{"t":6,"s":1,"p":1,"n":"OnBegin","c":[{"p":1,"n":"POBA - OnBegin Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnEnd","c":[{"p":1,"n":"POEA - OnEnd Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]},{"t":6,"s":1,"p":1,"n":"OnChange","c":[{"p":1,"n":"POCA - OnChange Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCDA - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"},{"t":11,"n":"TNAM - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":1,"p":1,"n":"PARW - Placed Arrow","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PBAR - Placed Barrier","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PBEA - Placed Beam","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PCON - Placed Cone\/Voice","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PERK - Perk","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Fragment Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Trait"},{"t":3,"p":1,"n":"Level"},{"t":3,"p":1,"n":"Num Ranks"},{"t":3,"p":1,"n":"Playable"},{"t":3,"p":1,"n":"Hidden"}]},{"t":3,"p":1,"n":"NNAM - Next Perk"},{"t":10,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":6,"p":1,"n":"PRKE - Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Rank"},{"t":3,"p":1,"n":"Priority"}]},{"t":6,"p":1,"n":"Quest + Stage","c":[{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Quest Stage"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"Ability"},{"t":6,"p":1,"n":"Entry Point","c":[{"t":3,"p":1,"n":"Entry Point"},{"t":3,"p":1,"n":"Function"},{"t":3,"p":1,"n":"Perk Condition Tab Count"}]},{"t":10,"p":1,"n":"Perk Conditions","c":[{"t":6,"p":1,"n":"Perk Condition","c":[{"t":3,"p":1,"n":"PRKC - Run On (Tab Index)"},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"p":1,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]},{"t":6,"p":1,"n":"Function Parameters","c":[{"t":3,"p":1,"n":"EPFT - Type"},{"t":2,"p":1,"n":"EPF2 - Button Label"},{"t":6,"p":1,"n":"EPF3 - Script Flags","c":[{"t":3,"p":1,"n":"Script Flags"},{"t":11,"n":"Unknown"}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Float"},{"t":6,"p":1,"n":"Float, Float","c":[{"t":5,"p":1,"n":"Float 1"},{"t":5,"p":1,"n":"Float 2"}]},{"t":3,"p":1,"n":"Leveled Item"},{"t":3,"p":1,"n":"Spell"},{"t":2,"p":1,"n":"Text"},{"t":6,"p":1,"n":"Actor Value, Float","c":[{"t":3,"p":1,"n":"Actor Value"},{"t":5,"p":1,"n":"Float"}]}]},{"p":1,"n":"PRKF - End Marker"}]}]}]},{"t":1,"p":1,"n":"PFLA - Placed Flame","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PGRE - Placed Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PHZD - Placed Hazard","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PMIS - Placed Missile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Projectile"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"PROJ - Projectile","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Gravity"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Light"},{"t":3,"p":1,"n":"Muzzle Flash - Light"},{"t":5,"p":1,"n":"Tracer Chance"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Proximity"},{"t":5,"p":1,"n":"Explosion - Alt. Trigger - Timer"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Sound"},{"t":5,"p":1,"n":"Muzzle Flash - Duration"},{"t":5,"p":1,"n":"Fade Duration"},{"t":5,"p":1,"n":"Impact Force"},{"t":3,"p":1,"n":"Sound - Countdown"},{"t":3,"p":1,"n":"Sound - Disable"},{"t":3,"p":1,"n":"Default Weapon Source"},{"t":5,"p":1,"n":"Cone Spread"},{"t":5,"p":1,"n":"Collision Radius"},{"t":5,"p":1,"n":"Lifetime"},{"t":5,"p":1,"n":"Relaunch Interval"},{"t":3,"p":1,"n":"Decal Data"},{"t":3,"p":1,"n":"Collision Layer"}]},{"t":6,"s":1,"p":1,"n":"Muzzle Flash Model","c":[{"t":2,"p":1,"n":"NAM1 - Model Filename"},{"t":11,"p":1,"n":"NAM2 - Texture Files Hashes"}]},{"t":3,"p":1,"n":"VNAM - Sound Level"}]},{"t":1,"p":1,"n":"PWAT","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"QUST - Quest","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"fragmentCount"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Quest Stage Index"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]},{"t":7,"p":1,"n":"Aliases","c":[{"t":6,"p":1,"n":"Alias","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Alias Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]}]}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"DNAM - General","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"Form Version"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":2,"p":1,"n":"ENAM - Event"},{"t":8,"s":1,"p":1,"n":"Text Display Globals","d":1,"c":[{"t":3,"p":1,"n":"QTGL - Global"}]},{"t":2,"p":1,"n":"FLTR - Object Window Filter"},{"t":6,"s":1,"p":1,"n":"Quest Dialogue Conditions","c":[{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":10,"s":1,"p":1,"n":"Stages","d":1,"c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"INDX - Stage Index","c":[{"t":3,"p":1,"n":"Stage Index"},{"t":3,"p":1,"n":"Flags"},{"t":3,"n":"Unknown"}]},{"t":8,"p":1,"n":"Log Entries","c":[{"t":6,"p":1,"n":"Log Entry","c":[{"t":3,"p":1,"n":"QSDT - Stage Flags"},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":2,"p":1,"n":"CNAM - Log Entry"},{"t":3,"p":1,"n":"NAM0 - Next Quest"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":11,"n":"QNAM - Unused"}]}]}]}]},{"t":8,"s":1,"p":1,"n":"Objectives","d":1,"c":[{"t":6,"p":1,"n":"Objective","c":[{"t":3,"p":1,"n":"QOBJ - Objective Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":2,"p":1,"n":"NNAM - Display Text"},{"t":8,"p":1,"n":"Targets","c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]}]},{"t":11,"n":"ANAM - Aliases Marker"},{"t":8,"s":1,"p":1,"n":"Aliases","d":1,"c":[{"t":6,"p":1,"n":"Alias","c":[{"t":3,"p":1,"n":"ALST - Reference Alias ID"},{"t":2,"p":1,"n":"ALID - Alias Name"},{"t":6,"p":1,"n":"FNAM - Alias Flags","c":[{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Additional Flags"}]},{"t":3,"p":1,"n":"ALFI - Force Into Alias When Filled"},{"t":3,"p":1,"n":"ALFL - Specific Location"},{"t":3,"p":1,"n":"ALFR - Forced Reference"},{"t":3,"p":1,"n":"ALUA - Unique Actor"},{"t":6,"p":1,"n":"Location Alias Reference","c":[{"t":3,"p":1,"n":"ALFA - Alias"},{"t":3,"p":1,"n":"KNAM - Keyword"},{"t":3,"p":1,"n":"ALRT - Ref Type"}]},{"t":6,"p":1,"n":"External Alias Reference","c":[{"t":3,"p":1,"n":"ALEQ - Quest"},{"t":3,"p":1,"n":"ALEA - Alias"}]},{"t":6,"p":1,"n":"Create Reference to Object","c":[{"t":3,"p":1,"n":"ALCO - Object"},{"t":6,"p":1,"n":"ALCA - Alias","c":[{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Create"}]},{"t":3,"p":1,"n":"ALCL - Level"}]},{"t":6,"p":1,"n":"Find Matching Reference Near Alias","c":[{"t":3,"p":1,"n":"ALNA - Alias"},{"t":3,"p":1,"n":"ALNT - Type"}]},{"t":6,"p":1,"n":"Find Matching Reference From Event","c":[{"t":2,"p":1,"n":"ALFE - From Event"},{"t":11,"p":1,"n":"ALFD - Event Data"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"COCT - Count"},{"t":10,"p":1,"n":"Items","c":[{"t":6,"p":1,"n":"Item","c":[{"t":6,"p":1,"n":"CNTO - Item","c":[{"t":3,"p":1,"n":"Item"},{"t":3,"p":1,"n":"Count"}]},{"t":6,"p":1,"n":"COED - Extra Data","c":[{"t":3,"p":1,"n":"Owner"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Global Variable"},{"t":3,"p":1,"n":"Required Rank"},{"t":5,"p":1,"n":"Item Condition"}]}]}]},{"t":3,"p":1,"n":"SPOR - Spectator override package list"},{"t":3,"p":1,"n":"OCOR - Observe dead body override package list"},{"t":3,"p":1,"n":"GWOR - Guard warn override package list"},{"t":3,"p":1,"n":"ECOR - Combat override package list"},{"t":3,"p":1,"n":"ALDN - Display Name"},{"t":8,"p":1,"n":"Alias Spells","c":[{"t":3,"p":1,"n":"ALSP - Spell"}]},{"t":8,"p":1,"n":"Alias Factions","c":[{"t":3,"p":1,"n":"ALFC - Faction"}]},{"t":8,"p":1,"n":"Alias Package Data","c":[{"t":3,"p":1,"n":"ALPC - Package"}]},{"t":3,"p":1,"n":"VTCK - Voice Types"},{"p":1,"n":"ALED - Alias End"}]}]},{"t":2,"p":1,"n":"NNAM - Description"},{"t":8,"s":1,"p":1,"n":"Targets","d":1,"c":[{"t":6,"p":1,"n":"Target","c":[{"t":6,"p":1,"n":"QSTA - Target","c":[{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"RACE - Race","c":[{"t":2,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"DESC - Description"},{"t":3,"n":"SPCT - Count"},{"t":8,"s":1,"p":1,"n":"Actor Effects","c":[{"t":3,"p":1,"n":"SPLO - Actor Effect"}]},{"t":3,"p":1,"n":"WNAM - Skin"},{"t":6,"s":1,"p":1,"n":"BOD2 - Biped Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}]},{"t":6,"s":1,"p":1,"n":"BODT - Body Template","c":[{"t":3,"p":1,"n":"First Person Flags"},{"t":3,"p":1,"n":"General Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Armor Type"}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":7,"p":1,"n":"Skill Boosts","c":[{"t":6,"p":1,"n":"Skill Boost","c":[{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Boost"}]}]},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Male Height"},{"t":5,"p":1,"n":"Female Height"},{"t":5,"p":1,"n":"Male Weight"},{"t":5,"p":1,"n":"Female Weight"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Starting Health"},{"t":5,"p":1,"n":"Starting Magicka"},{"t":5,"p":1,"n":"Starting Stamina"},{"t":5,"p":1,"n":"Base Carry Weight"},{"t":5,"p":1,"n":"Base Mass"},{"t":5,"p":1,"n":"Acceleration rate"},{"t":5,"p":1,"n":"Deceleration rate"},{"t":3,"p":1,"n":"Size"},{"t":3,"p":1,"n":"Head Biped Object"},{"t":3,"p":1,"n":"Hair Biped Object"},{"t":5,"p":1,"n":"Injured Health Pct"},{"t":3,"p":1,"n":"Shield Biped Object"},{"t":5,"p":1,"n":"Health Regen"},{"t":5,"p":1,"n":"Magicka Regen"},{"t":5,"p":1,"n":"Stamina Regen"},{"t":5,"p":1,"n":"Unarmed Damage"},{"t":5,"p":1,"n":"Unarmed Reach"},{"t":3,"p":1,"n":"Body Biped Object"},{"t":5,"p":1,"n":"Aim Angle Tolerance"},{"t":5,"p":1,"n":"Flight Radius"},{"t":5,"p":1,"n":"Angular Acceleration Rate"},{"t":5,"p":1,"n":"Angular Tolerance"},{"t":3,"p":1,"n":"Flags 2"},{"t":6,"p":1,"n":"Mount Data","c":[{"t":5,"p":1,"n":"Offset X"},{"t":5,"p":1,"n":"Offset Y"},{"t":5,"p":1,"n":"Unknown"}]}]},{"p":1,"n":"MNAM - Male Marker"},{"t":2,"p":1,"n":"ANAM - Male Skeletal Model"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"p":1,"n":"FNAM - Female Marker"},{"t":2,"p":1,"n":"ANAM - Female Skeletal Model"},{"p":1,"n":"NAM2 - Marker NAM2 #1"},{"t":8,"p":1,"n":"Movement Type Names","c":[{"t":2,"p":1,"n":"MTNM - Name"}]},{"t":7,"p":1,"n":"VTCK - Voices","c":[{"t":3,"p":1,"n":"Voice"}]},{"t":7,"p":1,"n":"DNAM - Decapitate Armors","c":[{"t":3,"p":1,"n":"Decapitate Armor"}]},{"t":7,"p":1,"n":"HCLF - Default Hair Colors","c":[{"t":3,"p":1,"n":"Default Hair Color"}]},{"t":3,"n":"TINL - Total Number of Tints in List"},{"t":5,"p":1,"n":"PNAM - FaceGen - Main clamp"},{"t":5,"p":1,"n":"UNAM - FaceGen - Face clamp"},{"t":3,"p":1,"n":"ATKR - Attack Race"},{"t":10,"p":1,"n":"Attacks","c":[{"t":6,"p":1,"n":"Attack","c":[{"t":6,"p":1,"n":"ATKD - Attack Data","c":[{"t":5,"p":1,"n":"Damage Mult"},{"t":5,"p":1,"n":"Attack Chance"},{"t":3,"p":1,"n":"Attack Spell"},{"t":3,"p":1,"n":"Attack Flags"},{"t":5,"p":1,"n":"Attack Angle"},{"t":5,"p":1,"n":"Strike Angle"},{"t":5,"p":1,"n":"Stagger"},{"t":3,"p":1,"n":"Attack Type"},{"t":5,"p":1,"n":"Knockdown"},{"t":5,"p":1,"n":"Recovery Time"},{"t":5,"p":1,"n":"Stamina Mult"}]},{"t":2,"p":1,"n":"ATKE - Attack Event"}]}]},{"t":6,"p":1,"n":"Body Data","c":[{"n":"NAM1 - Body Data Marker"},{"t":6,"p":1,"n":"Male Body Data","c":[{"n":"MNAM - Male Data Marker"},{"t":10,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"INDX - Index"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]}]},{"t":6,"p":1,"n":"Female Body Data","c":[{"n":"FNAM - Female Data Marker"},{"t":10,"s":1,"p":1,"n":"Parts","d":1,"c":[{"t":6,"p":1,"n":"Part","c":[{"t":3,"p":1,"n":"INDX - Index"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]}]}]},{"t":7,"p":1,"n":"HNAM - Hairs","c":[{"t":3,"p":1,"n":"Hair"}]},{"t":7,"p":1,"n":"ENAM - Eyes","c":[{"t":3,"p":1,"n":"Eye"}]},{"t":3,"p":1,"n":"GNAM - Body Part Data"},{"p":1,"n":"NAM2 - Marker NAM2 #2"},{"p":1,"n":"NAM3 - Marker NAM3 #3"},{"t":6,"s":1,"p":1,"n":"Male Behavior Graph","c":[{"p":1,"n":"MNAM - Male Data Marker"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"Female Behavior Graph","c":[{"p":1,"n":"FNAM - Female Data Marker"},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":3,"p":1,"n":"NAM4 - Material Type"},{"t":3,"p":1,"n":"NAM5 - Impact Data Set"},{"t":3,"p":1,"n":"NAM7 - Decapitation FX"},{"t":3,"p":1,"n":"ONAM - Open Loot Sound"},{"t":3,"p":1,"n":"LNAM - Close Loot Sound"},{"t":8,"p":1,"n":"Biped Object Names","c":[{"t":2,"p":1,"n":"NAME - Name"}]},{"t":10,"n":"Movement Types","c":[{"t":6,"n":"Movement Types","c":[{"t":3,"n":"MTYP - Movement Type"},{"t":6,"n":"SPED - Override Values","c":[{"t":5,"n":"Left - Walk"},{"t":5,"n":"Left - Run"},{"t":5,"n":"Right - Walk"},{"t":5,"n":"Right - Run"},{"t":5,"n":"Forward - Walk"},{"t":5,"n":"Forward - Run"},{"t":5,"n":"Back - Walk"},{"t":5,"n":"Back - Run"},{"t":5,"n":"Rotate - Walk"},{"t":5,"n":"Unknown"}]}]}]},{"t":3,"n":"VNAM - Equipment Flags"},{"t":8,"p":1,"n":"Equip Slots","c":[{"t":3,"p":1,"n":"QNAM - Equip Slot"}]},{"t":3,"n":"UNES - Unarmed Equip Slot"},{"t":8,"n":"Phoneme Target Names","c":[{"t":2,"n":"PHTN - Name"}]},{"t":6,"n":"FaceFX Phonemes","c":[{"t":6,"n":"IY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"IH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"EY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AE","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AA","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AO","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OY","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"OW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"UW","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ER","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"AX","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"S","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Z","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"ZH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"F","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"TH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"V","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"DH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"M","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"N","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"NG","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"L","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"R","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"W","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"Y","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"HH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"B","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"D","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"JH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"G","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"P","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"T","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"K","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"CH","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"SHOTSIL","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]},{"t":6,"n":"FLAP","c":[{"t":6,"n":"PHWT - Phoneme Target Weight","c":[{"t":5,"n":"Aah \/ LipBigAah"},{"t":5,"n":"BigAah \/ LipDST"},{"t":5,"n":"BMP \/ LipEee"},{"t":5,"n":"ChJsh \/ LipFV"},{"t":5,"n":"DST \/ LipK"},{"t":5,"n":"Eee \/ LipL"},{"t":5,"n":"Eh \/ LipR"},{"t":5,"n":"FV \/ LipTh"},{"t":5,"n":"I"},{"t":5,"n":"K"},{"t":5,"n":"N"},{"t":5,"n":"Oh"},{"t":5,"n":"OohQ"},{"t":5,"n":"R"},{"t":5,"n":"TH"},{"t":5,"n":"W"}]}]}]},{"t":3,"n":"WKMV - Base Movement Default - Walk"},{"t":3,"n":"RNMV - Base Movement Default - Run"},{"t":3,"n":"SWMV - Base Movement Default - Swim"},{"t":3,"n":"FLMV - Base Movement Default - Fly"},{"t":3,"n":"SNMV - Base Movement Default - Sneak"},{"t":3,"n":"SPMV - Base Movement Default - Sprint"},{"t":6,"p":1,"n":"Head Data","c":[{"n":"NAM0 - Head Data Marker"},{"t":6,"s":1,"p":1,"n":"Male Head Data","c":[{"p":1,"n":"MNAM - Male Data Marker"},{"t":10,"p":1,"n":"Head Parts","c":[{"t":6,"p":1,"n":"Head Part","c":[{"t":3,"p":1,"n":"INDX - Head Part Number"},{"t":3,"p":1,"n":"HEAD - Head"}]}]},{"t":6,"n":"Available Morphs","c":[{"t":11,"n":"MPAI - Unknown"},{"t":6,"n":"MPAV - Nose Variants","c":[{"t":3,"n":"Nose Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Brow Variants","c":[{"t":3,"n":"Brow Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Eye Variants","c":[{"t":3,"n":"Eye Morph Flags 1"},{"t":3,"n":"Eye Morph Flags 2"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Lip Variants","c":[{"t":3,"n":"Lip Morph Flags"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Race Presets Male","c":[{"t":3,"n":"RPRM - Preset NPC"}]},{"t":8,"n":"Available Hair Colors Male","c":[{"t":3,"n":"AHCM - Hair Color"}]},{"t":8,"n":"Face Details Texture Set List Male","c":[{"t":3,"n":"FTSM - Texture Set"}]},{"t":3,"n":"DFTM - Default Face Texture Male"},{"t":8,"p":1,"n":"Tint Masks","c":[{"t":6,"p":1,"n":"Tint Assets","c":[{"t":8,"p":1,"n":"Tint Layer","c":[{"t":6,"p":1,"n":"Texture","c":[{"t":3,"p":1,"n":"TINI - Index"},{"t":2,"p":1,"n":"TINT - File Name"},{"t":3,"p":1,"n":"TINP - Mask Type"},{"t":3,"p":1,"n":"TIND - Preset Default"}]}]},{"t":8,"p":1,"n":"Presets","c":[{"t":6,"p":1,"n":"Preset","c":[{"t":3,"p":1,"n":"TINC - Color"},{"t":5,"p":1,"n":"TINV - Default Value"},{"t":3,"p":1,"n":"TIRS - Index"}]}]}]}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"Female Head Data","c":[{"p":1,"n":"NAM0 - Head Data Marker"},{"p":1,"n":"FNAM - Female Data Marker"},{"t":10,"p":1,"n":"Head Parts","c":[{"t":6,"p":1,"n":"Head Part","c":[{"t":3,"p":1,"n":"INDX - Head Part Number"},{"t":3,"p":1,"n":"HEAD - Head"}]}]},{"t":6,"n":"Available Morphs","c":[{"t":11,"n":"MPAI - Unknown"},{"t":6,"n":"MPAV - Nose Variants","c":[{"t":3,"n":"Nose Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Brow Variants","c":[{"t":3,"n":"Brow Morph Flags"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Eye Variants","c":[{"t":3,"n":"Eye Morph Flags 1"},{"t":3,"n":"Eye Morph Flags 2"},{"t":11,"n":"Unknown"}]},{"t":6,"n":"MPAV - Lip Variants","c":[{"t":3,"n":"Lip Morph Flags"},{"t":11,"n":"Unknown"}]}]},{"t":8,"n":"Race Presets Female","c":[{"t":3,"n":"RPRF - Preset NPC"}]},{"t":8,"n":"Available Hair Colors Female","c":[{"t":3,"n":"AHCF - Hair Color"}]},{"t":8,"n":"Face Details Texture Set List Female","c":[{"t":3,"n":"FTSF - Texture Set"}]},{"t":3,"n":"DFTF - Default Face Texture Female"},{"t":8,"p":1,"n":"Tint Masks","c":[{"t":6,"p":1,"n":"Tint Assets","c":[{"t":8,"p":1,"n":"Tint Layer","c":[{"t":6,"p":1,"n":"Texture","c":[{"t":3,"p":1,"n":"TINI - Index"},{"t":2,"p":1,"n":"TINT - File Name"},{"t":3,"p":1,"n":"TINP - Mask Type"},{"t":3,"p":1,"n":"TIND - Preset Default"}]}]},{"t":8,"p":1,"n":"Presets","c":[{"t":6,"p":1,"n":"Preset","c":[{"t":3,"p":1,"n":"TINC - Color"},{"t":5,"p":1,"n":"TINV - Default Value"},{"t":3,"p":1,"n":"TIRS - Index"}]}]}]}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]}]},{"t":3,"n":"NAM8 - Morph race"},{"t":3,"n":"RNAM - Armor race"}]},{"t":1,"p":1,"n":"REFR - Placed Object","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":3,"p":1,"n":"NAME - Base"},{"t":6,"s":1,"p":1,"n":"XMBO - Bound Half Extents","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"XPRM - Primitive","c":[{"t":6,"p":1,"n":"Bounds","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Color","c":[{"t":5,"p":1,"n":"Red"},{"t":5,"p":1,"n":"Green"},{"t":5,"p":1,"n":"Blue"}]},{"t":5,"n":"Unknown"},{"t":3,"p":1,"n":"Type"}]},{"t":11,"n":"XORD - Unknown"},{"t":6,"s":1,"p":1,"n":"XOCP - Occlusion Plane Data","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":7,"p":1,"n":"XPOD - Portal Data","c":[{"t":6,"p":1,"n":"References","c":[{"t":3,"p":1,"n":"Origin"},{"t":3,"p":1,"n":"Destination"}]}]},{"t":6,"s":1,"p":1,"n":"XPTL - Room Portal (unused)","c":[{"t":6,"p":1,"n":"Size","c":[{"t":5,"p":1,"n":"Width"},{"t":5,"p":1,"n":"Height"}]},{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation (Quaternion?)","c":[{"t":5,"p":1,"n":"q1"},{"t":5,"p":1,"n":"q2"},{"t":5,"p":1,"n":"q3"},{"t":5,"p":1,"n":"q4"}]}]},{"t":6,"s":1,"p":1,"n":"Bound Data","c":[{"t":6,"p":1,"n":"XRMR - Header","c":[{"t":3,"p":1,"n":"Linked Rooms Count"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"LNAM - Lighting Template"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":8,"p":1,"n":"Linked Rooms","c":[{"t":3,"p":1,"n":"XLRM - Linked Room"}]}]},{"p":1,"n":"XMBP - MultiBound Primitive Marker"},{"t":11,"n":"XRGD - Ragdoll Data"},{"t":11,"n":"XRGB - Ragdoll Biped Data"},{"t":5,"p":1,"n":"XRDS - Radius"},{"t":8,"s":1,"p":1,"n":"Reflected\/Refracted By","d":1,"c":[{"t":6,"p":1,"n":"XPWR - Water","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Lit Water","d":1,"c":[{"t":3,"p":1,"n":"XLTW - Water"}]},{"t":3,"p":1,"n":"XEMI - Emittance"},{"t":6,"s":1,"p":1,"n":"XLIG - Light Data","c":[{"t":5,"p":1,"n":"FOV 90+\/-"},{"t":5,"p":1,"n":"Fade 1.35+\/-"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Shadow Depth Bias"}]},{"t":6,"s":1,"p":1,"n":"XALP - Alpha","c":[{"t":3,"p":1,"n":"Cutoff"},{"t":3,"p":1,"n":"Base"}]},{"t":6,"s":1,"p":1,"n":"XTEL - Teleport Destination","c":[{"t":3,"p":1,"n":"Door"},{"t":6,"p":1,"n":"Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XTNM - Teleport Message Box"},{"t":3,"p":1,"n":"XMBR - MultiBound Reference"},{"t":11,"n":"XWCN - Unknown"},{"t":11,"n":"XWCS - Unknown"},{"t":6,"s":1,"p":1,"n":"XWCU - Water Velocity","c":[{"t":5,"p":1,"n":"X Offset"},{"t":5,"p":1,"n":"Y Offset"},{"t":5,"p":1,"n":"Z Offset"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"X Angle"},{"t":5,"p":1,"n":"Y Angle"},{"t":5,"p":1,"n":"Z Angle"}]},{"t":6,"n":"XCVL - Unknown","c":[{"t":11,"n":"Unknown"},{"t":5,"n":"X Angle"}]},{"t":3,"n":"XCZR - Unknown"},{"t":11,"n":"XCZA - Unknown"},{"t":3,"n":"XCZC - Unknown"},{"t":5,"p":1,"n":"XSCL - Scale"},{"t":3,"p":1,"n":"XSPC - Spawn Container"},{"t":6,"s":1,"p":1,"n":"Activate Parents","c":[{"t":3,"p":1,"n":"XAPD - Flags"},{"t":8,"p":1,"n":"Activate Parent Refs","c":[{"t":6,"p":1,"n":"XAPR - Activate Parent Ref","c":[{"t":3,"p":1,"n":"Reference"},{"t":5,"p":1,"n":"Delay"}]}]}]},{"t":3,"p":1,"n":"XLIB - Leveled Item Base Object"},{"t":3,"p":1,"n":"XLCM - Level Modifier"},{"t":3,"p":1,"n":"XLCN - Persistent Location"},{"t":3,"p":1,"n":"XTRI - Collision Layer"},{"t":6,"s":1,"p":1,"n":"XLOC - Lock Data","c":[{"t":3,"p":1,"n":"Level"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Key"},{"t":3,"p":1,"n":"Flags"}]},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":6,"s":1,"p":1,"n":"XNDP - Navigation Door Link","c":[{"t":3,"p":1,"n":"Navigation Mesh"},{"t":3,"p":1,"n":"Teleport Marker Triangle"},{"t":11,"n":"Unused"}]},{"t":7,"p":1,"n":"XLRT - Location Ref Type","c":[{"t":3,"p":1,"n":"Ref"}]},{"p":1,"n":"XIS2 - Ignored by Sandbox"},{"t":6,"s":1,"p":1,"n":"Ownership","c":[{"t":3,"p":1,"n":"XOWN - Owner"},{"t":3,"p":1,"n":"XRNK - Faction rank"}]},{"t":3,"p":1,"n":"XCNT - Item Count"},{"t":5,"p":1,"n":"XCHG - Charge"},{"t":3,"p":1,"n":"XLRL - Location Reference"},{"t":6,"s":1,"p":1,"n":"XESP - Enable Parent","c":[{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"}]},{"t":8,"s":1,"p":1,"n":"Linked References","d":1,"c":[{"t":6,"p":1,"n":"XLKR - Linked Reference","c":[{"t":3,"p":1,"n":"Keyword\/Ref"},{"t":3,"p":1,"n":"Ref"}]}]},{"t":8,"s":1,"p":1,"n":"Patrol","d":1,"c":[{"t":6,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"XPRD - Idle Time"},{"p":1,"n":"XPPA - Patrol Script Marker"},{"t":3,"p":1,"n":"INAM - Idle"},{"t":11,"n":"SCHR - Unused"},{"t":11,"n":"SCTX - Unused"},{"t":8,"p":1,"n":"Topic","c":[{"t":6,"p":1,"n":"PDTO - Topic Data","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Topic"},{"t":2,"p":1,"n":"Subtype"}]}]}]}]},{"t":3,"p":1,"n":"XACT - Action Flag"},{"t":5,"p":1,"n":"XHTW - Head-Tracking Weight"},{"t":5,"p":1,"n":"XFVC - Favor Cost"},{"p":1,"n":"ONAM - Open by Default"},{"t":6,"s":1,"p":1,"n":"Map Marker","c":[{"p":1,"n":"XMRK - Map Marker Data"},{"t":3,"p":1,"n":"FNAM - Map Flags"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"p":1,"n":"TNAM - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"XATR - Attach Ref"},{"t":7,"n":"XLOD - Distant LOD Data","c":[{"t":5,"n":"Unknown"}]},{"t":6,"s":1,"p":1,"n":"DATA - Position\/Rotation","c":[{"t":6,"p":1,"n":"Position","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"p":1,"n":"Rotation","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]}]}]},{"t":1,"p":1,"n":"REGN - Region","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"RCLR - Map Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]},{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":8,"s":1,"p":1,"n":"Region Areas","d":1,"c":[{"t":6,"p":1,"n":"Region Area","c":[{"t":3,"p":1,"n":"RPLI - Edge Fall-off"},{"t":7,"p":1,"n":"RPLD - Region Point List Data","c":[{"t":6,"p":1,"n":"Point","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]}]}]},{"t":10,"p":1,"n":"Region Data Entries","d":1,"c":[{"t":6,"p":1,"n":"Region Data Entry","c":[{"t":6,"p":1,"n":"RDAT - Data Header","c":[{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Priority"},{"t":11,"n":"Unknown"}]},{"t":6,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":3,"p":1,"n":"RDMO - Music"},{"t":7,"p":1,"n":"RDSA - Sounds","c":[{"t":6,"p":1,"n":"Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Chance"}]}]},{"t":2,"p":1,"n":"RDMP - Map Name"},{"t":7,"p":1,"n":"RDOT - Objects","c":[{"t":6,"p":1,"n":"Object","c":[{"t":3,"p":1,"n":"Object"},{"t":3,"p":1,"n":"Parent Index"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Density"},{"t":3,"p":1,"n":"Clustering"},{"t":3,"p":1,"n":"Min Slope"},{"t":3,"p":1,"n":"Max Slope"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Radius wrt Parent"},{"t":3,"p":1,"n":"Radius"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Sink"},{"t":5,"p":1,"n":"Sink Variance"},{"t":5,"p":1,"n":"Size Variance"},{"t":6,"p":1,"n":"Angle Variance","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"},{"t":3,"p":1,"n":"Z"}]}]}]},{"t":7,"p":1,"n":"RDGS - Grasses","c":[{"t":6,"p":1,"n":"Grass","c":[{"t":3,"p":1,"n":"Grass"},{"t":11,"n":"Unknown"}]}]},{"t":7,"p":1,"n":"RDWT - Weather Types","c":[{"t":6,"p":1,"n":"Weather Type","c":[{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Chance"},{"t":3,"p":1,"n":"Global"}]}]}]}]}]},{"t":1,"p":1,"n":"RELA - Relationship","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Parent"},{"t":3,"p":1,"n":"Child"},{"t":3,"p":1,"n":"Rank"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Association Type"}]}]},{"t":1,"p":1,"n":"REVB - Reverb Parameters","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Decay Time (ms)"},{"t":3,"p":1,"n":"HF Reference (Hz)"},{"t":3,"p":1,"n":"Room Filter"},{"t":3,"p":1,"n":"Room HF Filter"},{"t":3,"p":1,"n":"Reflections"},{"t":3,"p":1,"n":"Reverb Amp"},{"t":3,"p":1,"n":"Decay HF Ratio"},{"t":3,"p":1,"n":"Reflect Delay (ms), scaled"},{"t":3,"p":1,"n":"Reverb Delay (ms)"},{"t":3,"p":1,"n":"Diffusion %"},{"t":3,"p":1,"n":"Density %"},{"t":3,"n":"Unknown"}]}]},{"t":1,"p":1,"n":"RFCT - Visual Effect","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"DATA - Effect Data","c":[{"t":3,"p":1,"n":"Effect Art"},{"t":3,"p":1,"n":"Shader"},{"t":3,"p":1,"n":"Flags"}]}]},{"t":1,"p":1,"n":"RGDL","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCEN - Scene","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]},{"t":6,"p":1,"n":"Script Fragments","c":[{"t":3,"n":"Unknown"},{"t":3,"p":1,"n":"Flags"},{"t":2,"p":1,"n":"fileName"},{"t":7,"p":1,"n":"Fragments","c":[{"t":6,"p":1,"n":"Fragment","c":[{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]},{"t":7,"p":1,"n":"Phase Fragments","c":[{"t":6,"p":1,"n":"Phase Fragment","c":[{"t":3,"p":1,"n":"Phase Flag"},{"t":3,"p":1,"n":"Phase Index"},{"t":3,"n":"Unknown"},{"t":2,"p":1,"n":"scriptName"},{"t":2,"p":1,"n":"fragmentName"}]}]}]}]},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":8,"s":1,"p":1,"n":"Phases","d":1,"c":[{"t":6,"p":1,"n":"Phase","c":[{"p":1,"n":"HNAM - Marker Phase Start"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":6,"p":1,"n":"Start Conditions","c":[{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"p":1,"n":"NEXT - Marker"},{"t":6,"p":1,"n":"Completion Conditions","c":[{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"t":3,"p":1,"n":"WNAM - Editor Width"},{"p":1,"n":"HNAM - Marker Phase End"}]}]},{"t":8,"s":1,"p":1,"n":"Actors","d":1,"c":[{"t":6,"p":1,"n":"Actor","c":[{"t":3,"p":1,"n":"ALID - Actor ID"},{"t":3,"p":1,"n":"LNAM - Flags"},{"t":3,"p":1,"n":"DNAM - Behaviour Flags"}]}]},{"t":8,"s":1,"p":1,"n":"Actions","d":1,"c":[{"t":6,"p":1,"n":"Action","c":[{"t":3,"p":1,"n":"ANAM - Type"},{"t":2,"p":1,"n":"NAM0 - Name"},{"t":3,"p":1,"n":"ALID - Actor ID"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"INAM - Index"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"SNAM - Start Phase"},{"t":3,"p":1,"n":"ENAM - End Phase"},{"t":5,"p":1,"n":"SNAM - Timer Seconds"},{"t":8,"p":1,"n":"Packages","c":[{"t":3,"p":1,"n":"PNAM - Package"}]},{"t":3,"p":1,"n":"DATA - Topic"},{"t":3,"p":1,"n":"HTID - Headtrack Actor ID"},{"t":5,"p":1,"n":"DMAX - Looping - Max"},{"t":5,"p":1,"n":"DMIN - Looping - Min"},{"t":3,"p":1,"n":"DEMO - Emotion Type"},{"t":3,"p":1,"n":"DEVA - Emotion Value"},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"p":1,"n":"ANAM - End Marker"}]}]},{"t":6,"n":"Unused","c":[{"t":11,"n":"SCHR - Unknown"},{"t":11,"n":"SCDA - Unknown"},{"t":11,"n":"SCTX - Unknown"},{"t":11,"n":"QNAM - Unknown"},{"t":11,"n":"SCRO - Unknown"}]},{"p":1,"n":"NEXT - Marker"},{"t":3,"p":1,"n":"PNAM - Quest"},{"t":3,"p":1,"n":"INAM - Last Action Index"},{"t":11,"n":"VNAM - Unknown"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]},{"t":1,"p":1,"n":"SCOL","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCPT","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"}]},{"t":1,"p":1,"n":"SCRL - Scroll","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":6,"s":1,"p":1,"n":"DATA - Item","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SHOU - Shout","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":2,"p":1,"n":"DESC - Description"},{"t":8,"s":1,"p":1,"n":"Words of Power","d":1,"c":[{"t":6,"p":1,"n":"SNAM - ","c":[{"t":3,"p":1,"n":"Word"},{"t":3,"p":1,"n":"Spell"},{"t":5,"p":1,"n":"Recovery Time"}]}]}]},{"t":1,"p":1,"n":"SLGM - Soul Gem","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":6,"s":1,"p":1,"n":"DATA - ","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"}]},{"t":3,"p":1,"n":"SOUL - Contained Soul"},{"t":3,"p":1,"n":"SLCP - Maximum Capacity"},{"t":3,"p":1,"n":"NAM0 - Linked To"}]},{"t":1,"p":1,"n":"SMBN - Story Manager Branch Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"}]},{"t":1,"p":1,"n":"SMEN - Story Manager Event Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"},{"t":11,"n":"XNAM - Unknown"},{"t":2,"p":1,"n":"ENAM - Type"}]},{"t":1,"p":1,"n":"SMQN - Story Manager Quest Node","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"PNAM - Parent "},{"t":3,"p":1,"n":"SNAM - Child "},{"t":3,"n":"CITC - Condition Count"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Flags","c":[{"t":3,"p":1,"n":"Node Flags"},{"t":3,"p":1,"n":"Quest Flags"}]},{"t":3,"p":1,"n":"XNAM - Max concurrent quests"},{"t":3,"p":1,"n":"MNAM - Num quests to run"},{"t":3,"n":"QNAM - Quest Count"},{"t":10,"p":1,"n":"Quests","d":1,"c":[{"t":6,"p":1,"n":"Quest","c":[{"t":3,"p":1,"n":"NNAM - Quest"},{"t":11,"n":"FNAM - Unknown"},{"t":5,"p":1,"n":"RNAM - Hours until reset"}]}]}]},{"t":1,"p":1,"n":"SNCT - Sound Category","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":3,"p":1,"n":"PNAM - Parent"},{"t":3,"p":1,"n":"VNAM - Static Volume Multiplier"},{"t":3,"p":1,"n":"UNAM - Default Menu Value"}]},{"t":1,"p":1,"n":"SNDR - Sound Descriptor","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":11,"n":"CNAM - Unknown"},{"t":3,"p":1,"n":"GNAM - Category"},{"t":3,"p":1,"n":"SNAM - Alternate Sound For"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"Sound Files","c":[{"t":2,"p":1,"n":"ANAM - File Name"}]}]},{"t":3,"p":1,"n":"ONAM - Output Model"},{"t":2,"p":1,"n":"FNAM - String"},{"t":8,"s":1,"p":1,"n":"Conditions","d":1,"c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]},{"t":6,"s":1,"p":1,"n":"LNAM - Values","c":[{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Looping"},{"t":3,"p":1,"n":"Rumble Send Value = (Small \/ 7) + ((Big \/ 7) * 16)"}]},{"t":6,"s":1,"p":1,"n":"BNAM - Values","c":[{"t":3,"p":1,"n":"% Frequency Shift"},{"t":3,"p":1,"n":"% Frequency Variance"},{"t":3,"p":1,"n":"Priority"},{"t":3,"p":1,"n":"db Variance"},{"t":3,"p":1,"n":"Static Attenuation (db)"}]}]},{"t":1,"p":1,"n":"SOPM - Sound Output Model","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"NAM1 - Data","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Reverb Send %"}]},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Type"},{"t":11,"n":"CNAM - Unknown"},{"t":11,"n":"SNAM - Unknown"},{"t":6,"s":1,"p":1,"n":"ONAM - Output Values","c":[{"t":7,"p":1,"n":"Channels","c":[{"t":6,"p":1,"n":"","c":[{"t":3,"p":1,"n":"L"},{"t":3,"p":1,"n":"R"},{"t":3,"p":1,"n":"C"},{"t":3,"p":1,"n":"LFE"},{"t":3,"p":1,"n":"RL"},{"t":3,"p":1,"n":"RR"},{"t":3,"p":1,"n":"BL"},{"t":3,"p":1,"n":"BR"}]}]}]},{"t":6,"s":1,"p":1,"n":"ANAM - Attenuation Values","c":[{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Min Distance"},{"t":5,"p":1,"n":"Max Distance"},{"t":7,"p":1,"n":"Curve","c":[{"t":3,"p":1,"n":"Value"}]}]}]},{"t":1,"p":1,"n":"SOUN - Sound Marker","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":11,"n":"FNAM - Unknown"},{"t":11,"n":"SNDD - Unknown"},{"t":3,"p":1,"n":"SDSC - Sound Descriptor"}]},{"t":1,"p":1,"n":"SPEL - Spell","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":3,"p":1,"n":"MDOB - Menu Display Object"},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"SPIT - Data","c":[{"t":3,"p":1,"n":"Base Cost"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Type"},{"t":5,"p":1,"n":"Charge Time"},{"t":3,"p":1,"n":"Cast Type"},{"t":3,"p":1,"n":"Target Type"},{"t":5,"p":1,"n":"Cast Duration"},{"t":5,"p":1,"n":"Range"},{"t":3,"p":1,"n":"Half-cost Perk"}]},{"t":8,"s":1,"p":1,"n":"Effects","d":1,"c":[{"t":6,"p":1,"n":"Effect","c":[{"t":3,"p":1,"n":"EFID - Base Effect"},{"t":6,"p":1,"n":"EFIT - ","c":[{"t":5,"p":1,"n":"Magnitude"},{"t":3,"p":1,"n":"Area"},{"t":3,"p":1,"n":"Duration"}]},{"t":8,"s":1,"p":1,"n":"Conditions","c":[{"t":6,"p":1,"n":"Condition","c":[{"t":6,"p":1,"n":"CTDA - ","c":[{"t":3,"p":1,"n":"Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Comparison Value - Float"},{"t":3,"p":1,"n":"Comparison Value - Global"},{"t":3,"p":1,"n":"Function"},{"t":11,"n":"Unknown"},{"t":11,"p":1,"n":"None"},{"t":3,"p":1,"n":"Integer"},{"t":5,"p":1,"n":"Float"},{"t":11,"p":1,"n":"Variable Name (unused)"},{"t":3,"p":1,"n":"Sex"},{"t":3,"p":1,"n":"Actor Value"},{"t":3,"p":1,"n":"Crime Type"},{"t":3,"p":1,"n":"Axis"},{"t":3,"p":1,"n":"Quest Stage (unused)"},{"t":3,"p":1,"n":"Misc Stat"},{"t":3,"p":1,"n":"Alignment"},{"t":3,"p":1,"n":"Equip Type"},{"t":3,"p":1,"n":"Form Type"},{"t":3,"p":1,"n":"Critical Stage"},{"t":3,"p":1,"n":"Object Reference"},{"t":3,"p":1,"n":"Inventory Object"},{"t":3,"p":1,"n":"Actor"},{"t":3,"p":1,"n":"Voice Type"},{"t":3,"p":1,"n":"Idle"},{"t":3,"p":1,"n":"Form List"},{"t":3,"p":1,"n":"Quest"},{"t":3,"p":1,"n":"Faction"},{"t":3,"p":1,"n":"Cell"},{"t":3,"p":1,"n":"Class"},{"t":3,"p":1,"n":"Race"},{"t":3,"p":1,"n":"Actor Base"},{"t":3,"p":1,"n":"Global"},{"t":3,"p":1,"n":"Weather"},{"t":3,"p":1,"n":"Package"},{"t":3,"p":1,"n":"Encounter Zone"},{"t":3,"p":1,"n":"Perk"},{"t":3,"p":1,"n":"Owner"},{"t":3,"p":1,"n":"Furniture"},{"t":3,"p":1,"n":"Effect Item"},{"t":3,"p":1,"n":"Base Effect"},{"t":3,"p":1,"n":"Worldspace"},{"t":3,"p":1,"n":"VATS Value Function"},{"t":3,"p":1,"n":"VATS Value Param (INVALID)"},{"t":3,"p":1,"n":"Referenceable Object"},{"t":3,"p":1,"n":"Region"},{"t":3,"p":1,"n":"Keyword"},{"t":3,"p":1,"n":"Player Action"},{"t":3,"p":1,"n":"Casting Type"},{"t":3,"p":1,"n":"Shout"},{"t":3,"p":1,"n":"Location"},{"t":3,"p":1,"n":"Location Ref Type"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"Packdata ID"},{"t":3,"p":1,"n":"Association Type"},{"t":3,"p":1,"n":"Furniture Anim"},{"t":3,"p":1,"n":"Furniture Entry"},{"t":3,"p":1,"n":"Scene"},{"t":3,"p":1,"n":"Ward State"},{"t":3,"p":1,"n":"Event"},{"t":3,"p":1,"n":"Event Data"},{"t":3,"p":1,"n":"Quest Stage"},{"t":3,"p":1,"n":"Weapon"},{"t":3,"p":1,"n":"Weapon List"},{"t":3,"p":1,"n":"Target"},{"t":3,"p":1,"n":"Target List"},{"t":3,"p":1,"n":"Target Part"},{"t":3,"p":1,"n":"VATS Action"},{"t":3,"p":1,"n":"Critical Effect"},{"t":3,"p":1,"n":"Critical Effect List"},{"t":3,"p":1,"n":"Weapon Type"},{"t":3,"p":1,"n":"Projectile Type"},{"t":3,"p":1,"n":"Delivery Type"},{"t":3,"p":1,"n":"Run On"},{"t":3,"p":1,"n":"Reference"},{"t":3,"p":1,"n":"Parameter #3"}]},{"t":2,"p":1,"n":"CIS1 - Parameter #1"},{"t":2,"p":1,"n":"CIS2 - Parameter #2"}]}]}]}]}]},{"t":1,"p":1,"n":"SPGD - Shader Particle Geometry","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"Data","c":[{"t":5,"p":1,"n":"Gravity Velocity"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"Rotation Velocity"},{"t":5,"p":1,"n":"Particle Size X"},{"t":5,"p":1,"n":"Center Offset Min"},{"t":5,"p":1,"n":"Particle Size Y"},{"t":5,"p":1,"n":"Center Offset Max"},{"t":5,"p":1,"n":"Initial Rotation"},{"t":3,"p":1,"n":"# of Subtextures X"},{"t":3,"p":1,"n":"# of Subtextures Y"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Box Size"},{"t":5,"p":1,"n":"Particle Density"}]},{"t":2,"p":1,"n":"ICON - Particle Texture"}]},{"t":1,"p":1,"n":"STAT - Static","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"DNAM - Direction Material","c":[{"t":5,"p":1,"n":"Max Angle (30-120)"},{"t":3,"p":1,"n":"Material"}]},{"t":7,"p":1,"n":"MNAM - Distant LOD","c":[{"t":6,"p":1,"n":"LOD","c":[{"t":2,"p":1,"n":"Mesh"}]}]}]},{"t":1,"p":1,"n":"TACT - Talking Activator","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":11,"n":"PNAM - Unknown"},{"t":3,"p":1,"n":"SNAM - Looping Sound"},{"t":11,"n":"FNAM - Unknown"},{"t":3,"p":1,"n":"VNAM - Voice Type"}]},{"t":1,"p":1,"n":"TREE - Tree","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":3,"p":1,"n":"PFIG - Ingredient"},{"t":3,"p":1,"n":"SNAM - Harvest Sound"},{"t":6,"s":1,"p":1,"n":"PFPC - Ingredient Production","c":[{"t":3,"p":1,"n":"Spring"},{"t":3,"p":1,"n":"Summer"},{"t":3,"p":1,"n":"Fall"},{"t":3,"p":1,"n":"Winter"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"CNAM - Tree Data","c":[{"t":5,"p":1,"n":"Trunk Flexibility"},{"t":5,"p":1,"n":"Branch Flexibility"},{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Leaf Amplitude"},{"t":5,"p":1,"n":"Leaf Frequency"}]}]},{"t":1,"p":1,"n":"TXST - Texture Set","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":6,"s":1,"p":1,"n":"Textures (RGB\/A)","c":[{"t":2,"p":1,"n":"TX00 - Difuse"},{"t":2,"p":1,"n":"TX01 - Normal\/Gloss"},{"t":2,"p":1,"n":"TX02 - Environment Mask\/Subsurface Tint"},{"t":2,"p":1,"n":"TX03 - Glow\/Detail Map"},{"t":2,"p":1,"n":"TX04 - Height"},{"t":2,"p":1,"n":"TX05 - Environment"},{"t":2,"p":1,"n":"TX06 - Multilayer"},{"t":2,"p":1,"n":"TX07 - Backlight Mask\/Specular"}]},{"t":6,"s":1,"p":1,"n":"DODT - Decal Data","c":[{"t":5,"p":1,"n":"Min Width"},{"t":5,"p":1,"n":"Max Width"},{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Depth"},{"t":5,"p":1,"n":"Shininess"},{"t":6,"p":1,"n":"Parallax","c":[{"t":5,"p":1,"n":"Scale"},{"t":3,"p":1,"n":"Passes"}]},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"},{"t":6,"p":1,"n":"Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":3,"p":1,"n":"DNAM - Flags"}]},{"t":1,"p":1,"n":"VOLI - Volumetric Lighting","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":5,"p":1,"n":"CNAM - Intensity"},{"t":5,"p":1,"n":"DNAM - Custom Color - Contribution"},{"t":5,"p":1,"n":"ENAM - Red"},{"t":5,"p":1,"n":"FNAM - Green"},{"t":5,"p":1,"n":"GNAM - Blue"},{"t":5,"p":1,"n":"HNAM - Density - Contribution"},{"t":5,"p":1,"n":"INAM - Density - Size"},{"t":5,"p":1,"n":"JNAM - Density - Wind Speed"},{"t":5,"p":1,"n":"KNAM - Density - Falling Speed"},{"t":5,"p":1,"n":"LNAM - Phase Function - Contribution"},{"t":5,"p":1,"n":"MNAM - Phase Function - Scattering"},{"t":5,"p":1,"n":"NNAM - Sampling Repartition - Range Factor"}]},{"t":1,"p":1,"n":"VTYP - Voice Type","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":3,"p":1,"n":"DNAM - Flags"}]},{"t":1,"p":1,"n":"WATR - Water","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":8,"n":"Unused","c":[{"t":2,"n":"NNAM - Noise Map"}]},{"t":3,"p":1,"n":"ANAM - Opacity"},{"t":3,"p":1,"n":"FNAM - Flags"},{"t":11,"n":"MNAM - Unused"},{"t":3,"p":1,"n":"TNAM - Material"},{"t":3,"p":1,"n":"SNAM - Open Sound"},{"t":3,"p":1,"n":"XNAM - Spell"},{"t":3,"p":1,"n":"INAM - Image Space"},{"t":3,"p":1,"n":"DATA - Damage Per Second"},{"t":6,"s":1,"p":1,"n":"DNAM - Visual Data","c":[{"t":5,"n":"Unknown"},{"t":5,"p":1,"n":"Specular Properties - Sun Specular Power"},{"t":5,"p":1,"n":"Water Properties - Reflectivity Amount"},{"t":5,"p":1,"n":"Water Properties - Fresnel Amount"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Distance - Near Plane"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Distance - Far Plane"},{"t":6,"p":1,"n":"Shallow Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Deep Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Reflection Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Displacement Simulator - Starting Size"},{"t":5,"p":1,"n":"Displacement Simulator - Force"},{"t":5,"p":1,"n":"Displacement Simulator - Velocity"},{"t":5,"p":1,"n":"Displacement Simulator - Falloff"},{"t":5,"p":1,"n":"Displacement Simulator - Dampner"},{"t":5,"p":1,"n":"Noise Properties - Noise Falloff"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Wind Direction"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Wind Speed"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Wind Speed"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Wind Speed"},{"t":5,"p":1,"n":"Fog Properties - Above Water - Fog Amount"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Amount"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Distance - Near Plane"},{"t":5,"p":1,"n":"Fog Properties - Under Water - Fog Distance - Far Plane"},{"t":5,"p":1,"n":"Water Properties - Refraction Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Specular Power"},{"t":5,"p":1,"n":"Specular Properties - Specular Radius"},{"t":5,"p":1,"n":"Specular Properties - Specular Brightness"},{"t":5,"p":1,"n":"Noise Properties - Layer One - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - UV Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer One - Amplitude Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Two - Amplitude Scale"},{"t":5,"p":1,"n":"Noise Properties - Layer Three - Amplitude Scale"},{"t":5,"p":1,"n":"Water Properties - Reflection Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Sun Sparkle Magnitude"},{"t":5,"p":1,"n":"Specular Properties - Sun Specular Magnitude"},{"t":5,"p":1,"n":"Depth Properties - Reflections"},{"t":5,"p":1,"n":"Depth Properties - Refraction"},{"t":5,"p":1,"n":"Depth Properties - Normals"},{"t":5,"p":1,"n":"Depth Properties - Specular Lighting"},{"t":5,"p":1,"n":"Specular Properties - Sun Sparkle Power"}]},{"t":11,"n":"GNAM - Unused"},{"t":6,"s":1,"p":1,"n":"NAM0 - Linear Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":6,"s":1,"p":1,"n":"NAM1 - Angular Velocity","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"},{"t":5,"p":1,"n":"Z"}]},{"t":2,"p":1,"n":"NAM2 - Noise Layer One - Noise Texture"},{"t":2,"p":1,"n":"NAM3 - Noise Layer Two - Noise Texture"},{"t":2,"p":1,"n":"NAM4 - Noise Layer Three - Noise Texture"},{"t":2,"p":1,"n":"NAM5 - Flow Normals - Noise Texture"}]},{"t":1,"p":1,"n":"WEAP - Weapon","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"VMAD - Virtual Machine Adapter","c":[{"t":3,"p":1,"n":"Version"},{"t":3,"p":1,"n":"Object Format"},{"t":7,"p":1,"n":"Scripts","c":[{"t":6,"p":1,"n":"Script","c":[{"t":2,"p":1,"n":"scriptName"},{"t":3,"p":1,"n":"Flags"},{"t":7,"p":1,"n":"Properties","c":[{"t":6,"p":1,"n":"Property","c":[{"t":2,"p":1,"n":"propertyName"},{"t":3,"p":1,"n":"Type"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]},{"t":2,"p":1,"n":"String"},{"t":3,"p":1,"n":"Int32"},{"t":5,"p":1,"n":"Float"},{"t":3,"p":1,"n":"Bool"},{"t":7,"p":1,"n":"Array of Object","c":[{"t":6,"p":1,"n":"Object v2","c":[{"t":3,"n":"Unused"},{"t":3,"p":1,"n":"Alias"},{"t":3,"p":1,"n":"FormID"}]},{"t":6,"p":1,"n":"Object v1","c":[{"t":3,"p":1,"n":"FormID"},{"t":3,"p":1,"n":"Alias"},{"t":3,"n":"Unused"}]}]},{"t":7,"p":1,"n":"Array of String","c":[{"t":2,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Int32","c":[{"t":3,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Float","c":[{"t":5,"p":1,"n":"Element"}]},{"t":7,"p":1,"n":"Array of Bool","c":[{"t":3,"p":1,"n":"Element"}]}]}]}]}]}]},{"t":6,"s":1,"p":1,"n":"OBND - Object Bounds","c":[{"t":3,"p":1,"n":"X1"},{"t":3,"p":1,"n":"Y1"},{"t":3,"p":1,"n":"Z1"},{"t":3,"p":1,"n":"X2"},{"t":3,"p":1,"n":"Y2"},{"t":3,"p":1,"n":"Z2"}]},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":6,"s":1,"p":1,"n":"Icon","c":[{"t":2,"p":1,"n":"ICON - Large Icon filename"},{"t":2,"p":1,"n":"MICO - Small Icon filename"}]},{"t":3,"p":1,"n":"EITM - Object Effect"},{"t":3,"p":1,"n":"EAMT - Enchantment Amount"},{"t":6,"s":1,"p":1,"n":"Destructable","c":[{"t":6,"p":1,"n":"DEST - Header","c":[{"t":3,"p":1,"n":"Health"},{"t":3,"p":1,"n":"DEST Count"},{"t":3,"p":1,"n":"VATS Targetable"},{"t":11,"n":"Unknown"}]},{"t":8,"p":1,"n":"Stages","c":[{"t":6,"p":1,"n":"Stage","c":[{"t":6,"p":1,"n":"DSTD - Destruction Stage Data","c":[{"t":3,"p":1,"n":"Health %"},{"t":3,"p":1,"n":"Index"},{"t":3,"p":1,"n":"Model Damage Stage"},{"t":3,"p":1,"n":"Flags"},{"t":3,"p":1,"n":"Self Damage per Second"},{"t":3,"p":1,"n":"Explosion"},{"t":3,"p":1,"n":"Debris"},{"t":3,"p":1,"n":"Debris Count"}]},{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"DMDL - Model Filename"},{"t":11,"p":1,"n":"DMDT - Texture Files Hashes"},{"t":7,"p":1,"n":"DMDS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"p":1,"n":"DSTF - End Marker"}]}]}]},{"t":3,"p":1,"n":"ETYP - Equipment Type"},{"t":3,"p":1,"n":"BIDS - Block Bash Impact Data Set"},{"t":3,"p":1,"n":"BAMT - Alternate Block Material"},{"t":3,"p":1,"n":"YNAM - Sound - Pick Up"},{"t":3,"p":1,"n":"ZNAM - Sound - Put Down"},{"t":3,"n":"KSIZ - Keyword Count"},{"t":7,"p":1,"n":"KWDA - Keywords","c":[{"t":3,"p":1,"n":"Keyword"}]},{"t":2,"p":1,"n":"DESC - Description"},{"t":6,"s":1,"p":1,"n":"Has Scope","c":[{"t":2,"p":1,"n":"MOD3 - Model Filename"},{"t":11,"p":1,"n":"MO3T - Texture Files Hashes"},{"t":7,"p":1,"n":"MO3S - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]},{"t":11,"n":"NNAM - Unused"},{"t":3,"p":1,"n":"INAM - Impact Data Set"},{"t":3,"p":1,"n":"WNAM - 1st Person Model Object"},{"t":3,"p":1,"n":"SNAM - Attack Sound"},{"t":3,"p":1,"n":"XNAM - Attack Sound 2D"},{"t":3,"p":1,"n":"NAM7 - Attack Loop Sound"},{"t":3,"p":1,"n":"TNAM - Attack Fail Sound"},{"t":3,"p":1,"n":"UNAM - Idle Sound"},{"t":3,"p":1,"n":"NAM9 - Equip Sound"},{"t":3,"p":1,"n":"NAM8 - Unequip Sound"},{"t":6,"s":1,"p":1,"n":"DATA - Game Data","c":[{"t":3,"p":1,"n":"Value"},{"t":5,"p":1,"n":"Weight"},{"t":3,"p":1,"n":"Damage"}]},{"t":6,"s":1,"p":1,"n":"DNAM - Data","c":[{"t":3,"p":1,"n":"Animation Type"},{"t":11,"n":"Unused"},{"t":5,"p":1,"n":"Speed"},{"t":5,"p":1,"n":"Reach"},{"t":3,"p":1,"n":"Flags"},{"t":5,"p":1,"n":"Sight FOV"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Base VATS To-Hit Chance"},{"t":3,"p":1,"n":"Attack Animation"},{"t":3,"p":1,"n":"# Projectiles"},{"t":3,"p":1,"n":"Embedded Weapon AV (unused)"},{"t":5,"p":1,"n":"Range Min"},{"t":5,"p":1,"n":"Range Max"},{"t":3,"p":1,"n":"On Hit"},{"t":3,"p":1,"n":"Flags2"},{"t":5,"p":1,"n":"Animation Attack Mult"},{"t":5,"p":1,"n":"Rumble - Left Motor Strength"},{"t":5,"p":1,"n":"Rumble - Right Motor Strength"},{"t":5,"p":1,"n":"Rumble - Duration"},{"t":3,"p":1,"n":"Skill"},{"t":3,"p":1,"n":"Resist"},{"t":5,"p":1,"n":"Stagger"}]},{"t":6,"s":1,"p":1,"n":"CRDT - Critical Data","c":[{"t":3,"p":1,"n":"Damage"},{"t":11,"n":"Unknown"},{"t":5,"p":1,"n":"% Mult"},{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unused"},{"t":3,"p":1,"n":"Effect"}]},{"t":3,"p":1,"n":"VNAM - Detection Sound Level"},{"t":3,"p":1,"n":"CNAM - Template"}]},{"t":1,"p":1,"n":"WOOP - Word of Power","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"FULL - Name"},{"t":2,"p":1,"n":"TNAM - Translation"}]},{"t":1,"p":1,"n":"WRLD - Worldspace","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":8,"n":"Unused RNAM","c":[{"t":6,"n":"RNAM - Grid","c":[{"t":3,"n":"Y"},{"t":3,"n":"X"},{"t":7,"n":"References","c":[{"t":6,"n":"Reference","c":[{"t":3,"n":"Ref"},{"t":3,"n":"Y"},{"t":3,"n":"X"}]}]}]}]},{"t":11,"n":"MHDT - Max Height Data"},{"t":2,"p":1,"n":"FULL - Name"},{"t":6,"s":1,"p":1,"n":"WCTR - Fixed Dimensions Center Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":3,"p":1,"n":"LTMP - Interior Lighting"},{"t":3,"p":1,"n":"XEZN - Encounter Zone"},{"t":3,"p":1,"n":"XLCN - Location"},{"t":6,"s":1,"p":1,"n":"Parent","c":[{"t":3,"p":1,"n":"WNAM - Worldspace"},{"t":6,"p":1,"n":"PNAM - ","c":[{"t":3,"p":1,"n":"Flags"},{"t":11,"n":"Unknown"}]}]},{"t":3,"p":1,"n":"CNAM - Climate"},{"t":3,"p":1,"n":"NAM2 - Water"},{"t":3,"p":1,"n":"NAM3 - LOD Water Type"},{"t":5,"p":1,"n":"NAM4 - LOD Water Height"},{"t":6,"s":1,"p":1,"n":"DNAM - Land Data","c":[{"t":5,"p":1,"n":"Default Land Height"},{"t":5,"p":1,"n":"Default Water Height"}]},{"t":2,"p":1,"n":"ICON - Map Image"},{"t":6,"s":1,"p":1,"n":"Cloud Model","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":6,"s":1,"p":1,"n":"MNAM - Map Data","c":[{"t":6,"p":1,"n":"Usable Dimensions","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"Cell Coordinates","c":[{"t":6,"p":1,"n":"NW Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"SE Cell","c":[{"t":3,"p":1,"n":"X"},{"t":3,"p":1,"n":"Y"}]}]},{"t":6,"p":1,"n":"Camera Data","c":[{"t":5,"p":1,"n":"Min Height"},{"t":5,"p":1,"n":"Max Height"},{"t":5,"p":1,"n":"Initial Pitch"}]}]},{"t":6,"s":1,"p":1,"n":"ONAM - World Map Offset Data","c":[{"t":5,"p":1,"n":"World Map Scale"},{"t":5,"p":1,"n":"Cell X Offset"},{"t":5,"p":1,"n":"Cell Y Offset"},{"t":5,"p":1,"n":"Cell Z Offset"}]},{"t":5,"p":1,"n":"NAMA - Distant LOD Multiplier"},{"t":3,"p":1,"n":"DATA - Flags"},{"t":6,"s":1,"p":1,"n":"Object Bounds","c":[{"t":6,"p":1,"n":"NAM0 - Min","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]},{"t":6,"p":1,"n":"NAM9 - Max","c":[{"t":5,"p":1,"n":"X"},{"t":5,"p":1,"n":"Y"}]}]},{"t":3,"p":1,"n":"ZNAM - Music"},{"t":2,"p":1,"n":"NNAM - Canopy Shadow (unused)"},{"t":2,"p":1,"n":"XNAM - Water Noise Texture"},{"t":2,"p":1,"n":"TNAM - HD LOD Diffuse Texture"},{"t":2,"p":1,"n":"UNAM - HD LOD Normal Texture"},{"t":2,"p":1,"n":"XWEM - Water Environment Map (unused)"},{"t":11,"n":"OFST - Offset Data"}]},{"t":1,"p":1,"n":"WTHR - Weather","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":2,"p":1,"n":"00TX - Cloud Texture Layer #0"},{"t":2,"p":1,"n":"10TX - Cloud Texture Layer #1"},{"t":2,"p":1,"n":"20TX - Cloud Texture Layer #2"},{"t":2,"p":1,"n":"30TX - Cloud Texture Layer #3"},{"t":2,"p":1,"n":"40TX - Cloud Texture Layer #4"},{"t":2,"p":1,"n":"50TX - Cloud Texture Layer #5"},{"t":2,"p":1,"n":"60TX - Cloud Texture Layer #6"},{"t":2,"p":1,"n":"70TX - Cloud Texture Layer #7"},{"t":2,"p":1,"n":"80TX - Cloud Texture Layer #8"},{"t":2,"p":1,"n":"90TX - Cloud Texture Layer #9"},{"t":2,"p":1,"n":":0TX - Cloud Texture Layer #10"},{"t":2,"p":1,"n":";0TX - Cloud Texture Layer #11"},{"t":2,"p":1,"n":"<0TX - Cloud Texture Layer #12"},{"t":2,"p":1,"n":"=0TX - Cloud Texture Layer #13"},{"t":2,"p":1,"n":">0TX - Cloud Texture Layer #14"},{"t":2,"p":1,"n":"?0TX - Cloud Texture Layer #15"},{"t":2,"p":1,"n":"@0TX - Cloud Texture Layer #16"},{"t":2,"p":1,"n":"A0TX - Cloud Texture Layer #17"},{"t":2,"p":1,"n":"B0TX - Cloud Texture Layer #18"},{"t":2,"p":1,"n":"C0TX - Cloud Texture Layer #19"},{"t":2,"p":1,"n":"D0TX - Cloud Texture Layer #20"},{"t":2,"p":1,"n":"E0TX - Cloud Texture Layer #21"},{"t":2,"p":1,"n":"F0TX - Cloud Texture Layer #22"},{"t":2,"p":1,"n":"G0TX - Cloud Texture Layer #23"},{"t":2,"p":1,"n":"H0TX - Cloud Texture Layer #24"},{"t":2,"p":1,"n":"I0TX - Cloud Texture Layer #25"},{"t":2,"p":1,"n":"J0TX - Cloud Texture Layer #26"},{"t":2,"p":1,"n":"K0TX - Cloud Texture Layer #27"},{"t":2,"p":1,"n":"L0TX - Cloud Texture Layer #28"},{"t":11,"n":"DNAM - Unused"},{"t":11,"n":"CNAM - Unused"},{"t":11,"n":"ANAM - Unused"},{"t":11,"n":"BNAM - Unused"},{"t":11,"n":"LNAM - Unknown"},{"t":3,"p":1,"n":"MNAM - Precipitation Type"},{"t":3,"p":1,"n":"NNAM - Visual Effect"},{"t":11,"n":"ONAM - Unused"},{"t":6,"s":1,"p":1,"n":"Cloud Speed","c":[{"t":7,"p":1,"n":"RNAM - Y Speed","c":[{"t":3,"p":1,"n":"Layer"}]},{"t":7,"p":1,"n":"QNAM - X Speed","c":[{"t":3,"p":1,"n":"Layer"}]}]},{"t":7,"s":1,"p":1,"n":"PNAM - Cloud Colors","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":7,"s":1,"p":1,"n":"JNAM - Cloud Alphas","c":[{"t":6,"p":1,"n":"Layer","c":[{"t":5,"p":1,"n":"Sunrise"},{"t":5,"p":1,"n":"Day"},{"t":5,"p":1,"n":"Sunset"},{"t":5,"p":1,"n":"Night"}]}]},{"t":6,"s":1,"p":1,"n":"NAM0 - Weather Colors","c":[{"t":6,"p":1,"n":"Sky-Upper","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Near","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"n":"Unknown","c":[{"t":6,"n":"Sunrise","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Day","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Sunset","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"n":"Night","c":[{"t":3,"n":"Red"},{"t":3,"n":"Green"},{"t":3,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sunlight","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Stars","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky-Lower","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Horizon","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Effect Lighting","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Diffuse","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Cloud LOD Ambient","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Fog Far","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sky Statics","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Water Multiplier","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Sun Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Moon Glare","c":[{"t":6,"p":1,"n":"Sunrise","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Day","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Sunset","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Night","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]}]},{"t":6,"s":1,"p":1,"n":"FNAM - Fog Distance","c":[{"t":5,"p":1,"n":"Day - Near"},{"t":5,"p":1,"n":"Day - Far"},{"t":5,"p":1,"n":"Night - Near"},{"t":5,"p":1,"n":"Night - Far"},{"t":5,"p":1,"n":"Day - Power"},{"t":5,"p":1,"n":"Night - Power"},{"t":5,"p":1,"n":"Day - Max"},{"t":5,"p":1,"n":"Night - Max"}]},{"t":6,"s":1,"p":1,"n":"DATA - Data","c":[{"t":3,"p":1,"n":"Wind Speed"},{"t":11,"n":"Unknown"},{"t":3,"p":1,"n":"Trans Delta"},{"t":3,"p":1,"n":"Sun Glare"},{"t":3,"p":1,"n":"Sun Damage"},{"t":3,"p":1,"n":"Precipitation - Begin Fade In"},{"t":3,"p":1,"n":"Precipitation - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Begin Fade In"},{"t":3,"p":1,"n":"Thunder\/Lightning - End Fade Out"},{"t":3,"p":1,"n":"Thunder\/Lightning - Frequency"},{"t":3,"p":1,"n":"Flags"},{"t":6,"p":1,"n":"Lightning Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"}]},{"t":3,"p":1,"n":"Visual Effect - Begin"},{"t":3,"p":1,"n":"Visual Effect - End"},{"t":3,"p":1,"n":"Wind Direction"},{"t":3,"p":1,"n":"Wind Direction Range"}]},{"t":3,"p":1,"n":"NAM1 - Disabled Cloud Layers"},{"t":8,"s":1,"p":1,"n":"Sounds","d":1,"c":[{"t":6,"p":1,"n":"SNAM - Sound","c":[{"t":3,"p":1,"n":"Sound"},{"t":3,"p":1,"n":"Type"}]}]},{"t":8,"s":1,"p":1,"n":"Sky Statics","d":1,"c":[{"t":3,"p":1,"n":"TNAM - Static"}]},{"t":6,"s":1,"p":1,"n":"IMSP - Image Spaces","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"}]},{"t":6,"s":1,"p":1,"n":"HNAM - Volumetric Lighting","c":[{"t":3,"p":1,"n":"Sunrise"},{"t":3,"p":1,"n":"Day"},{"t":3,"p":1,"n":"Sunset"},{"t":3,"p":1,"n":"Night"}]},{"t":6,"s":1,"p":1,"n":"Directional Ambient Lighting Colors","c":[{"t":6,"p":1,"n":"DALC - Sunrise","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Day","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Sunset","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]},{"t":6,"p":1,"n":"DALC - Night","c":[{"t":6,"p":1,"n":"Directional","c":[{"t":6,"p":1,"n":"X+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"X-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Y-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z+","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":6,"p":1,"n":"Z-","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]}]},{"t":6,"p":1,"n":"Specular","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unused"}]},{"t":5,"p":1,"n":"Scale"}]}]},{"t":11,"n":"NAM2 - Unused"},{"t":11,"n":"NAM3 - Unused"},{"t":6,"s":1,"p":1,"n":"Aurora","c":[{"t":6,"p":1,"n":"Model","c":[{"t":2,"p":1,"n":"MODL - Model Filename"},{"t":11,"p":1,"n":"MODT - Texture Files Hashes"},{"t":7,"p":1,"n":"MODS - Alternate Textures","c":[{"t":6,"p":1,"n":"Alternate Texture","c":[{"t":2,"p":1,"n":"3D Name"},{"t":3,"p":1,"n":"New Texture"},{"t":3,"p":1,"n":"3D Index"}]}]}]}]},{"t":3,"p":1,"n":"GNAM - Sun Glare Lens Flare"}]},{"t":1,"p":1,"n":"AACT - Action","d":1,"c":[{"t":2,"p":1,"n":"EDID - Editor ID"},{"t":6,"s":1,"p":1,"n":"CNAM - Color","c":[{"t":3,"p":1,"n":"Red"},{"t":3,"p":1,"n":"Green"},{"t":3,"p":1,"n":"Blue"},{"t":11,"n":"Unknown"}]}]}]},"name":"Smash.All.old","hash":"4380CF09","color":128}
\ No newline at end of file
diff --git a/frontend/smash.res b/frontend/smash.res
old mode 100644
new mode 100755
diff --git a/lib/loggerpro b/lib/loggerpro
new file mode 160000
index 0000000..e7f2608
--- /dev/null
+++ b/lib/loggerpro
@@ -0,0 +1 @@
+Subproject commit e7f2608a7b4afabc3f9ca966ef88d923e44e7dcd
diff --git a/lib/mte/CRC32.pas b/lib/mte/CRC32.pas
old mode 100644
new mode 100755
index a7eaff5..51255df
--- a/lib/mte/CRC32.pas
+++ b/lib/mte/CRC32.pas
@@ -1,6 +1,7 @@
unit CRC32;
interface
+
type
Long = record
LoWord: Word;
@@ -8,16 +9,17 @@ Long = record
end;
// exported functions
- function FileCRC32(FileName: string): string;
- function StrCRC32(input: string): string;
+function FileCRC32(FileName: string): string;
+function StrCRC32(input: string): string;
const
CRCPOLY = $EDB88320;
var
- CRCTable: array[0..512] Of Longint;
+ CRCTable: array [0 .. 512] Of Longint;
implementation
+
{$WARNINGS OFF}
uses
@@ -38,20 +40,21 @@ procedure BuildCRCTable;
else
r := r shr 1;
CRCTable[i] := r;
- end;
+ end;
end;
function RecountCRC(b: byte; CrcOld: Longint): Longint;
begin
- RecountCRC := CRCTable[byte(CrcOld xor Longint(b))] xor ((CrcOld shr 8) and $00FFFFFF)
+ RecountCRC := CRCTable[byte(CrcOld xor Longint(b))
+ ] xor ((CrcOld shr 8) and $00FFFFFF)
end;
function HextW(w: Word): string;
const
- h: array[0..15] Of char = '0123456789ABCDEF';
+ h: array [0 .. 15] Of char = '0123456789ABCDEF';
begin
HextW := '';
- HextW := h[Hi(w) shr 4] + h[Hi(w) and $F] + h[Lo(w) shr 4]+h[Lo(w) and $F];
+ HextW := h[Hi(w) shr 4] + h[Hi(w) and $F] + h[Lo(w) shr 4] + h[Lo(w) and $F];
end;
function HextL(l: Longint): string;
@@ -63,8 +66,8 @@ function HextL(l: Longint): string;
function FileCRC32(FileName: string): string;
var
Buffer: PChar;
- F: File of Byte;
- B: array[0..255] of Byte;
+ F: File of byte;
+ b: array [0 .. 255] of byte;
CRC: Longint;
e, i: Integer;
begin
@@ -73,14 +76,14 @@ function FileCRC32(FileName: string): string;
AssignFile(F, FileName);
FileMode := 0;
Reset(F);
- GetMem(Buffer, SizeOf(B));
+ GetMem(Buffer, SizeOf(b));
repeat
- FillChar(B, SizeOf(B), 0);
- BlockRead(F, B, SizeOf(B), e);
- for i := 0 to (e-1) do
+ FillChar(b, SizeOf(b), 0);
+ BlockRead(F, b, SizeOf(b), e);
+ for i := 0 to (e - 1) do
CRC := RecountCRC(b[i], CRC);
until (e < 255) or (IOresult <> 0);
- FreeMem(Buffer, SizeOf(B));
+ FreeMem(Buffer, SizeOf(b));
CloseFile(F);
CRC := Not CRC;
Result := HextL(CRC);
@@ -88,15 +91,15 @@ function FileCRC32(FileName: string): string;
function StrCRC32(input: string): string;
var
- B: TArray;
+ b: TArray;
CRC: Longint;
i: Integer;
begin
BuildCRCTable;
CRC := $FFFFFFFF;
- B := TEncoding.UTF8.GetBytes(input);
- for i := 0 to Pred(Length(B)) do
- CRC := RecountCRC(B[i], CRC);
+ b := TEncoding.UTF8.GetBytes(input);
+ for i := 0 to Pred(Length(b)) do
+ CRC := RecountCRC(b[i], CRC);
CRC := Not CRC;
Result := HextL(CRC);
end;
diff --git a/lib/mte/RttiIni.pas b/lib/mte/RttiIni.pas
old mode 100644
new mode 100755
index 033b689..a96aea2
--- a/lib/mte/RttiIni.pas
+++ b/lib/mte/RttiIni.pas
@@ -14,16 +14,16 @@ IniSectionAttribute = class(TCustomAttribute)
property Section: string read FSection write FSection;
end;
- TRttiIni = class (TObject)
+ TRttiIni = class(TObject)
private
- class function ReadValue(section: string; var ini: TMemIniFile;
+ class function ReadValue(Section: string; var ini: TMemIniFile;
field: TRttiField): TValue;
- class procedure WriteValue(section: string; var ini: TMemIniFile;
+ class procedure WriteValue(Section: string; var ini: TMemIniFile;
field: TRttiField; aValue: TValue);
class function GetIniAttribute(Obj: TRttiObject): IniSectionAttribute;
public
- class procedure Load(filename: string; obj: TObject);
- class procedure Save(filename: string; obj: TObject);
+ class procedure Load(filename: string; Obj: TObject);
+ class procedure Save(filename: string; Obj: TObject);
end;
implementation
@@ -37,113 +37,116 @@ constructor IniSectionAttribute.Create(const aSection: String);
{ TIniPersist }
class function TRttiIni.GetIniAttribute(Obj: TRttiObject): IniSectionAttribute;
var
- Attr: TCustomAttribute;
+ Attr: TCustomAttribute;
begin
- for Attr in Obj.GetAttributes do begin
+ for Attr in Obj.GetAttributes do
+ begin
if Attr is IniSectionAttribute then
exit(IniSectionAttribute(Attr));
end;
result := nil;
end;
-class procedure TRttiIni.Load(filename: string; obj: TObject);
+class procedure TRttiIni.Load(filename: string; Obj: TObject);
var
ctx: TRttiContext;
objType: TRttiType;
- Field: TRttiField;
+ field: TRttiField;
IniSection: IniSectionAttribute;
- Ini: TMemIniFile;
+ ini: TMemIniFile;
CurrentSection: string;
value: TValue;
begin
ctx := TRttiContext.Create;
try
- Ini := TMemIniFile.Create(FileName);
+ ini := TMemIniFile.Create(filename);
try
objType := ctx.GetType(Obj.ClassInfo);
- for Field in objType.GetFields do begin
- IniSection := GetIniAttribute(Field);
+ for field in objType.GetFields do
+ begin
+ IniSection := GetIniAttribute(field);
if Assigned(IniSection) then
CurrentSection := IniSection.Section;
- value := ReadValue(CurrentSection, ini, Field);
+ value := ReadValue(CurrentSection, ini, field);
if not value.IsEmpty then
- field.SetValue(obj, value);
+ field.SetValue(Obj, value);
end;
finally
- Ini.Free;
+ ini.Free;
end;
finally
ctx.Free;
end;
end;
-class function TRttiIni.ReadValue(section: string; var ini: TMemIniFile;
+class function TRttiIni.ReadValue(Section: string; var ini: TMemIniFile;
field: TRttiField): TValue;
var
fieldType: string;
begin
- Result := TValue.Empty;
- fieldType := field.FieldType.Name;
+ result := TValue.Empty;
+ fieldType := field.fieldType.Name;
// exit if value doesn't exist in ini being loaded
// this allows us to use default values from the object's constructor
- if not ini.ValueExists(section, field.Name) then
+ if not ini.ValueExists(Section, field.Name) then
exit;
// load string, Integer, and Boolean fields from ini
if fieldType = 'string' then
- Result := TValue.From(ini.ReadString(section, field.Name, ''))
+ result := TValue.From(ini.ReadString(Section, field.Name, ''))
else if fieldType = 'Integer' then
- Result := TValue.From(ini.ReadInteger(section, field.Name, 0))
+ result := TValue.From(ini.ReadInteger(Section, field.Name, 0))
else if fieldType = 'Int64' then
- Result := TValue.From(ini.ReadInteger(section, field.Name, 0))
+ result := TValue.From(ini.ReadInteger(Section, field.Name, 0))
else if fieldType = 'TDateTime' then
- Result := TValue.From(ini.ReadFloat(section, field.Name, 0))
+ result := TValue.From(ini.ReadFloat(Section, field.Name, 0))
else if fieldType = 'Boolean' then
- Result := TValue.From(ini.ReadBool(section, field.Name, false));
+ result := TValue.From(ini.ReadBool(Section, field.Name, false));
end;
-class procedure TRttiIni.WriteValue(section: string; var ini: TMemIniFile;
+class procedure TRttiIni.WriteValue(Section: string; var ini: TMemIniFile;
field: TRttiField; aValue: TValue);
var
fieldType: string;
begin
- fieldType := field.FieldType.Name;
+ fieldType := field.fieldType.Name;
if fieldType = 'string' then
- ini.WriteString(section, field.Name, aValue.AsString)
+ ini.WriteString(Section, field.Name, aValue.AsString)
else if fieldType = 'Integer' then
- ini.WriteInteger(section, field.Name, aValue.AsInteger)
+ ini.WriteInteger(Section, field.Name, aValue.AsInteger)
else if fieldType = 'Int64' then
- ini.WriteInteger(section, field.Name, aValue.AsInt64)
+ ini.WriteInteger(Section, field.Name, aValue.AsInt64)
else if fieldType = 'TDateTime' then
- ini.WriteFloat(section, field.Name, aValue.AsType)
+ ini.WriteFloat(Section, field.Name, aValue.AsType)
else if fieldType = 'Boolean' then
- ini.WriteBool(section, field.Name, aValue.AsBoolean)
+ ini.WriteBool(Section, field.Name, aValue.AsBoolean)
end;
-class procedure TRttiIni.Save(filename: string; obj: TObject);
+class procedure TRttiIni.Save(filename: string; Obj: TObject);
var
- ctx: TRttiContext;
- objType: TRttiType;
- field: TRttiField;
- IniSection: IniSectionAttribute;
- ini: TMemIniFile;
- CurrentSection: string;
+ ctx: TRttiContext;
+ objType: TRttiType;
+ field: TRttiField;
+ IniSection: IniSectionAttribute;
+ ini: TMemIniFile;
+ CurrentSection: string;
begin
ctx := TRttiContext.Create;
try
- ini := TMemIniFile.Create(FileName);
+ ini := TMemIniFile.Create(filename);
try
objType := ctx.GetType(Obj.ClassInfo);
- for field in objType.GetFields do begin
- IniSection := GetIniAttribute(Field);
+ for field in objType.GetFields do
+ begin
+ IniSection := GetIniAttribute(field);
if Assigned(IniSection) then
CurrentSection := IniSection.Section;
- WriteValue(CurrentSection, ini, field, Field.GetValue(obj));
+ WriteValue(CurrentSection, ini, field, field.GetValue(Obj));
end;
finally
- Ini.UpdateFile;
- Ini.Free;
+ ini.UpdateFile;
+ ini.Free;
end;
finally
ctx.Free;
diff --git a/lib/mte/RttiJson.pas b/lib/mte/RttiJson.pas
old mode 100644
new mode 100755
index c2c6fcf..84ff6c7
--- a/lib/mte/RttiJson.pas
+++ b/lib/mte/RttiJson.pas
@@ -6,9 +6,9 @@ interface
SysUtils, Rtti,
// superobject json library
superobject;
-
+
type
- TRttiJson = class (TObject)
+ TRttiJson = class(TObject)
public
class function ToJson(obj: TObject): string;
class function FromJson(json: string; classType: TClass): TObject;
@@ -25,17 +25,19 @@ class function TRttiJson.ToJson(obj: TObject): string;
date: TDateTime;
begin
jsonObj := SO;
- rtype := TRTTIContext.Create.GetType(obj.ClassType);
+ rtype := TRTTIContext.Create.GetType(obj.classType);
// loop through fields
- for field in rType.GetFields do begin
- fieldType := field.FieldType.ToString;
+ for field in rtype.GetFields do
+ begin
+ fieldType := field.fieldType.ToString;
// handle datatypes I use
if (fieldType = 'string') then
jsonObj.S[field.Name] := field.GetValue(obj).ToString
else if (fieldType = 'Integer') then
jsonObj.I[field.Name] := field.GetValue(obj).AsInteger
- else if (fieldType = 'TDateTime') then begin
+ else if (fieldType = 'TDateTime') then
+ begin
date := StrToFloat(field.GetValue(obj).ToString);
jsonObj.S[field.Name] := DateTimeToStr(date);
end;
@@ -63,14 +65,16 @@ class function TRttiJson.FromJson(json: string; classType: TClass): TObject;
Result := classType.Create;
// loop through fields
- for field in rType.GetFields do begin
- fieldType := field.FieldType.ToString;
+ for field in rtype.GetFields do
+ begin
+ fieldType := field.fieldType.ToString;
// handle datatypes I use
if (fieldType = 'string') then
field.SetValue(Result, jsonObj.S[field.Name])
else if (fieldType = 'Integer') then
field.SetValue(Result, jsonObj.I[field.Name])
- else if (fieldType = 'TDateTime') then begin
+ else if (fieldType = 'TDateTime') then
+ begin
date := StrToDateTime(jsonObj.S[field.Name]);
field.SetValue(Result, TValue.From(date));
end;
@@ -79,4 +83,4 @@ Result := classType.Create;
context.Free;
end;
-end.
\ No newline at end of file
+end.
diff --git a/lib/mte/RttiTranslation.pas b/lib/mte/RttiTranslation.pas
old mode 100644
new mode 100755
index d1391ef..4b22e78
--- a/lib/mte/RttiTranslation.pas
+++ b/lib/mte/RttiTranslation.pas
@@ -22,18 +22,18 @@ FormSectionAttribute = class(TCustomAttribute)
property Section: string read FSection write FSection;
end;
- TRttiTranslation = class (TObject)
+ TRttiTranslation = class(TObject)
private
- class function ReadValue(section: string; var sl: TStringList;
+ class function ReadValue(Section: string; var sl: TStringList;
field: TRttiField; subfield: string): string;
- class procedure WriteValue(section: string; value: string; var sl: TStringList;
- field: TRttiField; subfield: string);
+ class procedure WriteValue(Section: string; value: string;
+ var sl: TStringList; field: TRttiField; subfield: string);
class function GetPrefixAttribute(Obj: TRttiObject): FormPrefixAttribute;
class function GetSectionAttribute(Obj: TRttiObject): FormSectionAttribute;
public
- class procedure Load(filename: string; obj: TObject); overload;
- class procedure Load(var sl: TStringList; obj: TObject); overload;
- class procedure Save(filename: string; obj: TObject);
+ class procedure Load(filename: string; Obj: TObject); overload;
+ class procedure Load(var sl: TStringList; Obj: TObject); overload;
+ class procedure Save(filename: string; Obj: TObject);
end;
implementation
@@ -51,46 +51,50 @@ constructor FormSectionAttribute.Create(const aSection: String);
end;
{ TRttiTranslation }
-class function TRttiTranslation.GetPrefixAttribute(Obj: TRttiObject): FormPrefixAttribute;
+class function TRttiTranslation.GetPrefixAttribute(Obj: TRttiObject)
+ : FormPrefixAttribute;
var
Attr: TCustomAttribute;
begin
- for Attr in Obj.GetAttributes do begin
+ for Attr in Obj.GetAttributes do
+ begin
if Attr is FormPrefixAttribute then
exit(FormPrefixAttribute(Attr));
end;
result := nil;
end;
-class function TRttiTranslation.GetSectionAttribute(Obj: TRttiObject): FormSectionAttribute;
+class function TRttiTranslation.GetSectionAttribute(Obj: TRttiObject)
+ : FormSectionAttribute;
var
Attr: TCustomAttribute;
begin
- for Attr in Obj.GetAttributes do begin
+ for Attr in Obj.GetAttributes do
+ begin
if Attr is FormSectionAttribute then
exit(FormSectionAttribute(Attr));
end;
result := nil;
end;
-class procedure TRttiTranslation.Load(filename: string; obj: TObject);
+class procedure TRttiTranslation.Load(filename: string; Obj: TObject);
var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.LoadFromFile(filename);
- TRttiTranslation.Load(sl, obj);
+ TRttiTranslation.Load(sl, Obj);
finally
sl.Free;
end;
end;
-class procedure TRttiTranslation.Load(var sl: TStringList; obj: TObject);
+class procedure TRttiTranslation.Load(var sl: TStringList; Obj: TObject);
var
ctx: TRttiContext;
objType: TRttiType;
- Field: TRttiField;
+ field: TRttiField;
FormPrefix: FormPrefixAttribute;
FormSection: FormSectionAttribute;
CurrentPrefix, CurrentSection, FieldName, value: string;
@@ -109,10 +113,12 @@ class procedure TRttiTranslation.Load(var sl: TStringList; obj: TObject);
ctx := TRttiContext.Create;
try
objType := ctx.GetType(Obj.ClassInfo);
- for Field in objType.GetFields do begin
+ for field in objType.GetFields do
+ begin
// START BY FINDING FORM PREFIX, SKIP FIELDS UNTIL FOUND
- if not Assigned(FormPrefix) then begin
- FormPrefix := GetPrefixAttribute(Field);
+ if not Assigned(FormPrefix) then
+ begin
+ FormPrefix := GetPrefixAttribute(field);
if Assigned(FormPrefix) then
CurrentPrefix := FormPrefix.Prefix
else
@@ -120,7 +126,7 @@ class procedure TRttiTranslation.Load(var sl: TStringList; obj: TObject);
end;
// IF FORM SECTION, DUMP SECTION
- FormSection := GetSectionAttribute(Field);
+ FormSection := GetSectionAttribute(field);
if Assigned(FormSection) then
CurrentSection := FormSection.Section;
@@ -129,89 +135,124 @@ class procedure TRttiTranslation.Load(var sl: TStringList; obj: TObject);
continue;
// LOAD VALUES
- FieldName := Field.FieldType.Name;
- if FieldName = 'TCheckBox' then begin
- aCheckBox := TCheckBox(field.GetValue(obj).AsType);
- if Assigned(aCheckBox) then begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Caption');
- if value <> '' then aCheckBox.Caption := value;
- value := ReadValue(CurrentPrefix, sl, Field, 'Hint');
+ FieldName := field.FieldType.Name;
+ if FieldName = 'TCheckBox' then
+ begin
+ aCheckBox := TCheckBox(field.GetValue(Obj).AsType);
+ if Assigned(aCheckBox) then
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Caption');
+ if value <> '' then
+ aCheckBox.Caption := value;
+ value := ReadValue(CurrentPrefix, sl, field, 'Hint');
aCheckBox.ShowHint := value <> '';
- if aCheckBox.ShowHint then aCheckBox.Hint := value;
+ if aCheckBox.ShowHint then
+ aCheckBox.Hint := value;
end;
end
- else if FieldName = 'TButton' then begin
- aButton := TButton(field.GetValue(obj).AsType);
- if Assigned(aButton) then begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Caption');
- if value <> '' then aButton.Caption := value;
- value := ReadValue(CurrentPrefix, sl, Field, 'Hint');
+ else if FieldName = 'TButton' then
+ begin
+ aButton := TButton(field.GetValue(Obj).AsType);
+ if Assigned(aButton) then
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Caption');
+ if value <> '' then
+ aButton.Caption := value;
+ value := ReadValue(CurrentPrefix, sl, field, 'Hint');
aButton.ShowHint := value <> '';
- if aButton.ShowHint then aButton.Hint := value;
+ if aButton.ShowHint then
+ aButton.Hint := value;
end;
end
- else if FieldName = 'TLabel' then begin
- aLabel := TLabel(field.GetValue(obj).AsType);
- if Assigned(aLabel) then begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Caption');
- if value <> '' then aLabel.Caption := value;
- value := ReadValue(CurrentPrefix, sl, Field, 'Hint');
+ else if FieldName = 'TLabel' then
+ begin
+ aLabel := TLabel(field.GetValue(Obj).AsType);
+ if Assigned(aLabel) then
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Caption');
+ if value <> '' then
+ aLabel.Caption := value;
+ value := ReadValue(CurrentPrefix, sl, field, 'Hint');
aLabel.ShowHint := value <> '';
- if aLabel.ShowHint then aLabel.Hint := value;
+ if aLabel.ShowHint then
+ aLabel.Hint := value;
end;
end
- else if FieldName = 'TTabSheet' then begin
- aTabSheet := TTabSheet(field.GetValue(obj).AsType);
- if Assigned(aTabSheet) then begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Caption');
- if value <> '' then aTabSheet.Caption := value;
- value := ReadValue(CurrentPrefix, sl, Field, 'Hint');
+ else if FieldName = 'TTabSheet' then
+ begin
+ aTabSheet := TTabSheet(field.GetValue(Obj).AsType);
+ if Assigned(aTabSheet) then
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Caption');
+ if value <> '' then
+ aTabSheet.Caption := value;
+ value := ReadValue(CurrentPrefix, sl, field, 'Hint');
aTabSheet.ShowHint := value <> '';
- if aTabSheet.ShowHint then aTabSheet.Hint := value;
+ if aTabSheet.ShowHint then
+ aTabSheet.Hint := value;
end;
end
- else if FieldName = 'TGroupBox' then begin
- aGroupBox := TGroupBox(field.GetValue(obj).AsType);
- if Assigned(aGroupBox) then begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Caption');
- if value <> '' then aGroupBox.Caption := value;
- value := ReadValue(CurrentPrefix, sl, Field, 'Hint');
+ else if FieldName = 'TGroupBox' then
+ begin
+ aGroupBox := TGroupBox(field.GetValue(Obj).AsType);
+ if Assigned(aGroupBox) then
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Caption');
+ if value <> '' then
+ aGroupBox.Caption := value;
+ value := ReadValue(CurrentPrefix, sl, field, 'Hint');
aGroupBox.ShowHint := value <> '';
- if aGroupBox.ShowHint then aGroupBox.Hint := value;
+ if aGroupBox.ShowHint then
+ aGroupBox.Hint := value;
end;
end
- else if FieldName = 'TSpeedButton' then begin
- aSpeedButton := TSpeedButton(field.GetValue(obj).AsType);
- if Assigned(aSpeedButton) then begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Hint');
+ else if FieldName = 'TSpeedButton' then
+ begin
+ aSpeedButton := TSpeedButton(field.GetValue(Obj).AsType);
+ if Assigned(aSpeedButton) then
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Hint');
aSpeedButton.ShowHint := value <> '';
- if aSpeedButton.ShowHint then aSpeedButton.Hint := value;
+ if aSpeedButton.ShowHint then
+ aSpeedButton.Hint := value;
end;
end
- else if FieldName = 'TMenuItem' then begin
- aMenuItem := TMenuItem(field.GetValue(obj).AsType);
- if Assigned(aMenuItem) then begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Caption');
- if value <> '' then aMenuItem.Caption := value;
+ else if FieldName = 'TMenuItem' then
+ begin
+ aMenuItem := TMenuItem(field.GetValue(Obj).AsType);
+ if Assigned(aMenuItem) then
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Caption');
+ if value <> '' then
+ aMenuItem.Caption := value;
end;
end
- else if FieldName = 'TComboBox' then begin
- aComboBox := TComboBox(field.GetValue(obj).AsType);
- if Assigned(aComboBox) then begin
- for i := 0 to Pred(aComboBox.Items.Count) do begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Item'+IntToStr(i));
- if value <> '' then aComboBox.Items[i] := value;
+ else if FieldName = 'TComboBox' then
+ begin
+ aComboBox := TComboBox(field.GetValue(Obj).AsType);
+ if Assigned(aComboBox) then
+ begin
+ for i := 0 to Pred(aComboBox.Items.Count) do
+ begin
+ value := ReadValue(CurrentPrefix, sl, field, 'Item' + IntToStr(i));
+ if value <> '' then
+ aComboBox.Items[i] := value;
end;
end;
end
- else if FieldName = 'TListView' then begin
- aListView := TListView(field.GetValue(obj).AsType);
- if Assigned(aListView) then begin
+ else if FieldName = 'TListView' then
+ begin
+ aListView := TListView(field.GetValue(Obj).AsType);
+ if Assigned(aListView) then
+ begin
if not aListView.ShowColumnHeaders then
continue;
- for i := 0 to Pred(aListView.Columns.Count) do begin
- value := ReadValue(CurrentPrefix, sl, Field, 'Column'+IntToStr(i));
- if value <> '' then aListView.Columns[i].Caption := value;
+ for i := 0 to Pred(aListView.Columns.Count) do
+ begin
+ value := ReadValue(CurrentPrefix, sl, field,
+ 'Column' + IntToStr(i));
+ if value <> '' then
+ aListView.Columns[i].Caption := value;
end;
end;
end;
@@ -221,32 +262,32 @@ class procedure TRttiTranslation.Load(var sl: TStringList; obj: TObject);
end;
end;
-class function TRttiTranslation.ReadValue(section: string; var sl: TStringList;
+class function TRttiTranslation.ReadValue(Section: string; var sl: TStringList;
field: TRttiField; subfield: string): string;
var
- name: string;
+ Name: string;
begin
// load value from stringlist
- name := Format('%s_%s_%s', [section, field.Name, subfield]);
- Result := StringReplace(sl.Values[name], '#13#10', #13#10, [rfReplaceAll]);
+ name := Format('%s_%s_%s', [Section, field.Name, subfield]);
+ result := StringReplace(sl.Values[name], '#13#10', #13#10, [rfReplaceAll]);
end;
-class procedure TRttiTranslation.WriteValue(section: string; value: string; var sl: TStringList;
- field: TRttiField; subfield: string);
+class procedure TRttiTranslation.WriteValue(Section: string; value: string;
+ var sl: TStringList; field: TRttiField; subfield: string);
var
- name: string;
+ Name: string;
begin
if value = '' then
exit;
- name := Format('%s_%s_%s', [section, field.Name, subfield]);
+ name := Format('%s_%s_%s', [Section, field.Name, subfield]);
sl.Values[name] := StringReplace(value, #13#10, '#13#10', [rfReplaceAll]);
end;
-class procedure TRttiTranslation.Save(filename: string; obj: TObject);
+class procedure TRttiTranslation.Save(filename: string; Obj: TObject);
var
ctx: TRttiContext;
objType: TRttiType;
- Field: TRttiField;
+ field: TRttiField;
FormPrefix: FormPrefixAttribute;
FormSection: FormSectionAttribute;
sl: TStringList;
@@ -272,16 +313,19 @@ class procedure TRttiTranslation.Save(filename: string; obj: TObject);
sl.LoadFromFile(filename);
// ADD HEADER IF NEW OBJECT
- Header := Format('{ %s }', [obj.ClassName]);
+ Header := Format('{ %s }', [Obj.ClassName]);
bNewObject := sl.IndexOf(Header) = -1;
- if bNewObject then sl.Add(Header);
+ if bNewObject then
+ sl.Add(Header);
try
objType := ctx.GetType(Obj.ClassInfo);
- for Field in objType.GetFields do begin
+ for field in objType.GetFields do
+ begin
// START BY FINDING FORM PREFIX, SKIP FIELDS UNTIL FOUND
- if not Assigned(FormPrefix) then begin
- FormPrefix := GetPrefixAttribute(Field);
+ if not Assigned(FormPrefix) then
+ begin
+ FormPrefix := GetPrefixAttribute(field);
if Assigned(FormPrefix) then
CurrentPrefix := FormPrefix.Prefix
else
@@ -289,13 +333,15 @@ class procedure TRttiTranslation.Save(filename: string; obj: TObject);
end;
// IF FORM SECTION, DUMP SECTION
- FormSection := GetSectionAttribute(Field);
- if Assigned(FormSection) then begin
+ FormSection := GetSectionAttribute(field);
+ if Assigned(FormSection) then
+ begin
CurrentSection := FormSection.Section;
if CurrentSection = 'DontTranslate' then
continue;
Header := Format('{ ## %s ## }', [FormSection.Section]);
- if (sl.IndexOf(Header) = -1) then sl.Add(Header);
+ if (sl.IndexOf(Header) = -1) then
+ sl.Add(Header);
end;
// SKIP ALL ITEMS IN 'DontTranslate' SECTION
@@ -303,83 +349,104 @@ class procedure TRttiTranslation.Save(filename: string; obj: TObject);
continue;
// HANDLE COMPONENTS
- FieldName := Field.FieldType.Name;
+ FieldName := field.FieldType.Name;
// Handle TCheckBox
- if FieldName = 'TCheckBox' then begin
- aCheckBox := TCheckBox(field.GetValue(obj).AsType);
- if Assigned(aCheckBox) then begin
+ if FieldName = 'TCheckBox' then
+ begin
+ aCheckBox := TCheckBox(field.GetValue(Obj).AsType);
+ if Assigned(aCheckBox) then
+ begin
WriteValue(CurrentPrefix, aCheckBox.Caption, sl, field, 'Caption');
WriteValue(CurrentPrefix, aCheckBox.Hint, sl, field, 'Hint');
end;
end
// Handle TButton
- else if FieldName = 'TButton' then begin
- aButton := TButton(field.GetValue(obj).AsType);
- if Assigned(aButton) then begin
+ else if FieldName = 'TButton' then
+ begin
+ aButton := TButton(field.GetValue(Obj).AsType);
+ if Assigned(aButton) then
+ begin
WriteValue(CurrentPrefix, aButton.Caption, sl, field, 'Caption');
WriteValue(CurrentPrefix, aButton.Hint, sl, field, 'Hint');
end;
end
// Handle TLabel
- else if FieldName = 'TLabel' then begin
- aLabel := TLabel(field.GetValue(obj).AsType);
- if Assigned(aLabel) then begin
+ else if FieldName = 'TLabel' then
+ begin
+ aLabel := TLabel(field.GetValue(Obj).AsType);
+ if Assigned(aLabel) then
+ begin
WriteValue(CurrentPrefix, aLabel.Caption, sl, field, 'Caption');
WriteValue(CurrentPrefix, aLabel.Hint, sl, field, 'Hint');
end;
end
// Handle TTabSheet
- else if FieldName = 'TTabSheet' then begin
- aTabSheet := TTabSheet(field.GetValue(obj).AsType);
- if Assigned(aTabSheet) then begin
+ else if FieldName = 'TTabSheet' then
+ begin
+ aTabSheet := TTabSheet(field.GetValue(Obj).AsType);
+ if Assigned(aTabSheet) then
+ begin
WriteValue(CurrentPrefix, aTabSheet.Caption, sl, field, 'Caption');
WriteValue(CurrentPrefix, aTabSheet.Hint, sl, field, 'Hint');
end;
end
// Handle TGroupBox
- else if FieldName = 'TGroupBox' then begin
- aGroupBox := TGroupBox(field.GetValue(obj).AsType);
- if Assigned(aGroupBox) then begin
+ else if FieldName = 'TGroupBox' then
+ begin
+ aGroupBox := TGroupBox(field.GetValue(Obj).AsType);
+ if Assigned(aGroupBox) then
+ begin
WriteValue(CurrentPrefix, aGroupBox.Caption, sl, field, 'Caption');
WriteValue(CurrentPrefix, aGroupBox.Hint, sl, field, 'Hint');
end;
end
// Handle TSpeedButton
- else if FieldName = 'TSpeedButton' then begin
- aSpeedButton := TSpeedButton(field.GetValue(obj).AsType);
- if Assigned(aSpeedButton) then begin
- WriteValue(CurrentPrefix, aSpeedButton.Caption, sl, field, 'Caption');
+ else if FieldName = 'TSpeedButton' then
+ begin
+ aSpeedButton := TSpeedButton(field.GetValue(Obj)
+ .AsType);
+ if Assigned(aSpeedButton) then
+ begin
+ WriteValue(CurrentPrefix, aSpeedButton.Caption, sl, field,
+ 'Caption');
WriteValue(CurrentPrefix, aSpeedButton.Hint, sl, field, 'Hint');
end;
end
// Handle TMenuItem
- else if FieldName = 'TMenuItem' then begin
- aMenuItem := TMenuItem(field.GetValue(obj).AsType);
+ else if FieldName = 'TMenuItem' then
+ begin
+ aMenuItem := TMenuItem(field.GetValue(Obj).AsType);
if Assigned(aMenuItem) then
WriteValue(CurrentPrefix, aMenuItem.Caption, sl, field, 'Caption');
end
// Handle TComboBox
- else if FieldName = 'TComboBox' then begin
- aComboBox := TComboBox(field.GetValue(obj).AsType);
+ else if FieldName = 'TComboBox' then
+ begin
+ aComboBox := TComboBox(field.GetValue(Obj).AsType);
if Assigned(aComboBox) then
for i := 0 to Pred(aComboBox.Items.Count) do
- WriteValue(CurrentPrefix, aComboBox.Items[i], sl, field, 'Item'+IntToStr(i));
+ WriteValue(CurrentPrefix, aComboBox.Items[i], sl, field,
+ 'Item' + IntToStr(i));
end
// Handle TListView
- else if FieldName = 'TListView' then begin
- aListView := TListView(field.GetValue(obj).AsType);
- if Assigned(aListView) then begin
+ else if FieldName = 'TListView' then
+ begin
+ aListView := TListView(field.GetValue(Obj).AsType);
+ if Assigned(aListView) then
+ begin
if not aListView.ShowColumnHeaders then
continue;
for i := 0 to Pred(aListView.Columns.Count) do
- WriteValue(CurrentPrefix, aListView.Columns[i].Caption, sl, field, 'Column'+IntToStr(i));
+ WriteValue(CurrentPrefix, aListView.Columns[i].Caption, sl, field,
+ 'Column' + IntToStr(i));
end;
end;
end;
finally
- if bNewObject then sl.Add(' ');
+ if bNewObject then
+ sl.Add(' ');
ForceDirectories(ExtractFilePath(filename));
- sl.SaveToFile(fileName);
+ sl.SaveToFile(filename);
sl.Free;
end;
finally
diff --git a/lib/mte/W7Taskbar.pas b/lib/mte/W7Taskbar.pas
old mode 100644
new mode 100755
index 339cf89..b5e8d27
--- a/lib/mte/W7Taskbar.pas
+++ b/lib/mte/W7Taskbar.pas
@@ -9,10 +9,12 @@ interface
TTaskBarProgressState = (tbpsNone, tbpsIndeterminate, tbpsNormal, tbpsError,
tbpsPaused);
- function InitializeTaskbarAPI: boolean;
- function SetTaskbarProgressState(const AState: TTaskBarProgressState): boolean;
- function SetTaskbarProgressValue(const ACurrent: UInt64; const AMax: UInt64): boolean;
- function SetTaskbarOverlayIcon(const AIcon: THandle; const ADescription: String): boolean;
+function InitializeTaskbarAPI: boolean;
+function SetTaskbarProgressState(const AState: TTaskBarProgressState): boolean;
+function SetTaskbarProgressValue(const ACurrent: UInt64;
+ const AMax: UInt64): boolean;
+function SetTaskbarOverlayIcon(const AIcon: THandle;
+ const ADescription: String): boolean;
implementation
@@ -26,37 +28,49 @@ implementation
type
ITaskBarList3 = interface(IUnknown)
- ['{EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF}']
+ ['{EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF}']
function HrInit(): HRESULT; stdcall;
function AddTab(hwnd: THandle): HRESULT; stdcall;
function DeleteTab(hwnd: THandle): HRESULT; stdcall;
function ActivateTab(hwnd: THandle): HRESULT; stdcall;
function SetActiveAlt(hwnd: THandle): HRESULT; stdcall;
- function MarkFullscreenWindow(hwnd: THandle; fFullscreen: Boolean): HRESULT; stdcall;
- function SetProgressValue(hwnd: THandle; ullCompleted: UInt64; ullTotal: UInt64): HRESULT; stdcall;
- function SetProgressState(hwnd: THandle; tbpFlags: Cardinal): HRESULT; stdcall;
+ function MarkFullscreenWindow(hwnd: THandle; fFullscreen: boolean)
+ : HRESULT; stdcall;
+ function SetProgressValue(hwnd: THandle; ullCompleted: UInt64;
+ ullTotal: UInt64): HRESULT; stdcall;
+ function SetProgressState(hwnd: THandle; tbpFlags: Cardinal)
+ : HRESULT; stdcall;
function RegisterTab(hwnd: THandle; hwndMDI: THandle): HRESULT; stdcall;
function UnregisterTab(hwndTab: THandle): HRESULT; stdcall;
- function SetTabOrder(hwndTab: THandle; hwndInsertBefore: THandle): HRESULT; stdcall;
- function SetTabActive(hwndTab: THandle; hwndMDI: THandle; tbatFlags: Cardinal): HRESULT; stdcall;
- function ThumbBarAddButtons(hwnd: THandle; cButtons: Cardinal; pButtons: Pointer): HRESULT; stdcall;
- function ThumbBarUpdateButtons(hwnd: THandle; cButtons: Cardinal; pButtons: Pointer): HRESULT; stdcall;
- function ThumbBarSetImageList(hwnd: THandle; himl: THandle): HRESULT; stdcall;
- function SetOverlayIcon(hwnd: THandle; hIcon: THandle; pszDescription: PChar): HRESULT; stdcall;
- function SetThumbnailTooltip(hwnd: THandle; pszDescription: PChar): HRESULT; stdcall;
- function SetThumbnailClip(hwnd: THandle; var prcClip: TRect): HRESULT; stdcall;
+ function SetTabOrder(hwndTab: THandle; hwndInsertBefore: THandle)
+ : HRESULT; stdcall;
+ function SetTabActive(hwndTab: THandle; hwndMDI: THandle;
+ tbatFlags: Cardinal): HRESULT; stdcall;
+ function ThumbBarAddButtons(hwnd: THandle; cButtons: Cardinal;
+ pButtons: Pointer): HRESULT; stdcall;
+ function ThumbBarUpdateButtons(hwnd: THandle; cButtons: Cardinal;
+ pButtons: Pointer): HRESULT; stdcall;
+ function ThumbBarSetImageList(hwnd: THandle; himl: THandle)
+ : HRESULT; stdcall;
+ function SetOverlayIcon(hwnd: THandle; hIcon: THandle;
+ pszDescription: PChar): HRESULT; stdcall;
+ function SetThumbnailTooltip(hwnd: THandle; pszDescription: PChar)
+ : HRESULT; stdcall;
+ function SetThumbnailClip(hwnd: THandle; var prcClip: TRect)
+ : HRESULT; stdcall;
end;
var
TaskBarInterface: ITaskBarList3;
-function InitializeTaskbarAPI: Boolean;
+function InitializeTaskbarAPI: boolean;
var
Unknown: IInterface;
Temp: ITaskBarList3;
begin
// return true and exit if already initialized
- if Assigned(TaskBarInterface) then begin
+ if Assigned(TaskBarInterface) then
+ begin
Result := True;
Exit;
end;
@@ -64,7 +78,8 @@ function InitializeTaskbarAPI: Boolean;
// create COM object for taskbar CID
try
Unknown := CreateComObject(TASKBAR_CID);
- if Assigned(Unknown) then begin
+ if Assigned(Unknown) then
+ begin
Temp := Unknown as ITaskBarList3;
if Temp.HrInit() = S_OK then
TaskBarInterface := Temp;
@@ -91,14 +106,18 @@ function SetTaskbarProgressState(const AState: TTaskBarProgressState): boolean;
// exit if api not initialized
if not CheckAPI then
- exit;
+ Exit;
// check if state is valid, else use no progress
case AState of
- tbpsIndeterminate: Flag := TBPF_INDETERMINATE;
- tbpsNormal: Flag := TBPF_NORMAL;
- tbpsError: Flag := TBPF_ERROR;
- tbpsPaused: Flag := TBPF_PAUSED;
+ tbpsIndeterminate:
+ Flag := TBPF_INDETERMINATE;
+ tbpsNormal:
+ Flag := TBPF_NORMAL;
+ tbpsError:
+ Flag := TBPF_ERROR;
+ tbpsPaused:
+ Flag := TBPF_PAUSED;
else
Flag := TBPF_NOPROGRESS;
end;
@@ -107,34 +126,40 @@ function SetTaskbarProgressState(const AState: TTaskBarProgressState): boolean;
Result := TaskBarInterface.SetProgressState(Application.Handle, Flag) = S_OK;
end;
-function SetTaskbarProgressValue(const ACurrent:UInt64; const AMax: UInt64): boolean;
+function SetTaskbarProgressValue(const ACurrent: UInt64;
+ const AMax: UInt64): boolean;
begin
Result := False;
// exit if api not initialized
if not CheckAPI then
- exit;
+ Exit;
// set progress value
- Result := TaskBarInterface.SetProgressValue(Application.Handle, ACurrent, AMax) = S_OK;
+ Result := TaskBarInterface.SetProgressValue(Application.Handle, ACurrent,
+ AMax) = S_OK;
end;
-function SetTaskbarOverlayIcon(const AIcon: THandle; const ADescription: String): boolean;
+function SetTaskbarOverlayIcon(const AIcon: THandle;
+ const ADescription: String): boolean;
begin
Result := False;
// exit if api not initialized
if not CheckAPI then
- exit;
+ Exit;
// set icon
- Result := TaskBarInterface.SetOverlayIcon(Application.Handle, AIcon, PWideChar(ADescription)) = S_OK;
+ Result := TaskBarInterface.SetOverlayIcon(Application.Handle, AIcon,
+ PWideChar(ADescription)) = S_OK;
end;
initialization
- TaskBarInterface := nil;
+
+TaskBarInterface := nil;
finalization
- TaskBarInterface := nil;
+
+TaskBarInterface := nil;
end.
diff --git a/lib/mte/mteBase.pas b/lib/mte/mteBase.pas
old mode 100644
new mode 100755
index 42676a6..f556e60
--- a/lib/mte/mteBase.pas
+++ b/lib/mte/mteBase.pas
@@ -3,18 +3,19 @@
interface
uses
- Classes, Menus,
+ Classes, Menus, Generics.Collections,
// third party libraries
superobject,
// mte units
mteTracker,
// xEdit units
- wbHelpers, wbInterface, wbImplementation;
+ wbHelpers, wbLoadOrder, wbInterface, wbImplementation;
type
- TSmashType = ( stUnknown, stRecord, stString, stInteger, stFlag, stFloat,
+ TSmashType = (stUnknown, stRecord, stString, stInteger, stFlag, stFloat,
stStruct, stUnsortedArray, stUnsortedStructArray, stSortedArray,
- stSortedStructArray, stByteArray, stUnion );
+ stSortedStructArray, stByteArray, stUnion);
+
TBasePlugin = class(TObject)
public
_File: IwbFile;
@@ -37,74 +38,86 @@ TBasePlugin = class(TObject)
procedure GetHash;
function GetFormIndex: Integer;
end;
+
TPluginHelpers = class
- class function CreateNewBasePlugin(var list: TList; filename: string): TBasePlugin;
- class function BasePluginByFilename(var list: TList; filename: string): TBasePlugin;
- class function BasePluginLoadOrder(var list: TList; filename: string): integer;
+ class function CreateNewBasePlugin(var list: TList; filename: string)
+ : TBasePlugin;
+ class function BasePluginByFilename(var list: TList; filename: string)
+ : TBasePlugin;
+ class function BasePluginLoadOrder(var list: TList;
+ filename: string): Integer;
end;
+
THeaderHelpers = class
class procedure LoadPluginHeaders(var sl: TStringList);
class procedure GetPluginMasters(filename: string; var sl: TStringList);
- class procedure GetPluginDependencies(filename: string; var sl: TStringList);
+ class procedure GetPluginDependencies(filename: string;
+ var sl: TStringList);
end;
{ General Helper Functions }
- function etToString(et: TwbElementType): string;
- function dtToString(dt: TwbDefType): string;
- function ctToString(ct: TConflictThis): string;
- function stToString(st: TSmashType): string;
- function SmashType(def: IwbNamedDef): TSmashtype;
- function GetSmashType(element: IwbElement): TSmashType;
- function ElementByIndexedPath(e: IwbElement; ip: string): IwbElement;
- function IndexedPath(e: IwbElement): string;
- function GetAllValues(e: IwbElement): string;
- function IsSortedDef(def: IwbNamedDef): boolean;
- function IsSorted(e: IwbElement): boolean;
- function HasStructChildren(e: IwbElement): boolean;
- function HasStructChildrenDef(def: IwbNamedDef): boolean;
- function WinningOverrideInFiles(rec: IwbMainRecord;
- var sl: TStringList): IwbMainRecord;
- function IsOverride(aRecord: IwbMainRecord): boolean;
- function ExtractFormID(filename: string): string;
- function RemoveFileIndex(formID: string): string;
- function LocalFormID(aRecord: IwbMainRecord): integer;
- function LoadOrderPrefix(aRecord: IwbMainRecord): integer;
- function CountOverrides(aFile: IwbFile): integer;
- function OverrideCountInFiles(rec: IwbMainRecord; var files: TStringList): Integer;
- procedure AddRequiredBy(var lst: TList; filename: string;
- var masters: TStringList);
- procedure GetMasters(aFile: IwbFile; var sl: TStringList);
- procedure AddMasters(aFile: IwbFile; var sl: TStringList);
- function RemoveSelfOrContainer(const aElement: IwbElement): boolean;
- procedure UndeleteAndDisable(const aRecord: IwbMainRecord);
- function LoadOrderCompare(List: TStringList; Index1, Index2: Integer): Integer;
-
- { Record Prototyping Functions }
- function GetElementObj(var obj: ISuperObject; name: string): ISuperObject;
- function CreateRecordObj(var tree: ISuperObject; rec: IwbMainRecord): ISuperObject;
- function GetRecordObj(var tree: ISuperObject; name: string): ISuperObject;
- function GetRecordDef(sig: TwbSignature): TwbRecordDefEntry;
- function BuildDef(def: IwbNamedDef; name: string): ISuperObject;
- function BuildRecordDef(sName: string; mrDef: IwbRecordDef; out recObj: ISuperObject): boolean; overload;
- function BuildRecordDef(sName: string; out recObj: ISuperObject): boolean; overload;
- function GetEditableFileContainer: IwbContainerElementRef;
-
- { Plugin Error Functions }
- function FixErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
- var errors: TStringList): IwbMainRecord;
- function CheckForErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
- var errors: TStringList): IwbMainRecord;
-
- { Asset Handling Functions }
- procedure ExtractBSA(ContainerName, folder, destination: string); overload;
- procedure ExtractBSA(ContainerName, destination: string; var ignore: TStringList); overload;
- function BSAExists(filename: string): boolean;
- function INIExists(filename: string): boolean;
- function TranslationExists(filename: string): boolean;
- function FaceDataExists(filename: string): boolean;
- function VoiceDataExists(filename: string): boolean;
- function FragmentsExist(f: IwbFile): boolean;
- function ReferencesSelf(f: IwbFile): boolean;
+function etToString(et: TwbElementType): string;
+function dtToString(dt: TwbDefType): string;
+function ctToString(ct: TConflictThis): string;
+function stToString(st: TSmashType): string;
+function SmashType(def: IwbNamedDef): TSmashType;
+function GetSmashType(element: IwbElement): TSmashType;
+function ElementByIndexedPath(e: IwbElement; ip: string): IwbElement;
+function IndexedPath(e: IwbElement): string;
+function GetAllValues(e: IwbElement): string;
+function IsSortedDef(def: IwbNamedDef): boolean;
+function IsSorted(e: IwbElement): boolean;
+function HasStructChildren(e: IwbElement): boolean;
+function HasStructChildrenDef(def: IwbNamedDef): boolean;
+function WinningOverrideInFiles(rec: IwbMainRecord; var sl: TStringList)
+ : IwbMainRecord;
+procedure OverridesInMasters(rec: IwbMainRecord; var rl: TList);
+function IsOverride(aRecord: IwbMainRecord): boolean;
+function ExtractFormID(filename: string): string;
+function RemoveFileIndex(formID: string): string;
+function LocalFormID(aRecord: IwbMainRecord): Integer;
+function LoadOrderPrefix(aRecord: IwbMainRecord): Integer;
+function CountOverrides(aFile: IwbFile): Integer;
+function OverrideCountInFiles(rec: IwbMainRecord;
+ var files: TStringList): Integer;
+procedure AddRequiredBy(var lst: TList; filename: string;
+ var masters: TStringList);
+procedure GetMasters(aFile: IwbFile; var sl: TStringList);
+procedure AddMasters(aFile: IwbFile; var sl: TStringList);
+function RemoveSelfOrContainer(const aElement: IwbElement): boolean;
+procedure UndeleteAndDisable(const aRecord: IwbMainRecord);
+function LoadOrderCompare(list: TStringList; Index1, Index2: Integer): Integer;
+
+{ Record Prototyping Functions }
+function GetElementObj(var obj: ISuperObject; name: string): ISuperObject;
+function CreateRecordObj(var tree: ISuperObject; rec: IwbMainRecord)
+ : ISuperObject;
+function GetRecordObj(var tree: ISuperObject; name: string): ISuperObject;
+function GetRecordDef(sig: TwbSignature): TwbRecordDefEntry;
+function BuildDef(def: IwbNamedDef; name: string): ISuperObject;
+function BuildRecordDef(sName: string; mrDef: IwbRecordDef;
+ out recObj: ISuperObject): boolean; overload;
+function BuildRecordDef(sName: string; out recObj: ISuperObject)
+ : boolean; overload;
+function GetEditableFileContainer: IwbContainerElementRef;
+
+{ Plugin Error Functions }
+function FixErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
+ var errors: TStringList): IwbMainRecord;
+function CheckForErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
+ var errors: TStringList): IwbMainRecord;
+
+{ Asset Handling Functions }
+procedure ExtractBSA(ContainerName, folder, destination: string); overload;
+procedure ExtractBSA(ContainerName, destination: string;
+ var ignore: TStringList); overload;
+function BSAExists(filename: string): boolean;
+function INIExists(filename: string): boolean;
+function TranslationExists(filename: string): boolean;
+function FaceDataExists(filename: string): boolean;
+function VoiceDataExists(filename: string): boolean;
+function FragmentsExist(f: IwbFile): boolean;
+function ReferencesSelf(f: IwbFile): boolean;
var
PluginsList: TList;
@@ -141,13 +154,14 @@ procedure TBasePlugin.GetData(var lst: TList);
hasData := true;
// get data
- filename := _File.FileName;
+ filename := _File.filename;
Container := _File as IwbContainer;
Container := Container.Elements[0] as IwbContainer;
author := Container.GetElementEditValue('CNAM - Author');
// we have to subtract 1 because this count includes the
// file header for some reason
- numRecords := Container.GetElementNativeValue('HEDR - Header\Number of Records') - 1;
+ numRecords := Container.GetElementNativeValue
+ ('HEDR - Header\Number of Records') - 1;
// get masters, required by
GetMasters(_File, masters);
@@ -179,37 +193,33 @@ function TBasePlugin.GetFormIndex: Integer;
Result := 0;
Container := self._File as IwbContainer;
Container := Container.Elements[0] as IwbContainer;
- if Container.ElementExists['Master Files'] then begin
+ if Container.ElementExists['Master Files'] then
+ begin
MasterFiles := Container.ElementByPath['Master Files'] as IwbContainer;
Result := MasterFiles.ElementCount;
end;
end;
-
-{*****************************************************************************}
+{ ***************************************************************************** }
{ PLUGIN HELPERS
Helper methods for dealing with TBasePlugins.
}
-{*****************************************************************************}
+{ ***************************************************************************** }
{ Create a new plugin }
-class function TPluginHelpers.CreateNewBasePlugin(var list: TList; filename: string): TBasePlugin;
+class function TPluginHelpers.CreateNewBasePlugin(var list: TList;
+ filename: string): TBasePlugin;
var
aFile: IwbFile;
- LoadOrder: integer;
+ LoadOrder: Integer;
plugin: TBasePlugin;
begin
Result := nil;
LoadOrder := PluginsList.Count + 1;
- // fail if maximum load order reached
- if LoadOrder > 254 then begin
- Tracker.Write('Maximum load order reached! Can''t create file '+filename);
- exit;
- end;
// create new plugin file
SysUtils.FormatSettings.DecimalSeparator := '.';
- aFile := wbNewFile(wbDataPath + filename, LoadOrder);
+ aFile := wbNewFile(wbDataPath + filename, LoadOrder, false);
aFile._AddRef;
// create new plugin object
@@ -220,15 +230,18 @@ class function TPluginHelpers.CreateNewBasePlugin(var list: TList; filename: str
end;
{ Gets the load order of the plugin matching the given name }
-class function TPluginHelpers.BasePluginLoadOrder(var list: TList; filename: string): integer;
+class function TPluginHelpers.BasePluginLoadOrder(var list: TList;
+ filename: string): Integer;
var
- i: integer;
+ i: Integer;
plugin: TBasePlugin;
begin
Result := -1;
- for i := 0 to Pred(list.Count) do begin
+ for i := 0 to Pred(list.Count) do
+ begin
plugin := TBasePlugin(list[i]);
- if plugin.filename = filename then begin
+ if plugin.filename = filename then
+ begin
Result := i;
exit;
end;
@@ -236,15 +249,18 @@ class function TPluginHelpers.BasePluginLoadOrder(var list: TList; filename: str
end;
{ Gets a plugin matching the given name. }
-class function TPluginHelpers.BasePluginByFilename(var list: TList; filename: string): TBasePlugin;
+class function TPluginHelpers.BasePluginByFilename(var list: TList;
+ filename: string): TBasePlugin;
var
- i: integer;
+ i: Integer;
plugin: TBasePlugin;
begin
Result := nil;
- for i := 0 to Pred(list.count) do begin
+ for i := 0 to Pred(list.Count) do
+ begin
plugin := TBasePlugin(list[i]);
- if plugin.filename = filename then begin
+ if plugin.filename = filename then
+ begin
Result := plugin;
exit;
end;
@@ -261,19 +277,22 @@ class procedure THeaderHelpers.LoadPluginHeaders(var sl: TStringList);
HeaderList := TList.Create;
// load plugin headers for each plugin in @sl
- for i := 0 to Pred(sl.Count) do try
- aFile := wbFile(wbDataPath + sl[i], -1, '', False, True);
- plugin := TBasePlugin.Create;
- plugin._File := aFile;
- HeaderList.Add(plugin);
- except
- on x: Exception do begin
- Tracker.Write('Failed to load '+sl[i]);
+ for i := 0 to Pred(sl.Count) do
+ try
+ aFile := wbFile(sl[i], -1, '', [fsOnlyHeader]);
+ plugin := TBasePlugin.Create;
+ plugin._File := aFile;
+ HeaderList.Add(plugin);
+ except
+ on x: Exception do
+ begin
+ Tracker.Write('Failed to load ' + sl[i]);
+ end;
end;
- end;
// get data for each plugin in the header list
- for i := 0 to Pred(HeaderList.Count) do begin
+ for i := 0 to Pred(HeaderList.Count) do
+ begin
plugin := TBasePlugin(HeaderList[i]);
plugin.GetData(HeaderList);
end;
@@ -283,14 +302,17 @@ class procedure THeaderHelpers.GetPluginMasters(filename: string;
var sl: TStringList);
var
plugin: TBasePlugin;
- i: integer;
+ i: Integer;
begin
// get plugin
plugin := TPluginHelpers.BasePluginByFilename(HeaderList, filename);
- if not Assigned(plugin) then exit;
+ if not Assigned(plugin) then
+ exit;
// add its masters to @sl
- for i := 0 to Pred(plugin.masters.Count) do begin
- if sl.IndexOf(plugin.masters[i]) > -1 then continue;
+ for i := 0 to Pred(plugin.masters.Count) do
+ begin
+ if sl.IndexOf(plugin.masters[i]) > -1 then
+ continue;
sl.Add(plugin.masters[i]);
GetPluginMasters(plugin.masters[i], sl);
end;
@@ -300,21 +322,23 @@ class procedure THeaderHelpers.GetPluginDependencies(filename: string;
var sl: TStringList);
var
plugin: TBasePlugin;
- i: integer;
+ i: Integer;
begin
// get plugin
plugin := TPluginHelpers.BasePluginByFilename(HeaderList, filename);
- if not Assigned(plugin) then exit;
+ if not Assigned(plugin) then
+ exit;
// add its required by to @sl
- for i := 0 to Pred(plugin.requiredBy.Count) do begin
- if sl.IndexOf(plugin.requiredBy[i]) > -1 then continue;
+ for i := 0 to Pred(plugin.requiredBy.Count) do
+ begin
+ if sl.IndexOf(plugin.requiredBy[i]) > -1 then
+ continue;
sl.Add(plugin.requiredBy[i]);
GetPluginDependencies(plugin.requiredBy[i], sl);
end;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ General Helper Functions
Set of functions that read bethesda plugin files for various attributes.
@@ -332,7 +356,7 @@ class procedure THeaderHelpers.GetPluginDependencies(filename: string;
- WinningOverrideInFiles
- IsOverride
- LocalFormID
- -LoadOrderPrefix
+ -LoadOrderPrefix
- CountOverrides
- GetMasters
- AddMasters
@@ -347,25 +371,38 @@ class procedure THeaderHelpers.GetPluginDependencies(filename: string;
- PluginsModified
- CreatSEQFile
}
-{*****************************************************************************}
+{ ***************************************************************************** }
{ Converts a TwbElementType to a string }
function etToString(et: TwbElementType): string;
begin
case Ord(et) of
- Ord(etFile): Result := 'etFile';
- Ord(etMainRecord): Result := 'etMainRecord';
- Ord(etGroupRecord): Result := 'etGroupRecord';
- Ord(etSubRecord): Result := 'etSubRecord';
- Ord(etSubRecordStruct): Result := 'etSubRecordStruct';
- Ord(etSubRecordArray): Result := 'etSubRecordArray';
- Ord(etSubRecordUnion): Result := 'etSubRecordUnion';
- Ord(etArray): Result := 'etArray';
- Ord(etStruct): Result := 'etStruct';
- Ord(etValue): Result := 'etValue';
- Ord(etFlag): Result := 'etFlag';
- Ord(etStringListTerminator): Result := 'etStringListTerminator';
- Ord(etUnion): Result := 'etUnion';
+ Ord(etFile):
+ Result := 'etFile';
+ Ord(etMainRecord):
+ Result := 'etMainRecord';
+ Ord(etGroupRecord):
+ Result := 'etGroupRecord';
+ Ord(etSubRecord):
+ Result := 'etSubRecord';
+ Ord(etSubRecordStruct):
+ Result := 'etSubRecordStruct';
+ Ord(etSubRecordArray):
+ Result := 'etSubRecordArray';
+ Ord(etSubRecordUnion):
+ Result := 'etSubRecordUnion';
+ Ord(etArray):
+ Result := 'etArray';
+ Ord(etStruct):
+ Result := 'etStruct';
+ Ord(etValue):
+ Result := 'etValue';
+ Ord(etFlag):
+ Result := 'etFlag';
+ Ord(etStringListTerminator):
+ Result := 'etStringListTerminator';
+ Ord(etUnion):
+ Result := 'etUnion';
end;
end;
@@ -373,118 +410,184 @@ function etToString(et: TwbElementType): string;
function dtToString(dt: TwbDefType): string;
begin
case Ord(dt) of
- Ord(dtRecord): Result := 'dtRecord';
- Ord(dtSubRecord): Result := 'dtSubRecord';
- Ord(dtSubRecordArray): Result := 'dtSubRecordArray';
- Ord(dtSubRecordStruct): Result := 'dtSubRecordStruct';
- Ord(dtSubRecordUnion): Result := 'dtSubRecordUnion';
- Ord(dtString): Result := 'dtString';
- Ord(dtLString): Result := 'dtLString';
- Ord(dtLenString): Result := 'dtLenString';
- Ord(dtByteArray): Result := 'dtByteArray';
- Ord(dtInteger): Result := 'dtInteger';
- Ord(dtIntegerFormater): Result := 'dtIntegerFormatter';
- Ord(dtFloat): Result := 'dtFloat';
- Ord(dtArray): Result := 'dtArray';
- Ord(dtStruct): Result := 'dtStruct';
- Ord(dtUnion): Result := 'dtUnion';
- Ord(dtEmpty): Result := 'dtEmpty';
+ Ord(dtRecord):
+ Result := 'dtRecord';
+ Ord(dtSubRecord):
+ Result := 'dtSubRecord';
+ Ord(dtSubRecordArray):
+ Result := 'dtSubRecordArray';
+ Ord(dtSubRecordStruct):
+ Result := 'dtSubRecordStruct';
+ Ord(dtSubRecordUnion):
+ Result := 'dtSubRecordUnion';
+ Ord(dtString):
+ Result := 'dtString';
+ Ord(dtLString):
+ Result := 'dtLString';
+ Ord(dtLenString):
+ Result := 'dtLenString';
+ Ord(dtByteArray):
+ Result := 'dtByteArray';
+ Ord(dtInteger):
+ Result := 'dtInteger';
+ Ord(dtIntegerFormater):
+ Result := 'dtIntegerFormatter';
+ Ord(dtFloat):
+ Result := 'dtFloat';
+ Ord(dtArray):
+ Result := 'dtArray';
+ Ord(dtStruct):
+ Result := 'dtStruct';
+ Ord(dtUnion):
+ Result := 'dtUnion';
+ Ord(dtEmpty):
+ Result := 'dtEmpty';
end;
end;
function ctToString(ct: TConflictThis): string;
begin
case Ord(ct) of
- Ord(ctUnknown): Result := 'ctUnknown';
- Ord(ctIgnored): Result := 'ctIgnored';
- Ord(ctNotDefined): Result := 'ctNotDefined';
- Ord(ctIdenticalToMaster): Result := 'ctIdenticalToMaster';
- Ord(ctOnlyOne): Result := 'ctOnlyOne';
- Ord(ctHiddenByModGroup): Result := 'ctHiddenByModGroup';
- Ord(ctMaster): Result := 'ctMaster';
- Ord(ctConflictBenign): Result := 'ctConflictBenign';
- Ord(ctOverride): Result := 'ctOverride';
- Ord(ctIdenticalToMasterWinsConflict): Result := 'ctIdenticalToMasterWinsConflict';
- Ord(ctConflictWins): Result := 'ctConflictWins';
- Ord(ctConflictLoses): Result := 'ctConflictLoses';
+ Ord(ctUnknown):
+ Result := 'ctUnknown';
+ Ord(ctIgnored):
+ Result := 'ctIgnored';
+ Ord(ctNotDefined):
+ Result := 'ctNotDefined';
+ Ord(ctIdenticalToMaster):
+ Result := 'ctIdenticalToMaster';
+ Ord(ctOnlyOne):
+ Result := 'ctOnlyOne';
+ Ord(ctHiddenByModGroup):
+ Result := 'ctHiddenByModGroup';
+ Ord(ctMaster):
+ Result := 'ctMaster';
+ Ord(ctConflictBenign):
+ Result := 'ctConflictBenign';
+ Ord(ctOverride):
+ Result := 'ctOverride';
+ Ord(ctIdenticalToMasterWinsConflict):
+ Result := 'ctIdenticalToMasterWinsConflict';
+ Ord(ctConflictWins):
+ Result := 'ctConflictWins';
+ Ord(ctConflictLoses):
+ Result := 'ctConflictLoses';
end;
end;
function stToString(st: TSmashType): string;
begin
case Ord(st) of
- Ord(stUnknown): Result := 'Unknown';
- Ord(stRecord): Result := 'Record';
- Ord(stString): Result := 'String';
- Ord(stInteger): Result := 'Integer';
- Ord(stFlag): Result := 'Flag';
- Ord(stFloat): Result := 'Float';
- Ord(stStruct): Result := 'Struct';
- Ord(stUnsortedArray): Result := 'Unsorted Array';
- Ord(stUnsortedStructArray): Result := 'Unsorted Struct Array';
- Ord(stSortedArray): Result := 'Sorted Array';
- Ord(stSortedStructArray): Result := 'Sorted Struct Array';
- Ord(stByteArray): Result := 'Byte Array';
- Ord(stUnion): Result := 'Union';
- else Result := 'Unknown';
+ Ord(stUnknown):
+ Result := 'Unknown';
+ Ord(stRecord):
+ Result := 'Record';
+ Ord(stString):
+ Result := 'String';
+ Ord(stInteger):
+ Result := 'Integer';
+ Ord(stFlag):
+ Result := 'Flag';
+ Ord(stFloat):
+ Result := 'Float';
+ Ord(stStruct):
+ Result := 'Struct';
+ Ord(stUnsortedArray):
+ Result := 'Unsorted Array';
+ Ord(stUnsortedStructArray):
+ Result := 'Unsorted Struct Array';
+ Ord(stSortedArray):
+ Result := 'Sorted Array';
+ Ord(stSortedStructArray):
+ Result := 'Sorted Struct Array';
+ Ord(stByteArray):
+ Result := 'Byte Array';
+ Ord(stUnion):
+ Result := 'Union';
+ else
+ Result := 'Unknown';
end;
end;
-function SmashType(def: IwbNamedDef): TSmashtype;
+function SmashType(def: IwbNamedDef): TSmashType;
var
subDef: IwbSubRecordDef;
dt: TwbDefType;
bIsSorted, bHasStructChildren: boolean;
begin
dt := def.DefType;
- if Supports(def, IwbSubrecordDef, subDef) then
+ if Supports(def, IwbSubRecordDef, subDef) then
dt := subDef.GetValue.DefType;
case Ord(dt) of
- Ord(dtRecord): Result := stRecord;
- Ord(dtSubRecord): Result := stUnknown;
- Ord(dtSubRecordStruct): Result := stStruct;
- Ord(dtSubRecordUnion): Result := stUnion;
- Ord(dtString): Result := stString;
- Ord(dtLString): Result := stString;
- Ord(dtLenString): Result := stString;
- Ord(dtByteArray): Result := stByteArray;
- Ord(dtInteger): Result := stInteger;
- Ord(dtIntegerFormater): Result := stInteger;
- Ord(dtIntegerFormaterUnion): Result := stInteger;
- Ord(dtFlag): Result := stFlag;
- Ord(dtFloat): Result := stFloat;
- Ord(dtSubRecordArray), Ord(dtArray): begin
- bIsSorted := IsSortedDef(def);
- bHasStructChildren := HasStructChildrenDef(def);
- if bIsSorted then begin
- if bHasStructChildren then
- Result := stSortedStructArray
- else
- Result := stSortedArray;
- end
- else begin
- if bHasStructChildren then
- Result := stUnsortedStructArray
+ Ord(dtRecord):
+ Result := stRecord;
+ Ord(dtSubRecord):
+ Result := stUnknown;
+ Ord(dtSubRecordStruct):
+ Result := stStruct;
+ Ord(dtSubRecordUnion):
+ Result := stUnion;
+ Ord(dtString):
+ Result := stString;
+ Ord(dtLString):
+ Result := stString;
+ Ord(dtLenString):
+ Result := stString;
+ Ord(dtByteArray):
+ Result := stByteArray;
+ Ord(dtInteger):
+ Result := stInteger;
+ Ord(dtIntegerFormater):
+ Result := stInteger;
+ Ord(dtIntegerFormaterUnion):
+ Result := stInteger;
+ Ord(dtFlag):
+ Result := stFlag;
+ Ord(dtFloat):
+ Result := stFloat;
+ Ord(dtSubRecordArray), Ord(dtArray):
+ begin
+ bIsSorted := IsSortedDef(def);
+ bHasStructChildren := HasStructChildrenDef(def);
+ if bIsSorted then
+ begin
+ if bHasStructChildren then
+ Result := stSortedStructArray
+ else
+ Result := stSortedArray;
+ end
else
- Result := stUnsortedArray;
+ begin
+ if bHasStructChildren then
+ Result := stUnsortedStructArray
+ else
+ Result := stUnsortedArray;
+ end;
end;
- end;
- Ord(dtStruct): Result := stStruct;
- Ord(dtUnion): Result := stUnion;
- Ord(dtEmpty): Result := stUnknown;
- Ord(dtStructChapter): Result := stStruct;
- else Result := stUnknown;
+ Ord(dtStruct):
+ Result := stStruct;
+ Ord(dtUnion):
+ Result := stUnion;
+ Ord(dtEmpty):
+ Result := stUnknown;
+ Ord(dtStructChapter):
+ Result := stStruct;
+ else
+ Result := stUnknown;
end;
end;
function GetSmashType(element: IwbElement): TSmashType;
begin
- Result := SmashType(element.Def);
+ if Assigned(element.ResolvedValueDef) then
+ Result := SmashType(element.ResolvedValueDef)
+ else
+ Result := SmashType(element.def);
end;
function ElementByIndexedPath(e: IwbElement; ip: string): IwbElement;
var
- i, index: integer;
+ i, index: Integer;
path: TStringList;
c: IwbContainerElementRef;
begin
@@ -502,14 +605,17 @@ function ElementByIndexedPath(e: IwbElement; ip: string): IwbElement;
exit;
// traverse path
- for i := 0 to Pred(path.count) do begin
- if Pos('[', path[i]) > 0 then begin
+ for i := 0 to Pred(path.Count) do
+ begin
+ if Pos('[', path[i]) > 0 then
+ begin
index := StrToInt(GetTextIn(path[i], '[', ']'));
e := c.Elements[index];
if not Supports(e, IwbContainerElementRef, c) then
exit;
end
- else begin
+ else
+ begin
e := c.ElementByPath[path[i]];
if not Supports(e, IwbContainerElementRef, c) then
exit;
@@ -526,11 +632,12 @@ function IndexedPath(e: IwbElement): string;
a: string;
begin
c := e.Container;
- while (e.ElementType <> etMainRecord) do begin
+ while (e.ElementType <> etMainRecord) do
+ begin
if c.ElementType = etSubRecordArray then
- a := '['+IntToStr(c.IndexOf(e))+']'
+ a := '[' + IntToStr(c.IndexOf(e)) + ']'
else
- a := e.Name;
+ a := e.name;
if Result <> '' then
Result := a + '\' + Result
else
@@ -543,15 +650,18 @@ function IndexedPath(e: IwbElement): string;
{ Returns a string hash of all of the values contained in an element }
function GetAllValues(e: IwbElement): string;
var
- i: integer;
+ i: Integer;
c: IwbContainerElementRef;
begin
- Result := e.EditValue;
- if not Supports(e, IwbContainerElementRef, c) then
+ if (GetSmashType(e) = stInteger) or not Supports(e, IwbContainerElementRef, c) then begin
+ Result := e.SortKey[false];
exit;
+ end;
+ Result := e.EditValue;
// loop through children elements
- for i := 0 to Pred(c.ElementCount) do begin
+ for i := 0 to Pred(c.ElementCount) do
+ begin
if (Result <> '') then
Result := Result + ';' + GetAllValues(c.Elements[i])
else
@@ -566,9 +676,9 @@ function IsSortedDef(def: IwbNamedDef): boolean;
begin
Result := false;
if Supports(def, IwbSubRecordArrayDef, sraDef) then
- Result := Supports(sraDef.Element, IwbHasSortKeyDef)
+ Result := Supports(sraDef.element, IwbHasSortKeyDef)
else if Supports(def, IwbArrayDef, arDef) then
- Result := Supports(arDef.Element, IwbHasSortKeyDef);
+ Result := arDef.Sorted;
end;
{ Returns true if @e is a sorted container }
@@ -592,29 +702,51 @@ function HasStructChildren(e: IwbElement): boolean;
Container: IwbContainerElementRef;
begin
Result := false;
- if Supports(e, IwbContainerElementRef, Container)
- and (Container.ElementCount > 0) then
+ if Supports(e, IwbContainerElementRef, Container) and
+ (Container.ElementCount > 0) then
Result := GetSmashType(Container.Elements[0]) = stStruct;
end;
-{ Returns the most-winning override of @rec from the
- files listed in @sl }
-function WinningOverrideInFiles(rec: IwbMainRecord;
- var sl: TStringList): IwbMainRecord;
+{ Returns the most-winning override of @rec from the files listed in @sl }
+function WinningOverrideInFiles(rec: IwbMainRecord; var sl: TStringList)
+ : IwbMainRecord;
var
i: Integer;
ovr: IwbMainRecord;
begin
- Result := rec;
- for i := Pred(rec.OverrideCount) downto 0 do begin
+ Result := rec.MasterOrSelf;
+ for i := Pred(rec.OverrideCount) downto 0 do
+ begin
ovr := rec.Overrides[i];
- if sl.IndexOf(ovr._file.FileName) > -1 then begin
+ if sl.IndexOf(ovr._File.filename) > -1 then
+ begin
Result := ovr;
exit;
end;
end;
end;
+{ Returns the overrides of @rec from the masters of its file }
+procedure OverridesInMasters(rec: IwbMainRecord; var rl: TList);
+var
+ i: Integer;
+ f, mst: IwbFile;
+ id: TwbFormID;
+ ovr: IwbMainRecord;
+begin
+ f := rec._File;
+ id := rec.FormID;
+ // TODO: Why does rec.Master sometimes return the wrong record??
+ for i := 0 to Pred(f.MasterCount[false]) do
+ begin
+ mst := f.Masters[i, false];
+ ovr := mst.RecordByFormID[id, true, false];
+ // TODO: Better way to get only if override is in Masters[i]??
+ if Assigned(ovr) and ovr._File.Equals(mst) then
+ rl.Add(ovr);
+ end;
+end;
+
{ Returns true if the input record is an override record }
function IsOverride(aRecord: IwbMainRecord): boolean;
begin
@@ -623,20 +755,22 @@ function IsOverride(aRecord: IwbMainRecord): boolean;
function ExtractFormID(filename: string): string;
const
- HexChars = ['0'..'9', 'A'..'F', 'a'..'f'];
+ HexChars = ['0' .. '9', 'A' .. 'F', 'a' .. 'f'];
var
i, counter: Integer;
begin
counter := 0;
// we loop from the back because the formID is usually at the
// end of the filename
- for i := Length(filename) downto 1 do begin
+ for i := Length(filename) downto 1 do
+ begin
if (filename[i] in HexChars) then
Inc(counter)
else
counter := 0;
// set result and exit if counter has reached 8
- if counter = 8 then begin
+ if counter = 8 then
+ begin
Result := Copy(filename, i, 8);
exit;
end;
@@ -651,25 +785,26 @@ function RemoveFileIndex(formID: string): string;
end;
{ Gets the local formID of a record (so no load order prefix) }
-function LocalFormID(aRecord: IwbMainRecord): integer;
+function LocalFormID(aRecord: IwbMainRecord): Integer;
begin
- Result := aRecord.LoadOrderFormID and $00FFFFFF;
+ Result := aRecord.LoadOrderFormID.ToCardinal and $00FFFFFF;
end;
{ Gets the load order prefix from the FormID of a record }
-function LoadOrderPrefix(aRecord: IwbMainRecord): integer;
+function LoadOrderPrefix(aRecord: IwbMainRecord): Integer;
begin
- Result := aRecord.LoadOrderFormID and $FF000000;
+ Result := aRecord.LoadOrderFormID.ToCardinal and $FF000000;
end;
{ Returns the number of override records in a file }
-function CountOverrides(aFile: IwbFile): integer;
+function CountOverrides(aFile: IwbFile): Integer;
var
i: Integer;
aRecord: IwbMainRecord;
begin
Result := 0;
- for i := 0 to Pred(aFile.GetRecordCount) do begin
+ for i := 0 to Pred(aFile.GetRecordCount) do
+ begin
aRecord := aFile.GetRecord(i);
if IsOverride(aRecord) then
Inc(Result);
@@ -677,15 +812,17 @@ function CountOverrides(aFile: IwbFile): integer;
end;
{ Returns the number of overrides of the specified record in the specified file set }
-function OverrideCountInFiles(rec: IwbMainRecord; var files: TStringList): Integer;
+function OverrideCountInFiles(rec: IwbMainRecord;
+ var files: TStringList): Integer;
var
i: Integer;
ovr: IwbMainRecord;
begin
Result := 0;
- for i := 0 to Pred(rec.OverrideCount) do begin
+ for i := 0 to Pred(rec.OverrideCount) do
+ begin
ovr := rec.Overrides[i];
- if files.IndexOf(ovr._File.FileName) > -1 then
+ if files.IndexOf(ovr._File.filename) > -1 then
Inc(Result);
end;
end;
@@ -698,7 +835,8 @@ procedure AddRequiredBy(var lst: TList; filename: string;
i: Integer;
plugin: TBasePlugin;
begin
- for i := 0 to Pred(masters.Count) do begin
+ for i := 0 to Pred(masters.Count) do
+ begin
plugin := TPluginHelpers.BasePluginByFilename(lst, masters[i]);
if not Assigned(plugin) then
continue;
@@ -710,17 +848,20 @@ procedure AddRequiredBy(var lst: TList; filename: string;
procedure GetMasters(aFile: IwbFile; var sl: TStringList);
var
Container, MasterFiles, MasterFile: IwbContainer;
- i, iLoadOrder: integer;
+ i, iLoadOrder: Integer;
filename: string;
begin
Container := aFile as IwbContainer;
Container := Container.Elements[0] as IwbContainer;
- if Container.ElementExists['Master Files'] then begin
+ if Container.ElementExists['Master Files'] then
+ begin
MasterFiles := Container.ElementByPath['Master Files'] as IwbContainer;
- for i := 0 to MasterFiles.ElementCount - 1 do begin
+ for i := 0 to MasterFiles.ElementCount - 1 do
+ begin
MasterFile := MasterFiles.Elements[i] as IwbContainer;
filename := MasterFile.GetElementEditValue('MAST - Filename');
- if sl.IndexOf(filename) = -1 then begin
+ if sl.IndexOf(filename) = -1 then
+ begin
iLoadOrder := TPluginHelpers.BasePluginLoadOrder(PluginsList, filename);
sl.AddObject(filename, TObject(iLoadOrder));
end;
@@ -731,10 +872,11 @@ procedure GetMasters(aFile: IwbFile; var sl: TStringList);
{ Gets the masters in an IwbFile and puts them into a stringlist }
procedure AddMasters(aFile: IwbFile; var sl: TStringList);
var
- i: integer;
+ i: Integer;
begin
- for i := 0 to Pred(sl.Count) do begin
- if Lowercase(aFile.FileName) = Lowercase(sl[i]) then
+ for i := 0 to Pred(sl.Count) do
+ begin
+ if Lowercase(aFile.filename) = Lowercase(sl[i]) then
continue;
aFile.AddMasterIfMissing(sl[i]);
end;
@@ -747,7 +889,8 @@ function BSAExists(filename: string): boolean;
begin
Result := false;
bsaFilename := ChangeFileExt(filename, '.bsa');
- if FileExists(wbDataPath + bsaFilename) then begin
+ if FileExists(wbDataPath + bsaFilename) then
+ begin
ContainerName := wbDataPath + bsaFilename;
if not wbContainerHandler.ContainerExists(ContainerName) then
wbContainerHandler.AddBSA(ContainerName);
@@ -771,9 +914,11 @@ function MatchingFileExists(path: string; filename: string): boolean;
begin
Result := false;
filename := Lowercase(filename);
- if FindFirst(path, faAnyFile, info) = 0 then begin
+ if FindFirst(path, faAnyFile, info) = 0 then
+ begin
repeat
- if Pos(filename, Lowercase(info.Name)) > 0 then begin
+ if Pos(filename, Lowercase(info.name)) > 0 then
+ begin
Result := true;
exit;
end;
@@ -790,14 +935,17 @@ function TranslationExists(filename: string): boolean;
begin
searchPath := wbDataPath + 'Interface\translations\*';
Result := MatchingFileExists(searchPath, ChangeFileExt(filename, ''));
- if Result then exit;
+ if Result then
+ exit;
// check in BSA
- if BSAExists(filename) then begin
+ if BSAExists(filename) then
+ begin
bsaFilename := ChangeFileExt(filename, '.bsa');
ContainerName := wbDataPath + bsaFilename;
ResourceList := TStringList.Create;
- wbContainerHandler.ContainerResourceList(ContainerName, ResourceList, 'Interface\translations');
+ wbContainerHandler.ContainerResourceList(ContainerName, ResourceList,
+ 'Interface\translations');
Result := ResourceList.Count > 0;
end;
end;
@@ -814,15 +962,19 @@ function FaceDataExists(filename: string): boolean;
facetint := DirectoryExists(wbDataPath + facetintDir);
facegeom := DirectoryExists(wbDataPath + facegeomDir);
Result := facetint or facegeom;
- if Result then exit;
+ if Result then
+ exit;
// check in BSA
- if BSAExists(filename) then begin
+ if BSAExists(filename) then
+ begin
bsaFilename := ChangeFileExt(filename, '.bsa');
ContainerName := wbDataPath + bsaFilename;
ResourceList := TStringList.Create;
- wbContainerHandler.ContainerResourceList(ContainerName, ResourceList, facetintDir);
- wbContainerHandler.ContainerResourceList(ContainerName, ResourceList, facegeomDir);
+ wbContainerHandler.ContainerResourceList(ContainerName, ResourceList,
+ facetintDir);
+ wbContainerHandler.ContainerResourceList(ContainerName, ResourceList,
+ facegeomDir);
Result := ResourceList.Count > 0;
end;
end;
@@ -835,14 +987,17 @@ function VoiceDataExists(filename: string): boolean;
begin
voiceDir := 'sound\voice\' + filename;
Result := DirectoryExists(wbDataPath + voiceDir);
- if Result then exit;
+ if Result then
+ exit;
// check in BSA
- if BSAExists(filename) then begin
+ if BSAExists(filename) then
+ begin
bsaFilename := ChangeFileExt(filename, '.bsa');
ContainerName := wbDataPath + bsaFilename;
ResourceList := TStringList.Create;
- wbContainerHandler.ContainerResourceList(ContainerName, ResourceList, voiceDir);
+ wbContainerHandler.ContainerResourceList(ContainerName, ResourceList,
+ voiceDir);
Result := ResourceList.Count > 0;
end;
end;
@@ -850,11 +1005,12 @@ function VoiceDataExists(filename: string): boolean;
{ Returns true if Topic Info Fragments exist in @f }
function TopicInfoFragmentsExist(f: IwbFile): boolean;
const
- infoFragmentsPath = 'VMAD - Virtual Machine Adapter\Data\Info VMAD\Script Fragments Info';
+ infoFragmentsPath =
+ 'VMAD - Virtual Machine Adapter\Data\Info VMAD\Script Fragments Info';
var
rec: IwbMainRecord;
group: IwbGroupRecord;
- subgroup, container: IwbContainer;
+ subgroup, Container: IwbContainer;
element, fragments: IwbElement;
i, j: Integer;
begin
@@ -865,19 +1021,21 @@ function TopicInfoFragmentsExist(f: IwbFile): boolean;
// find all DIAL records
group := f.GroupBySignature['DIAL'];
- for i := 0 to Pred(group.ElementCount) do begin
+ for i := 0 to Pred(group.ElementCount) do
+ begin
element := group.Elements[i];
// find all INFO records
if not Supports(element, IwbContainer, subgroup) then
continue;
- for j := 0 to Pred(subgroup.ElementCount) do begin
+ for j := 0 to Pred(subgroup.ElementCount) do
+ begin
if not Supports(subgroup.Elements[j], IwbMainRecord, rec) then
continue;
if not rec.IsMaster then
continue;
- if not Supports(rec, IwbContainer, container) then
+ if not Supports(rec, IwbContainer, Container) then
continue;
- fragments := container.ElementByPath[infoFragmentsPath];
+ fragments := Container.ElementByPath[infoFragmentsPath];
if not Assigned(fragments) then
continue;
Result := true;
@@ -888,11 +1046,12 @@ function TopicInfoFragmentsExist(f: IwbFile): boolean;
{ Returns true if Quest Fragments exist in @f }
function QuestFragmentsExist(f: IwbFile): boolean;
const
- questFragmentsPath = 'VMAD - Virtual Machine Adapter\Data\Quest VMAD\Script Fragments Quest';
+ questFragmentsPath =
+ 'VMAD - Virtual Machine Adapter\Data\Quest VMAD\Script Fragments Quest';
var
rec: IwbMainRecord;
group: IwbGroupRecord;
- container: IwbContainer;
+ Container: IwbContainer;
fragments: IwbElement;
i: Integer;
begin
@@ -903,14 +1062,15 @@ function QuestFragmentsExist(f: IwbFile): boolean;
// find all QUST records
group := f.GroupBySignature['QUST'];
- for i := 0 to Pred(group.ElementCount) do begin
+ for i := 0 to Pred(group.ElementCount) do
+ begin
if not Supports(group.Elements[i], IwbMainRecord, rec) then
continue;
if not rec.IsMaster then
continue;
- if not Supports(rec, IwbContainer, container) then
+ if not Supports(rec, IwbContainer, Container) then
continue;
- fragments := container.ElementByPath[questFragmentsPath];
+ fragments := Container.ElementByPath[questFragmentsPath];
if not Assigned(fragments) then
continue;
Result := true;
@@ -920,11 +1080,12 @@ function QuestFragmentsExist(f: IwbFile): boolean;
{ Returns true if Quest Fragments exist in @f }
function SceneFragmentsExist(f: IwbFile): boolean;
const
- sceneFragmentsPath = 'VMAD - Virtual Machine Adapter\Data\Quest VMAD\Script Fragments Quest';
+ sceneFragmentsPath =
+ 'VMAD - Virtual Machine Adapter\Data\Quest VMAD\Script Fragments Quest';
var
rec: IwbMainRecord;
group: IwbGroupRecord;
- container: IwbContainer;
+ Container: IwbContainer;
fragments: IwbElement;
i: Integer;
begin
@@ -935,14 +1096,15 @@ function SceneFragmentsExist(f: IwbFile): boolean;
// find all SCEN records
group := f.GroupBySignature['SCEN'];
- for i := 0 to Pred(group.ElementCount) do begin
+ for i := 0 to Pred(group.ElementCount) do
+ begin
if not Supports(group.Elements[i], IwbMainRecord, rec) then
continue;
if not rec.IsMaster then
continue;
- if not Supports(rec, IwbContainer, container) then
+ if not Supports(rec, IwbContainer, Container) then
continue;
- fragments := container.ElementByPath[sceneFragmentsPath];
+ fragments := Container.ElementByPath[sceneFragmentsPath];
if not Assigned(fragments) then
continue;
Result := true;
@@ -952,8 +1114,8 @@ function SceneFragmentsExist(f: IwbFile): boolean;
{ Returns true if file-specific Script Fragments for @f are found }
function FragmentsExist(f: IwbFile): boolean;
begin
- Result := TopicInfoFragmentsExist(f) or QuestFragmentsExist(f)
- or SceneFragmentsExist(f);
+ Result := TopicInfoFragmentsExist(f) or QuestFragmentsExist(f) or
+ SceneFragmentsExist(f);
end;
{ References self }
@@ -962,7 +1124,7 @@ function ReferencesSelf(f: IwbFile): boolean;
i: Integer;
filename, source: string;
scripts: IwbGroupRecord;
- container: IwbContainerElementRef;
+ Container: IwbContainerElementRef;
rec: IwbMainRecord;
begin
// exit if has no script records in file
@@ -971,15 +1133,17 @@ function ReferencesSelf(f: IwbFile): boolean;
exit;
// get scripts, and check them all for self-reference
- filename := f.FileName;
+ filename := f.filename;
scripts := f.GroupBySignature['SCPT'];
- if not Supports(scripts, IwbContainerElementRef, container) then
+ if not Supports(scripts, IwbContainerElementRef, Container) then
exit;
- for i := 0 to Pred(container.ElementCount) do begin
- if not Supports(container.Elements[i], IwbMainRecord, rec) then
+ for i := 0 to Pred(Container.ElementCount) do
+ begin
+ if not Supports(Container.Elements[i], IwbMainRecord, rec) then
continue;
source := rec.ElementEditValues['SCTX - Script Source'];
- if Pos(filename, source) > 0 then begin
+ if Pos(filename, source) > 0 then
+ begin
Result := true;
break;
end;
@@ -992,62 +1156,76 @@ procedure ExtractBSA(ContainerName, folder, destination: string);
ResourceList: TStringList;
i: Integer;
begin
- if not wbContainerHandler.ContainerExists(ContainerName) then begin
- Tracker.Write(' '+ContainerName+' not loaded.');
+ if not wbContainerHandler.ContainerExists(ContainerName) then
+ begin
+ Tracker.Write(' ' + ContainerName + ' not loaded.');
exit;
end;
ResourceList := TStringList.Create;
wbContainerHandler.ContainerResourceList(ContainerName, ResourceList, folder);
for i := 0 to Pred(ResourceList.Count) do
- wbContainerHandler.ResourceCopy(ContainerName, ResourceList[i], destination);
+ wbContainerHandler.ResourceCopy(ContainerName, ResourceList[i],
+ destination);
end;
{ Extracts assets from the BSA @filename to @destination, ignoring assets
matching items in @ignore }
-procedure ExtractBSA(ContainerName, destination: string; var ignore: TStringList);
+procedure ExtractBSA(ContainerName, destination: string;
+ var ignore: TStringList);
var
ResourceList: TStringList;
i, j: Integer;
skip: boolean;
begin
- if not wbContainerHandler.ContainerExists(ContainerName) then begin
- Tracker.Write(' '+ContainerName+' not loaded.');
+ if not wbContainerHandler.ContainerExists(ContainerName) then
+ begin
+ Tracker.Write(' ' + ContainerName + ' not loaded.');
exit;
end;
ResourceList := TStringList.Create;
wbContainerHandler.ContainerResourceList(ContainerName, ResourceList, '');
- for i := 0 to Pred(ResourceList.Count) do begin
+ for i := 0 to Pred(ResourceList.Count) do
+ begin
skip := false;
- for j := 0 to Pred(ignore.Count) do begin
+ for j := 0 to Pred(ignore.Count) do
+ begin
skip := Pos(ignore[j], ResourceList[i]) > 0;
- if skip then break;
+ if skip then
+ break;
end;
- if skip then continue;
- wbContainerHandler.ResourceCopy(ContainerName, ResourceList[i], destination);
+ if skip then
+ continue;
+ wbContainerHandler.ResourceCopy(ContainerName, ResourceList[i],
+ destination);
end;
end;
-function RemoveSelfOrContainer(const aElement: IwbElement): Boolean;
+function RemoveSelfOrContainer(const aElement: IwbElement): boolean;
var
cElement: IwbElement;
begin
Result := false;
- if aElement.IsRemoveable then begin
+ if aElement.IsRemoveable then
+ begin
aElement.Remove;
Result := true;
end
- else begin
- if not Assigned(aElement.Container) then begin
+ else
+ begin
+ if not Assigned(aElement.Container) then
+ begin
Tracker.Write(' Element has no container!');
exit;
end;
// if element isn't removable, try removing its container
- if Supports(aElement.Container, IwbMainRecord) then begin
+ if Supports(aElement.Container, IwbMainRecord) then
+ begin
Tracker.Write(' Reached main record, cannot remove element');
exit;
end;
- Tracker.Write(' Failed to remove '+aElement.Path+', removing container');
+ Tracker.Write(' Failed to remove ' + aElement.path +
+ ', removing container');
if Supports(aElement.Container, IwbElement, cElement) then
Result := RemoveSelfOrContainer(cElement);
end;
@@ -1057,7 +1235,7 @@ procedure UndeleteAndDisable(const aRecord: IwbMainRecord);
var
xesp: IwbElement;
sig: string;
- container: IwbContainerElementRef;
+ Container: IwbContainerElementRef;
begin
try
sig := aRecord.Signature;
@@ -1067,13 +1245,13 @@ procedure UndeleteAndDisable(const aRecord: IwbMainRecord);
aRecord.IsDeleted := false;
// set persistence flag depending on game
- if (wbGameMode in [gmFO3,gmFNV,gmTES5])
- and ((sig = 'ACHR') or (sig = 'ACRE')) then
+ if (wbGameMode in [gmFO3, gmFNV, gmTES5]) and
+ ((sig = 'ACHR') or (sig = 'ACRE')) then
aRecord.IsPersistent := true
else if wbGameMode = gmTES4 then
aRecord.IsPersistent := false;
- // place it below the ground
+ // place it below the ground
if not aRecord.IsPersistent then
aRecord.ElementNativeValues['DATA\Position\Z'] := -30000;
@@ -1082,21 +1260,21 @@ procedure UndeleteAndDisable(const aRecord: IwbMainRecord);
aRecord.RemoveElement('XTEL');
// add enabled opposite of player (true - silent)
- xesp := aRecord.Add('XESP', True);
- if Assigned(xesp) and Supports(xesp, IwbContainerElementRef, container) then begin
- container.ElementNativeValues['Reference'] := $14; // Player ref
- container.ElementNativeValues['Flags'] := 1; // opposite of parent flag
+ xesp := aRecord.Add('XESP', true);
+ if Assigned(xesp) and Supports(xesp, IwbContainerElementRef, Container) then
+ begin
+ Container.ElementNativeValues['Reference'] := $14; // Player ref
+ Container.ElementNativeValues['Flags'] := 1; // opposite of parent flag
end;
// set to disable
aRecord.IsInitiallyDisabled := true;
except
on x: Exception do
- Tracker.Write(' Exception: '+x.Message);
+ Tracker.Write(' Exception: ' + x.Message);
end;
end;
-
function FixErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
var errors: TStringList): IwbMainRecord;
const
@@ -1116,38 +1294,48 @@ function FixErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
Tracker.UpdateProgress(1);
Error := aElement.Check;
- if Error <> '' then begin
+ if Error <> '' then
+ begin
Result := aElement.ContainingMainRecord;
// fix record marked as deleted errors (UDRs)
- if Pos(cUDR, Error) = 1 then begin
- if Assigned(Result) then begin
- Tracker.Write(' Fixing UDR: '+Result.Name);
+ if Pos(cUDR, Error) = 1 then
+ begin
+ if Assigned(Result) then
+ begin
+ Tracker.Write(' Fixing UDR: ' + Result.name);
UndeleteAndDisable(Result);
end;
end
- else begin
+ else
+ begin
// fix unresolved FormID errors by NULLing them out
- if Pos(cUnresolved, Error) > 0 then begin
- Tracker.Write(' Fixing Unresolved FormID: '+aElement.Path);
+ if Pos(cUnresolved, Error) > 0 then
+ begin
+ Tracker.Write(' Fixing Unresolved FormID: ' + aElement.path);
aElement.NativeValue := 0;
// we may end up with an invalid NULL reference, so we Check again
Error := aElement.Check;
- if Error = '' then exit;
+ if Error = '' then
+ exit;
end;
// fix invalid NULL references by removal
- if Pos(cNULL, Error) = 1 then begin
- Tracker.Write(' Removing NULL reference: '+aElement.Path);
- if RemoveSelfOrContainer(aElement) then exit;
+ if Pos(cNULL, Error) = 1 then
+ begin
+ Tracker.Write(' Removing NULL reference: ' + aElement.path);
+ if RemoveSelfOrContainer(aElement) then
+ exit;
end;
// unhandled error
- Tracker.Write(Format(' Unhandled error: %s -> %s', [aElement.Path, error]));
- if Assigned(Result) and (lastRecord <> Result) then begin
+ Tracker.Write(Format(' Unhandled error: %s -> %s',
+ [aElement.path, Error]));
+ if Assigned(Result) and (lastRecord <> Result) then
+ begin
lastRecord := Result;
- errors.Add(Result.Name);
+ errors.Add(Result.name);
end;
- errors.Add(' '+aElement.Path + ' -> ' + Error);
+ errors.Add(' ' + aElement.path + ' -> ' + Error);
end;
end;
@@ -1156,10 +1344,12 @@ function FixErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
exit;
// recurse through children elements
- for i := Pred(Container.ElementCount) downto 0 do begin
+ for i := Pred(Container.ElementCount) downto 0 do
+ begin
Result := FixErrors(Container.Elements[i], Result, errors);
// break if container got deleted
- if not Assigned(Container) then break;
+ if not Assigned(Container) then
+ break;
end;
end;
@@ -1179,14 +1369,16 @@ function CheckForErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
Error := aElement.Check;
// log errors
- if Error <> '' then begin
+ if Error <> '' then
+ begin
Result := aElement.ContainingMainRecord;
- if Assigned(Result) and (Result <> LastRecord) then begin
- Tracker.Write(' '+Result.Name);
- errors.Add(Result.Name);
+ if Assigned(Result) and (Result <> lastRecord) then
+ begin
+ Tracker.Write(' ' + Result.name);
+ errors.Add(Result.name);
end;
- msg := ' '+aElement.Path + ' -> ' + Error;
- Tracker.Write(' '+msg);
+ msg := ' ' + aElement.path + ' -> ' + Error;
+ Tracker.Write(' ' + msg);
errors.Add(msg);
end;
@@ -1197,17 +1389,16 @@ function CheckForErrors(const aElement: IwbElement; lastRecord: IwbMainRecord;
end;
{ Comparator for sorting plugins }
-function LoadOrderCompare(List: TStringList; Index1, Index2: Integer): Integer;
+function LoadOrderCompare(list: TStringList; Index1, Index2: Integer): Integer;
var
LO1, LO2: Integer;
begin
- LO1 := Integer(List.Objects[Index1]);
- LO2 := Integer(List.Objects[Index2]);
+ LO1 := Integer(list.Objects[Index1]);
+ LO2 := Integer(list.Objects[Index2]);
Result := LO1 - LO2;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Record Prototyping Functions
- GetElementObj
- CreateRecordObj
@@ -1217,7 +1408,7 @@ function LoadOrderCompare(List: TStringList; Index1, Index2: Integer): Integer;
- BuildRecordDef
- GetEditableFileContainer
}
-{******************************************************************************}
+{ ****************************************************************************** }
{
GetElementObj:
@@ -1234,22 +1425,25 @@ function GetElementObj(var obj: ISuperObject; name: string): ISuperObject;
exit;
if not Assigned(obj['c']) then
exit;
- for item in obj['c'] do begin
- if item.S['n'] = name then begin
+ for item in obj['c'] do
+ begin
+ if item.s['n'] = name then
+ begin
Result := item;
exit;
end;
end;
end;
-function CreateRecordObj(var tree: ISuperObject; rec: IwbMainRecord): ISuperObject;
+function CreateRecordObj(var tree: ISuperObject; rec: IwbMainRecord)
+ : ISuperObject;
var
item: ISuperObject;
begin
item := SO;
- item.S['n'] := rec.Signature;
- item.I['t'] := Ord(stRecord);
- tree.A['records'].Add(item);
+ item.s['n'] := rec.Signature;
+ item.i['t'] := Ord(stRecord);
+ tree.a['records'].Add(item);
Result := item;
end;
@@ -1260,8 +1454,9 @@ function GetRecordObj(var tree: ISuperObject; name: string): ISuperObject;
begin
Result := nil;
aSignature := StrToSignature(name);
- for item in tree['records'] do begin
- if StrToSignature(item.S['n']) = aSignature then
+ for item in tree['records'] do
+ begin
+ if StrToSignature(item.s['n']) = aSignature then
Result := item;
end;
end;
@@ -1271,9 +1466,11 @@ function GetRecordDef(sig: TwbSignature): TwbRecordDefEntry;
i: Integer;
def: TwbRecordDefEntry;
begin
- for i := Low(wbRecordDefs) to High(wbRecordDefs) do begin
+ for i := Low(wbRecordDefs) to High(wbRecordDefs) do
+ begin
def := wbRecordDefs[i];
- if def.rdeSignature = sig then begin
+ if def.rdeSignature = sig then
+ begin
Result := def;
exit;
end;
@@ -1282,48 +1479,52 @@ function GetRecordDef(sig: TwbSignature): TwbRecordDefEntry;
function BuildElementDef(element: IwbElement): ISuperObject;
var
- container: IwbContainerElementRef;
+ Container: IwbContainerElementRef;
i: Integer;
childElement: IwbElement;
begin
// release object if something goes wrong
Result := SO;
try
- Result.S['n'] := element.Name;
- Result.I['t'] := Ord(GetSmashType(element));
+ Result.s['n'] := element.name;
+ Result.i['t'] := Ord(GetSmashType(element));
// populate element children, if it supports them
- if not Supports(element, IwbContainerElementRef, container) then
+ if not Supports(element, IwbContainerElementRef, Container) then
exit;
// assign to container if it doesn't have element but can hold them
- if (container.ElementCount = 0)
- and container.CanAssign(High(Integer), nil, false) then try
- container.Assign(High(Integer), nil, false);
- except
- // oops, container assignment failed
- // this catches an assertion error when assigning to a DOBJ record
- on x: Exception do
- exit;
- end;
+ if (Container.ElementCount = 0) and Container.CanAssign(High(Integer), nil,
+ false) then
+ try
+ Container.Assign(High(Integer), nil, false);
+ except
+ // oops, container assignment failed
+ // this catches an assertion error when assigning to a DOBJ record
+ on x: Exception do
+ exit;
+ end;
// if we have children, make children array and recurse
- if container.ElementCount > 0 then begin
+ if Container.ElementCount > 0 then
+ begin
Result.O['c'] := SA([]);
// traverse children
- for i := 0 to Pred(container.ElementCount) do begin
- childElement := container.Elements[i];
- Result.A['c'].Add(BuildElementDef(childElement));
+ for i := 0 to Pred(Container.ElementCount) do
+ begin
+ childElement := Container.Elements[i];
+ Result.a['c'].Add(BuildElementDef(childElement));
end;
end;
except
- on x: Exception do begin
+ on x: Exception do
+ begin
Result._Release;
raise x;
end;
end;
end;
-function IsUnionDef(def: IwbNamedDef; out unionDef: IwbUnionDef): Boolean;
+function IsUnionDef(def: IwbNamedDef; out unionDef: IwbUnionDef): boolean;
var
subDef: IwbSubRecordDef;
begin
@@ -1333,14 +1534,15 @@ function IsUnionDef(def: IwbNamedDef; out unionDef: IwbUnionDef): Boolean;
Result := Supports(def, IwbUnionDef, unionDef);
end;
-function HasDef(recObj: ISuperObject; name: String): Boolean;
+function HasDef(recObj: ISuperObject; name: String): boolean;
var
i: Integer;
begin
- Result := False;
- for i := 0 to Pred(recObj.A['c'].Length) do
- if recObj.A['c'].O[i].S['n'] = name then begin
- Result := True;
+ Result := false;
+ for i := 0 to Pred(recObj.a['c'].Length) do
+ if recObj.a['c'].O[i].s['n'] = name then
+ begin
+ Result := true;
exit;
end;
end;
@@ -1348,7 +1550,7 @@ function HasDef(recObj: ISuperObject; name: String): Boolean;
procedure AddDefIfMissing(recObj: ISuperObject; def: IwbNamedDef; name: String);
begin
if not HasDef(recObj, name) then
- recObj.A['c'].Add(BuildDef(def, name));
+ recObj.a['c'].Add(BuildDef(def, name));
end;
function SigToStr(sig: TwbSignature): String;
@@ -1369,20 +1571,29 @@ procedure BuildChildDef(def: IwbNamedDef; recObj: ISuperObject);
recDef: IwbRecordDef;
name: String;
begin
- if IsUnionDef(def, unionDef) then begin
+ if IsUnionDef(def, unionDef) then
+ begin
for i := 0 to Pred(unionDef.MemberCount) do
BuildChildDef(unionDef.Members[i] as IwbNamedDef, recObj);
end
- else if Supports(def, IwbSubRecordUnionDef) and Supports(def, IwbRecordDef, recDef) then begin
+ else if Supports(def, IwbSubRecordUnionDef) and
+ Supports(def, IwbRecordDef, recDef) then
+ begin
for i := 0 to Pred(recDef.MemberCount) do
BuildChildDef(recDef.Members[i] as IwbNamedDef, recObj);
end
- else if Supports(def, IwbSignatureDef, sigDef) then begin
- name := SigToStr(sigDef.DefaultSignature) + ' - ' + sigDef.Name;
+ else if (def.DefType = dtSubRecordStruct) or (def.DefType = dtSubRecordArray)
+ then
+ begin
+ AddDefIfMissing(recObj, def, def.name);
+ end
+ else if Supports(def, IwbSignatureDef, sigDef) then
+ begin
+ name := SigToStr(sigDef.DefaultSignature) + ' - ' + sigDef.name;
AddDefIfMissing(recObj, def, name);
end
else
- AddDefIfMissing(recObj, def, def.Name);
+ AddDefIfMissing(recObj, def, def.name);
end;
procedure BuildChildDefs(obj: ISuperObject; def: IwbNamedDef);
@@ -1395,47 +1606,77 @@ procedure BuildChildDefs(obj: ISuperObject; def: IwbNamedDef);
intDef: IwbIntegerDefFormaterUnion;
sraDef: IwbSubRecordArrayDef;
aDef: IwbArrayDef;
+ iDef: IwbIntegerDef;
+ fDef: IwbFlagsDef;
begin
// try SubRecordDef ValueDef
if Supports(def, IwbSubRecordDef, subDef) then
BuildChildDefs(obj, subDef.GetValue as IwbNamedDef)
- // try IwbRecordDef
- else if Supports(def, IwbRecordDef, recDef) then begin
- if recDef.MemberCount = 0 then exit;
+ // try IwbFlagsDef
+ else if Supports(def, IwbIntegerDef, iDef) and Supports(iDef.Formater[nil],
+ IwbFlagsDef, fDef) then
+ begin
+ if fDef.FlagCount = 0 then
+ exit;
+ obj.O['c'] := SA([]);
+ for i := 0 to Pred(fDef.FlagCount) do begin
+ if fDef.Flags[i] = '' then
+ obj.a['c'][i] := BuildDef(fDef.FlagDef[i], 'Unknown ' + IntToStr(i))
+ else
+ obj.a['c'][i] := BuildDef(fDef.FlagDef[i], fDef.Flags[i]);
+ //BuildChildDef(fDef.FlagDef[i] as IwbNamedDef, obj);
+ end;
+ end
+ // try IwbRecordDef 1
+ else if Supports(def, IwbRecordDef, recDef) then
+ begin
+ if recDef.MemberCount = 0 then
+ exit;
obj.O['c'] := SA([]);
for i := 0 to Pred(recDef.MemberCount) do
BuildChildDef(recDef.Members[i] as IwbNamedDef, obj);
end
// try IwbUnionDef
- else if Supports(def, IwbUnionDef, unionDef) then begin
- if unionDef.MemberCount = 0 then exit;
+ else if Supports(def, IwbUnionDef, unionDef) then
+ begin
+ if unionDef.MemberCount = 0 then
+ exit;
obj.O['c'] := SA([]);
for i := 0 to Pred(unionDef.MemberCount) do
BuildChildDef(unionDef.Members[i] as IwbNamedDef, obj);
end
// try IwbStructDef
- else if Supports(def, IwbStructDef, structDef) then begin
- if structDef.MemberCount = 0 then exit;
+ else if Supports(def, IwbStructDef, structDef) then
+ begin
+ if structDef.MemberCount = 0 then
+ exit;
obj.O['c'] := SA([]);
for i := 0 to Pred(structDef.MemberCount) do
BuildChildDef(structDef.Members[i] as IwbNamedDef, obj);
end
// try IwbIntegerDefFormaterUnion
- else if Supports(def, IwbIntegerDefFormaterUnion, intDef) then begin
- if intDef.MemberCount = 0 then exit;
+ else if Supports(def, IwbIntegerDefFormaterUnion, intDef) then
+ begin
+ if intDef.MemberCount = 0 then
+ exit;
obj.O['c'] := SA([]);
for i := 0 to Pred(intDef.MemberCount) do
BuildChildDef(intDef.Members[i] as IwbNamedDef, obj);
end
// try IwbSubRecordArrayDef
- else if Supports(def, IwbSubRecordArrayDef, sraDef) then begin
+ else if Supports(def, IwbSubRecordArrayDef, sraDef) then
+ begin
obj.O['c'] := SA([]);
- BuildChildDef(sraDef.Element as IwbNamedDef, obj);
+ BuildChildDef(sraDef.element as IwbNamedDef, obj);
end
// try IwbArrayDef
- else if Supports(def, IwbArrayDef, aDef) then begin
+ else if Supports(def, IwbArrayDef, aDef) then
+ begin
+ if aDef.ElementCount = 0 then
+ exit;
obj.O['c'] := SA([]);
- BuildChildDef(aDef.Element as IwbNamedDef, obj);
+ for i := 0 to Pred(aDef.ElementCount) do
+ AddDefIfMissing(obj, aDef.element as IwbNamedDef, aDef.ElementLabel[i]);
end;
end;
@@ -1444,30 +1685,34 @@ function BuildDef(def: IwbNamedDef; name: string): ISuperObject;
// release object if something goes wrong
Result := SO;
try
- Result.S['n'] := name;
- Result.I['t'] := Ord(SmashType(def));
+ Result.s['n'] := name;
+ Result.i['t'] := Ord(SmashType(def));
BuildChildDefs(Result, def);
except
- on x: Exception do begin
+ on x: Exception do
+ begin
Result._Release;
raise x;
end;
end;
end;
-function BuildRecordDef(sName: string; mrDef: IwbRecordDef; out recObj: ISuperObject): boolean; overload;
+function BuildRecordDef(sName: string; mrDef: IwbRecordDef;
+ out recObj: ISuperObject): boolean; overload;
var
i: Integer;
begin
recObj := SO;
try
- recObj.S['n'] := sName;
- recObj.I['t'] := Ord(stRecord);
+ recObj.s['n'] := sName;
+ recObj.i['t'] := Ord(stRecord);
recObj.O['c'] := SA([]);
+ BuildChildDef(mrDef.RecordHeaderStruct as IwbNamedDef, recObj);
for i := 0 to Pred(mrDef.MemberCount) do
BuildChildDef(mrDef.Members[i] as IwbNamedDef, recObj);
except
- on x: Exception do begin
+ on x: Exception do
+ begin
recObj._Release;
raise x;
end;
@@ -1514,45 +1759,49 @@ function GetEditableFileContainer: IwbContainerElementRef;
procedure PopulateAddList(var AddItem: TMenuItem; Event: TNotifyEvent);
var
i: Integer;
- RecordDef: PwbRecordDef;
+ RecordDef: PwbMainRecordDef;
item: TMenuItem;
begin
// populate wbGroupOrder to additem
- with TStringList.Create do try
- Sorted := True;
- Duplicates := dupIgnore;
-
- // initialize list contents
- AddStrings(wbGroupOrder);
- Sorted := False;
-
- // get record def names, if available
- for i := Pred(Count) downto 0 do
- if wbFindRecordDef(AnsiString(Strings[i]), RecordDef) then
- Strings[i] := Strings[i] + ' - ' + RecordDef.Name
- else
- Delete(i);
-
- // populate menu items
- for i := 0 to Pred(Count) do begin
- if Length(Strings[i]) < 4 then
- continue;
- item := TMenuItem.Create(AddItem);
- item.Caption := Strings[i];
- item.OnClick := Event;
- AddItem.Add(item);
+ with TStringList.Create do
+ try
+ Sorted := true;
+ Duplicates := dupIgnore;
+
+ // initialize list contents
+ AddStrings(wbGroupOrder);
+ Sorted := false;
+
+ // get record def names, if available
+ for i := Pred(Count) downto 0 do
+ if wbFindRecordDef(AnsiString(Strings[i]), RecordDef) then
+ Strings[i] := Strings[i] + ' - ' + RecordDef.name
+ else
+ Delete(i);
+
+ // populate menu items
+ for i := 0 to Pred(Count) do
+ begin
+ if Length(Strings[i]) < 4 then
+ continue;
+ item := TMenuItem.Create(AddItem);
+ item.Caption := Strings[i];
+ item.OnClick := Event;
+ AddItem.Add(item);
+ end;
+ finally
+ Free;
end;
- finally
- Free;
- end;
end;
initialization
+
begin
PluginsList := TList.Create;
end;
finalization
+
begin
FreeList(PluginsList);
end;
diff --git a/lib/mte/mteChangeLogForm.dfm b/lib/mte/mteChangeLogForm.dfm
old mode 100644
new mode 100755
diff --git a/lib/mte/mteChangeLogForm.pas b/lib/mte/mteChangeLogForm.pas
old mode 100644
new mode 100755
index 5e8ffa8..d79bb56
--- a/lib/mte/mteChangeLogForm.pas
+++ b/lib/mte/mteChangeLogForm.pas
@@ -11,10 +11,10 @@ interface
type
TChangeLogForm = class(TForm)
[FormPrefix('mpCha')]
- ScrollBox: TScrollBox;
- LabelPrompt: TLabel;
- ButtonInstall: TButton;
- ButtonSkip: TButton;
+ ScrollBox: TScrollBox;
+ LabelPrompt: TLabel;
+ ButtonInstall: TButton;
+ ButtonSkip: TButton;
procedure FormCreate(Sender: TObject);
procedure CreateVersionLabel(line: string; var top: Integer);
@@ -27,7 +27,7 @@ TChangeLogForm = class(TForm)
end;
// public entry point
- function ChangeLogPrompt(AOwner: TComponent): boolean;
+function ChangeLogPrompt(AOwner: TComponent): boolean;
const
spacing = 5;
@@ -44,12 +44,12 @@ implementation
procedure TChangeLogForm.FormCreate(Sender: TObject);
begin
- {// do a translation dump?
- if bTranslationDump then
+ { // do a translation dump?
+ if bTranslationDump then
TRttiTranslation.Save('lang\english.lang', self);
- // load translation
- TRttiTranslation.Load(language, self);}
+ // load translation
+ TRttiTranslation.Load(language, self); }
// display changelog
DisplayChangelog;
@@ -68,7 +68,7 @@ procedure TChangeLogForm.CreateVersionLabel(line: string; var top: Integer);
lbl := TLabel.Create(ScrollBox);
lbl.Parent := ScrollBox;
lbl.Autosize := true;
- lbl.Top := top;
+ lbl.top := top;
lbl.Left := 8;
lbl.Caption := line;
lbl.Font.Style := [fsBold];
@@ -84,9 +84,9 @@ procedure TChangeLogForm.CreateLabel(line: string; var top: Integer);
// make label
lbl := TLabel.Create(ScrollBox);
lbl.Parent := ScrollBox;
- lbl.AutoSize := true;
+ lbl.Autosize := true;
lbl.WordWrap := true;
- lbl.Top := top;
+ lbl.top := top;
lbl.Left := 20;
lbl.Width := ScrollBox.ClientWidth - 36;
lbl.Caption := Trim(line);
@@ -104,14 +104,16 @@ procedure TChangeLogForm.DisplayChangelog;
start := 0;
if not Assigned(clChangelog) then
exit;
- for i := 0 to Pred(clChangelog.Count) do begin
+ for i := 0 to Pred(clChangelog.Count) do
+ begin
line := clChangelog[i];
if not IsVersionLine(line) then
continue;
// identify start of changelog as first version newer than current version
lineVersion := Copy(line, 9, Length(line));
- if VersionCompare(clProgramVersion, lineVersion) then begin
+ if VersionCompare(clProgramVersion, lineVersion) then
+ begin
start := i;
break;
end;
@@ -120,7 +122,8 @@ procedure TChangeLogForm.DisplayChangelog;
// loop through the changelog, creating labels in scrollbox
// as necessary to render text
top := 8;
- for i := start to Pred(clChangelog.Count) do begin
+ for i := start to Pred(clChangelog.Count) do
+ begin
line := clChangelog[i];
if IsVersionLine(line) then
CreateVersionLabel(line, top)
@@ -136,7 +139,8 @@ procedure LoadChangelog(var changelog: TStringList);
changelog := TStringList.Create;
// don't attempt to load changelog if it doesn't exist
- if not FileExists('changelog.txt') then begin
+ if not FileExists('changelog.txt') then
+ begin
Logger.Write('GENERAL', 'Changelog', 'No changelog found');
exit;
end;
diff --git a/lib/mte/mteHelpers.pas b/lib/mte/mteHelpers.pas
old mode 100644
new mode 100755
index 8213ef9..6bcd342
--- a/lib/mte/mteHelpers.pas
+++ b/lib/mte/mteHelpers.pas
@@ -7,75 +7,78 @@ interface
type
TCallback = procedure of object;
+
TAppHelpers = class
class procedure GetHelp(var Msg: TMsg; var Handled: Boolean);
- class function HandleHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
+ class function HandleHelp(Command: Word; Data: Integer;
+ var CallHelp: Boolean): Boolean;
end;
{ General functions }
- function ShortenVersion(vs: string; numClauses: Integer): string;
- function IfThenInt(AValue: boolean; ATrue: Integer = 1; AFalse: Integer = 0): Integer;
- function TitleCase(sText: String): String;
- function SentenceCase(sText: string): string;
- function csvText(s: string): string;
- function CopyFromTo(str: string; first, last: Integer): string;
- function GetTextIn(str: string; open, close: char): string;
- function FormatByteSize(const bytes: Int64): string;
- function DateBuiltString(date: TDateTime): string;
- function DateTimeToSQL(date: TDateTime): string;
- function SQLToDateTime(date: string): TDateTime;
- function RateStr(date: TDateTime): string;
- function TimeStr(date: TDateTime): string;
- function AppendIfMissing(str, substr: string): string;
- function StrEndsWith(s1, s2: string): boolean;
- function RemoveFromEnd(s1, s2: string): string;
- function IntegerListSum(list: TStringList; maxIndex: integer): integer;
- function Wordwrap(s: string; charCount: integer): string;
- function ExtractPath(path: string; levels: integer): string;
- function ContainsMatch(var sl: TStringList; const s: string): boolean;
- procedure DeleteMatchingItems(item: string; var sl: TStringList);
- function IsURL(s: string): boolean;
- function IsDotFile(fn: string): boolean;
- procedure SaveStringToFile(s: string; fn: string);
- function ApplyTemplate(const template: string; var map: TStringList): string;
- function VersionCompare(v1, v2: string): boolean;
- procedure TryToFree(obj: TObject);
- procedure FreeList(var lst: TList);
- { Windows API functions }
- procedure ForceForeground(hWnd: THandle);
- function GetDriveList: TStringDynArray;
- function DOSDrive(const sDrive: String ): Integer;
- function DriveReady(const sDrive: String): Boolean;
- function TryRegistryKeys(var keys: TStringList): string;
- function FileNameValid(filename: string): boolean;
- function DirectoryValid(dir: string): boolean;
- function UpDirectory(sPath: string): string;
- function DeleteToRecycleBin(const path: string; Confirm: Boolean): Boolean;
- procedure ExecNewProcess(ProgramName: string; synchronous: Boolean);
- procedure BrowseForFile(var ed: TEdit; filter, initDir: string);
- procedure BrowseForFolder(var ed: TEdit; initDir: string);
- function GetCSIDLShellFolder(CSIDLFolder: integer): string;
- function GetFileSize(const aFilename: String): Int64;
- function GetLastModified(const aFileName: String): TDateTime;
- function SearchPathsForFile(sPaths, sFileName: string): string;
- function MultFileSearch(paths, filenames, ignore: array of string;
- maxDepth: integer): string;
- function RecursiveFileSearch(aPath: string; filenames, ignore: array of string;
- maxDepth: integer): string;
- procedure CopyDirectory(src, dst: string; fIgnore, dIgnore: TStringList);
- procedure GetFilesList(path: string; var fIgnore, dIgnore, list: TStringList);
- procedure CopyFiles(src, dst: string; var list: TStringList);
- function GetVersionMem: string;
- function FileVersion(const FileName: string): String;
- procedure DeleteDirectory(const path: string);
- procedure PerformFileSystemTests(sBasePath: string);
- { GUI Helper Functions }
- procedure StringGrid_CorrectWidth(var sg: TStringGrid);
- procedure ListView_CorrectWidth(var lv: TListView);
- function ListView_NextMatch(ListView: TListView; sSearch: string;
- iIndex: Integer): Integer;
- procedure ListView_HandleMatch(ListView: TListView; iFoundIndex: Integer;
- var sBuffer: string; sTempBuffer: string);
+function ShortenVersion(vs: string; numClauses: Integer): string;
+function IfThenInt(AValue: Boolean; ATrue: Integer = 1;
+ AFalse: Integer = 0): Integer;
+function TitleCase(sText: String): String;
+function SentenceCase(sText: string): string;
+function csvText(s: string): string;
+function CopyFromTo(str: string; first, last: Integer): string;
+function GetTextIn(str: string; open, close: char): string;
+function FormatByteSize(const bytes: Int64): string;
+function DateBuiltString(date: TDateTime): string;
+function DateTimeToSQL(date: TDateTime): string;
+function SQLToDateTime(date: string): TDateTime;
+function RateStr(date: TDateTime): string;
+function TimeStr(date: TDateTime): string;
+function AppendIfMissing(str, substr: string): string;
+function StrEndsWith(s1, s2: string): Boolean;
+function RemoveFromEnd(s1, s2: string): string;
+function IntegerListSum(list: TStringList; maxIndex: Integer): Integer;
+function Wordwrap(s: string; charCount: Integer): string;
+function ExtractPath(path: string; levels: Integer): string;
+function ContainsMatch(var sl: TStringList; const s: string): Boolean;
+procedure DeleteMatchingItems(item: string; var sl: TStringList);
+function IsURL(s: string): Boolean;
+function IsDotFile(fn: string): Boolean;
+procedure SaveStringToFile(s: string; fn: string);
+function ApplyTemplate(const template: string; var map: TStringList): string;
+function VersionCompare(v1, v2: string): Boolean;
+procedure TryToFree(obj: TObject);
+procedure FreeList(var lst: TList);
+{ Windows API functions }
+procedure ForceForeground(hWnd: THandle);
+function GetDriveList: TStringDynArray;
+function DOSDrive(const sDrive: String): Integer;
+function DriveReady(const sDrive: String): Boolean;
+function TryRegistryKeys(var keys: TStringList): string;
+function FileNameValid(filename: string): Boolean;
+function DirectoryValid(dir: string): Boolean;
+function UpDirectory(sPath: string): string;
+function DeleteToRecycleBin(const path: string; Confirm: Boolean): Boolean;
+procedure ExecNewProcess(ProgramName: string; synchronous: Boolean);
+procedure BrowseForFile(var ed: TEdit; filter, initDir: string);
+procedure BrowseForFolder(var ed: TEdit; initDir: string);
+function GetCSIDLShellFolder(CSIDLFolder: Integer): string;
+function GetFileSize(const aFilename: String): Int64;
+function GetLastModified(const aFilename: String): TDateTime;
+function SearchPathsForFile(sPaths, sFileName: string): string;
+function MultFileSearch(paths, filenames, ignore: array of string;
+ maxDepth: Integer): string;
+function RecursiveFileSearch(aPath: string; filenames, ignore: array of string;
+ maxDepth: Integer): string;
+procedure CopyDirectory(src, dst: string; fIgnore, dIgnore: TStringList);
+procedure GetFilesList(path: string; var fIgnore, dIgnore, list: TStringList);
+procedure CopyFiles(src, dst: string; var list: TStringList);
+function GetVersionMem: string;
+function FileVersion(const filename: string): String;
+procedure DeleteDirectory(const path: string);
+procedure PerformFileSystemTests(sBasePath: string);
+{ GUI Helper Functions }
+procedure StringGrid_CorrectWidth(var sg: TStringGrid);
+procedure ListView_CorrectWidth(var lv: TListView);
+function ListView_NextMatch(ListView: TListView; sSearch: string;
+ iIndex: Integer): Integer;
+procedure ListView_HandleMatch(ListView: TListView; iFoundIndex: Integer;
+ var sBuffer: string; sTempBuffer: string);
const
wndBorderSide = 8;
@@ -88,7 +91,7 @@ TAppHelpers = class
seconds = minutes / 60.0;
var
- bAllowHelp: boolean;
+ bAllowHelp: Boolean;
enFormatSettings: TFormatSettings;
implementation
@@ -97,30 +100,33 @@ implementation
Controls, Masks, Dialogs, StrUtils, FileCtrl, ShellApi,
Messages, CommCtrl, DateUtils, shlObj, IOUtils, Registry;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Application Helpers
General helpers for applications
}
-{******************************************************************************}
+{ ****************************************************************************** }
class procedure TAppHelpers.GetHelp(var Msg: TMsg; var Handled: Boolean);
var
control: TControl;
sKeyword: string;
begin
- if (Msg.message = WM_KEYDOWN) and (LoWord(Msg.wParam) = VK_F1) then begin
+ if (Msg.message = WM_KEYDOWN) and (LoWord(Msg.wParam) = VK_F1) then
+ begin
Screen.Cursor := crHelp;
Handled := true;
end
- else if (Msg.message = WM_LBUTTONDOWN) and (Screen.Cursor = crHelp) then begin
+ else if (Msg.message = WM_LBUTTONDOWN) and (Screen.Cursor = crHelp) then
+ begin
// get control the user clicked on
control := FindVCLWindow(Mouse.CursorPos);
// if we found a control, jump to help keyword for that control
- if Assigned(control) then begin
+ if Assigned(control) then
+ begin
bAllowHelp := true;
sKeyword := control.HelpKeyword;
- while (sKeyword = '') and Assigned(control.Parent) do begin
+ while (sKeyword = '') and Assigned(control.Parent) do
+ begin
control := control.Parent;
sKeyword := control.HelpKeyword;
end;
@@ -139,8 +145,7 @@ class function TAppHelpers.HandleHelp(Command: Word; Data: Integer;
Result := true;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ General functions
Set of functions that help with converting data types and handling strings.
@@ -169,7 +174,7 @@ class function TAppHelpers.HandleHelp(Command: Word; Data: Integer;
- SaveStringToFile
- ApplyTemplate
}
-{*****************************************************************************}
+{ ***************************************************************************** }
function ShortenVersion(vs: string; numClauses: Integer): string;
var
@@ -177,7 +182,8 @@ function ShortenVersion(vs: string; numClauses: Integer): string;
begin
Result := '';
numDots := 0;
- for i := 1 to Pred(Length(vs)) do begin
+ for i := 1 to Pred(Length(vs)) do
+ begin
if vs[i] = '.' then
Inc(numDots);
if numDots = numClauses then
@@ -188,7 +194,8 @@ function ShortenVersion(vs: string; numClauses: Integer): string;
{ Returns one of two integers based on a boolean argument.
Like IfThen from StrUtils, but returns an Integer. }
-function IfThenInt(AValue: boolean; ATrue: Integer = 1; AFalse: Integer = 0): Integer;
+function IfThenInt(AValue: Boolean; ATrue: Integer = 1;
+ AFalse: Integer = 0): Integer;
begin
if AValue then
Result := ATrue
@@ -199,13 +206,14 @@ function IfThenInt(AValue: boolean; ATrue: Integer = 1; AFalse: Integer = 0): In
{ Capitalizes the first letter of each word }
function TitleCase(sText: String): String;
const
- cDelimiters = [#9, #10, #13, ' ', ',', '.', ':', ';', '"',
- '\', '/', '(', ')', '[', ']', '{', '}'];
+ cDelimiters = [#9, #10, #13, ' ', ',', '.', ':', ';', '"', '\', '/', '(', ')',
+ '[', ']', '{', '}'];
var
iLoop: Integer;
begin
Result := sText;
- if (Result <> '') then begin
+ if (Result <> '') then
+ begin
Result := LowerCase(Result);
Result[1] := UpCase(Result[1]);
@@ -221,15 +229,17 @@ function SentenceCase(sText: string): string;
cTerminators = ['!', '.', '?'];
var
iLoop: Integer;
- bTerminated: boolean;
+ bTerminated: Boolean;
begin
Result := sText;
- if (Result <> '') then begin
+ if (Result <> '') then
+ begin
Result := LowerCase(Result);
Result[1] := UpCase(Result[1]);
bTerminated := false;
- for iLoop := 2 to Length(Result) do begin
+ for iLoop := 2 to Length(Result) do
+ begin
if (Result[iLoop - 1] in cTerminators) then
bTerminated := true;
if bTerminated and (Result[iLoop] <> ' ') then
@@ -241,7 +251,7 @@ function SentenceCase(sText: string): string;
{ Replaces newlines with a comma and space }
function csvText(s: string): string;
begin
- result := StringReplace(Trim(s), #13, ', ', [rfReplaceAll]);
+ Result := StringReplace(Trim(s), #13, ', ', [rfReplaceAll]);
end;
{ Copies a substring in a string between two indexes }
@@ -253,18 +263,21 @@ function CopyFromTo(str: string; first, last: Integer): string;
{ Returns a substring of @str between characters @open and @close }
function GetTextIn(str: string; open, close: char): string;
var
- i, openIndex: integer;
- bOpen: boolean;
+ i, openIndex: Integer;
+ bOpen: Boolean;
begin
Result := '';
bOpen := false;
openIndex := 0;
- for i := 0 to Length(str) do begin
- if not bOpen and (str[i] = open) then begin
+ for i := 0 to Length(str) do
+ begin
+ if not bOpen and (str[i] = open) then
+ begin
openIndex := i;
bOpen := true;
end;
- if bOpen and (str[i] = close) then begin
+ if bOpen and (str[i] = close) then
+ begin
Result := CopyFromTo(str, openIndex + 1, i - 1);
break;
end;
@@ -274,24 +287,21 @@ function GetTextIn(str: string; open, close: char): string;
{ Format file byte size }
function FormatByteSize(const bytes: Int64): string;
const
- B = 1; //byte
- KB = 1024 * B; //kilobyte
- MB = 1024 * KB; //megabyte
- GB = 1024 * MB; //gigabyte
+ B = 1; // byte
+ KB = 1024 * B; // kilobyte
+ MB = 1024 * KB; // megabyte
+ GB = 1024 * MB; // gigabyte
begin
if bytes > GB then
- result := FormatFloat('#.## GB', bytes / GB)
+ Result := FormatFloat('#.## GB', bytes / GB)
+ else if bytes > MB then
+ Result := FormatFloat('#.## MB', bytes / MB)
+ else if bytes > KB then
+ Result := FormatFloat('#.## KB', bytes / KB)
+ else if bytes > 0 then
+ Result := FormatFloat('#.## bytes', bytes)
else
- if bytes > MB then
- result := FormatFloat('#.## MB', bytes / MB)
- else
- if bytes > KB then
- result := FormatFloat('#.## KB', bytes / KB)
- else
- if bytes > 0 then
- result := FormatFloat('#.## bytes', bytes)
- else
- result := '0 bytes';
+ Result := '0 bytes';
end;
{ Converts a TDateTime to a string, with 0 being the string 'Never' }
@@ -299,7 +309,8 @@ function DateBuiltString(date: TDateTime): string;
begin
if date = 0 then
Result := 'Never'
- else begin
+ else
+ begin
Result := DateTimeToStr(date);
end;
end;
@@ -347,17 +358,18 @@ function TimeStr(date: TDateTime): string;
Example usage:
s := 'This is a sample string.';
if StrEndsWith(s, 'string.') then
- AddMessage('It works!');
+ AddMessage('It works!');
}
-function StrEndsWith(s1, s2: string): boolean;
+function StrEndsWith(s1, s2: string): Boolean;
var
- n1, n2: integer;
+ n1, n2: Integer;
begin
Result := false;
n1 := Length(s1);
n2 := Length(s2);
- if n1 < n2 then exit;
+ if n1 < n2 then
+ exit;
Result := (Copy(s1, n1 - n2 + 1, n2) = s2);
end;
@@ -394,32 +406,34 @@ function RemoveFromEnd(s1, s2: string): string;
end;
{ Calculates the integer sum of all values in a TStringList to maxIndex }
-function IntegerListSum(list: TStringList; maxIndex: integer): integer;
+function IntegerListSum(list: TStringList; maxIndex: Integer): Integer;
var
i: Integer;
begin
Result := 0;
for i := 0 to maxIndex do
- Inc(result, StrToInt(list[i]));
+ Inc(Result, StrToInt(list[i]));
end;
{ Inserts line breaks in string @s before @charCount has been exceeded }
-function Wordwrap(s: string; charCount: integer): string;
+function Wordwrap(s: string; charCount: Integer): string;
var
i, lastSpace, counter: Integer;
begin
counter := 0;
lastSpace := 0;
- for i := 1 to Length(s) - 1 do begin
+ for i := 1 to Length(s) - 1 do
+ begin
Inc(counter);
if (s[i] = ' ') or (s[i] = ',') then
lastSpace := i;
- if (s[i] = #13) or (s[i] = #10)
- or (s[i + 1] = #13) or (s[i + 1] = #10) then begin
+ if (s[i] = #13) or (s[i] = #10) or (s[i + 1] = #13) or (s[i + 1] = #10) then
+ begin
lastSpace := 0;
counter := 0;
end;
- if (counter = charCount) and (lastSpace > 0) then begin
+ if (counter = charCount) and (lastSpace > 0) then
+ begin
Insert(#13#10, s, lastSpace + 1);
lastSpace := 0;
counter := 0;
@@ -438,13 +452,14 @@ function Wordwrap(s: string; charCount: integer): string;
ShowMessage(ExtractPath(path, 1)); // 'C:\Program Files (x86)\'
ShowMessage(ExtractPath(path, 2)); // 'C:\'
}
-function ExtractPath(path: string; levels: integer): string;
+function ExtractPath(path: string; levels: Integer): string;
var
- i, n: integer;
+ i, n: Integer;
begin
n := 0;
for i := Length(path) downto 1 do
- if IsPathDelimiter(path, i) then begin
+ if IsPathDelimiter(path, i) then
+ begin
if n = levels then
break
else
@@ -454,13 +469,14 @@ function ExtractPath(path: string; levels: integer): string;
end;
{ Checks to see if any mask in @sl matches the string @s }
-function ContainsMatch(var sl: TStringList; const s: string): boolean;
+function ContainsMatch(var sl: TStringList; const s: string): Boolean;
var
i: Integer;
begin
Result := false;
for i := 0 to Pred(sl.Count) do
- if MatchesMask(s, sl[i]) then begin
+ if MatchesMask(s, sl[i]) then
+ begin
Result := true;
break;
end;
@@ -471,20 +487,21 @@ procedure DeleteMatchingItems(item: string; var sl: TStringList);
var
i: Integer;
begin
- for i := Pred(sl.Count) downto 0 do begin
+ for i := Pred(sl.Count) downto 0 do
+ begin
if sl[i] = item then
sl.Delete(i);
end;
end;
{ Returns true if the string is an http:// or https:// url }
-function IsURL(s: string): boolean;
+function IsURL(s: string): Boolean;
begin
Result := (Pos('http://', s) = 1) or (Pos('https://', s) = 1);
end;
{ Returns true if @fn is . or .. }
-function IsDotFile(fn: string): boolean;
+function IsDotFile(fn: string): Boolean;
begin
Result := (fn = '.') or (fn = '..');
end;
@@ -509,17 +526,19 @@ function ApplyTemplate(const template: string; var map: TStringList): string;
name, value: string;
begin
Result := template;
- for i := 0 to Pred(map.Count) do begin
+ for i := 0 to Pred(map.Count) do
+ begin
name := map.Names[i];
value := map.ValueFromIndex[i];
- Result := StringReplace(Result, openTag + name + closeTag, value, [rfReplaceAll]);
+ Result := StringReplace(Result, openTag + name + closeTag, value,
+ [rfReplaceAll]);
end;
end;
-function VersionCompare(v1, v2: string): boolean;
+function VersionCompare(v1, v2: string): Boolean;
var
sl1, sl2: TStringList;
- i, c1, c2: integer;
+ i, c1, c2: Integer;
begin
Result := false;
@@ -533,14 +552,17 @@ function VersionCompare(v1, v2: string): boolean;
// look through each version clause and perform comparisons
i := 0;
- while (i < sl1.Count) and (i < sl2.Count) do begin
+ while (i < sl1.Count) and (i < sl2.Count) do
+ begin
c1 := StrToInt(sl1[i]);
c2 := StrToInt(sl2[i]);
- if (c1 < c2) then begin
+ if (c1 < c2) then
+ begin
Result := true;
break;
end
- else if (c1 > c2) then begin
+ else if (c1 > c2) then
+ begin
Result := false;
break;
end;
@@ -554,11 +576,12 @@ function VersionCompare(v1, v2: string): boolean;
procedure TryToFree(obj: TObject);
begin
- if Assigned(obj) then try
- obj.Free;
- except
- on x: Exception do // nothing
- end;
+ if Assigned(obj) then
+ try
+ obj.Free;
+ except
+ on x: Exception do // nothing
+ end;
end;
procedure FreeList(var lst: TList);
@@ -566,15 +589,15 @@ procedure FreeList(var lst: TList);
i: Integer;
obj: TObject;
begin
- for i := Pred(lst.Count) downto 0 do begin
+ for i := Pred(lst.Count) downto 0 do
+ begin
obj := TObject(lst[i]);
TryToFree(obj);
end;
lst.Free;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Windows API functions
Set of functions that help deal with the Windows File System.
@@ -598,7 +621,7 @@ procedure FreeList(var lst: TList);
- FileVersion
- DeleteDirectory
}
-{******************************************************************************}
+{ ****************************************************************************** }
{
ForceForeground:
@@ -606,8 +629,10 @@ procedure FreeList(var lst: TList);
}
procedure ForceForeground(hWnd: THandle);
begin
- SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOMOVE);
- SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOMOVE);
+ SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or
+ SWP_NOMOVE);
+ SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or
+ SWP_NOMOVE);
end;
{
@@ -618,7 +643,7 @@ procedure ForceForeground(hWnd: THandle);
function GetDriveList: TStringDynArray;
var
- Buff: array[0..128] of Char;
+ Buff: array [0 .. 128] of char;
ptr: PChar;
Idx: Integer;
begin
@@ -644,7 +669,7 @@ function GetDriveList: TStringDynArray;
Converts a drive letter into the integer drive #
required by DiskSize().
}
-function DOSDrive( const sDrive: String ): Integer;
+function DOSDrive(const sDrive: String): Integer;
begin
if (Length(sDrive) < 1) then
Result := -1
@@ -680,28 +705,31 @@ function TryRegistryKeys(var keys: TStringList): string;
path, name: string;
begin
Result := '';
- with TRegistry.Create do try
- RootKey := HKEY_LOCAL_MACHINE;
-
- // try all keys
- for i := 0 to Pred(keys.Count) do begin
- path := ExtractFilePath(keys[i]);
- name := ExtractFileName(keys[i]);
- if OpenKeyReadOnly(path) then begin
- Result := ReadString(name);
- break;
+ with TRegistry.Create do
+ try
+ RootKey := HKEY_LOCAL_MACHINE;
+
+ // try all keys
+ for i := 0 to Pred(keys.Count) do
+ begin
+ path := ExtractFilePath(keys[i]);
+ name := ExtractFileName(keys[i]);
+ if OpenKeyReadOnly(path) then
+ begin
+ Result := ReadString(name);
+ break;
+ end;
end;
+ finally
+ Free;
end;
- finally
- Free;
- end;
end;
{
DirectoryValid:
Returns true if the input directory path is valid.
}
-function DirectoryValid(dir: string): boolean;
+function DirectoryValid(dir: string): Boolean;
begin
Result := false;
if (dir = '') then
@@ -734,10 +762,10 @@ function UpDirectory(sPath: string): string;
FileNameValid:
Returns true if the input filename is valid.
}
-function FileNameValid(filename: string): boolean;
+function FileNameValid(filename: string): Boolean;
begin
- Result := (Length(Trim(filename)) > 0) and
- TPath.HasValidFileNameChars(filename, false);
+ Result := (Length(Trim(filename)) > 0) and TPath.HasValidFileNameChars
+ (filename, false);
end;
{
@@ -746,25 +774,26 @@ function FileNameValid(filename: string): boolean;
}
procedure ExecNewProcess(ProgramName: string; synchronous: Boolean);
var
- StartInfo : TStartupInfo;
- ProcInfo : TProcessInformation;
- CreateOK : Boolean;
+ StartInfo: TStartupInfo;
+ ProcInfo: TProcessInformation;
+ CreateOK: Boolean;
begin
{ fill with known state }
FillChar(StartInfo, SizeOf(TStartupInfo), #0);
FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
StartInfo.cb := SizeOf(TStartupInfo);
- CreateOK := CreateProcess(PChar(ProgramName), nil, nil, nil,False,
- CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS,
- nil, nil, StartInfo, ProcInfo);
+ CreateOK := CreateProcess(PChar(ProgramName), nil, nil, nil, false,
+ CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil, nil, StartInfo,
+ ProcInfo);
// check if successful
- if CreateOK then begin
+ if CreateOK then
+ begin
if synchronous then
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
end
else
- ShowMessage('Unable to run '+ProgramName);
+ ShowMessage('Unable to run ' + ProgramName);
// close handles
CloseHandle(ProcInfo.hProcess);
@@ -789,9 +818,9 @@ procedure BrowseForFile(var ed: TEdit; filter, initDir: string);
else
openDialog.InitialDir := initDir;
- openDialog.Filter := filter;
+ openDialog.filter := filter;
if openDialog.Execute then
- ed.Text := openDialog.FileName;
+ ed.Text := openDialog.filename;
end;
{
@@ -820,10 +849,10 @@ procedure BrowseForFolder(var ed: TEdit; initDir: string);
GetCSIDLShellFolder:
Gets a folder by its integer CSID.
}
-function GetCSIDLShellFolder(CSIDLFolder: integer): string;
+function GetCSIDLShellFolder(CSIDLFolder: Integer): string;
begin
SetLength(Result, MAX_PATH);
- SHGetSpecialFolderPath(0, PChar(Result), CSIDLFolder, True);
+ SHGetSpecialFolderPath(0, PChar(Result), CSIDLFolder, true);
SetLength(Result, StrLen(PChar(Result)));
if (Result <> '') then
Result := IncludeTrailingBackslash(Result);
@@ -837,27 +866,29 @@ function GetFileSize(const aFilename: String): Int64;
var
info: TWin32FileAttributeData;
begin
- result := -1;
+ Result := -1;
- if NOT GetFileAttributesEx(PWideChar(aFileName), GetFileExInfoStandard, @info) then
- EXIT;
+ if NOT GetFileAttributesEx(PWideChar(aFilename), GetFileExInfoStandard, @info)
+ then
+ exit;
- result := Int64(info.nFileSizeLow) or Int64(info.nFileSizeHigh shl 32);
+ Result := Int64(info.nFileSizeLow) or Int64(info.nFileSizeHigh shl 32);
end;
{
GetLastModified:
Gets the last time a file was modified.
}
-function GetLastModified(const aFileName: String): TDateTime;
+function GetLastModified(const aFilename: String): TDateTime;
var
info: TWin32FileAttributeData;
FileTime: TFileTime;
LocalTime, SystemTime: TSystemTime;
begin
- result := 0;
+ Result := 0;
// exit if can't get attributes
- if not GetFileAttributesEx(PWideChar(aFileName), GetFileExInfoStandard, @info) then
+ if not GetFileAttributesEx(PWideChar(aFilename), GetFileExInfoStandard, @info)
+ then
exit;
// get last modified
@@ -884,14 +915,17 @@ function SearchPathsForFile(sPaths, sFileName: string): string;
begin
slPaths := TStringList.Create;
try
- while (Pos(';', sPaths) > 0) do begin
+ while (Pos(';', sPaths) > 0) do
+ begin
slPaths.Add(Copy(sPaths, 1, Pos(';', sPaths) - 1));
sPaths := Copy(sPaths, Pos(';', sPaths) + 1, Length(sPaths));
end;
- for i := 0 to slPaths.Count - 1 do begin
- if FindFirst(slPaths[i] + '\*', faDirectory, info) = 0 then begin
+ for i := 0 to slPaths.Count - 1 do
+ begin
+ if FindFirst(slPaths[i] + '\*', faDirectory, info) = 0 then
+ begin
repeat
- Result := FileSearch(sFileName, slPaths[i] + '\' + info.Name);
+ Result := FileSearch(sFileName, slPaths[i] + '\' + info.name);
if (Result <> '') then
break;
until FindNext(info) <> 0;
@@ -910,12 +944,14 @@ function SearchPathsForFile(sPaths, sFileName: string): string;
MultFileSearch:
Wraps around RecursiveFileSearch, allowing the searching of multiple paths.
}
-function MultFileSearch(paths, filenames, ignore: array of string; maxDepth: integer): string;
+function MultFileSearch(paths, filenames, ignore: array of string;
+ maxDepth: Integer): string;
var
i: Integer;
path: string;
begin
- for i := Low(paths) to High(paths) do begin
+ for i := Low(paths) to High(paths) do
+ begin
path := RecursiveFileSearch(paths[i], filenames, ignore, maxDepth);
if path <> '' then
break;
@@ -933,37 +969,43 @@ function MultFileSearch(paths, filenames, ignore: array of string; maxDepth: int
AddMessage(p);
}
function RecursiveFileSearch(aPath: string; filenames, ignore: array of string;
- maxDepth: integer): string;
+ maxDepth: Integer): string;
var
- skip: boolean;
- i: integer;
+ skip: Boolean;
+ i: Integer;
info: TSearchRec;
begin
Result := '';
aPath := AppendIfMissing(aPath, PathDelim);
- if Result <> '' then exit;
+ if Result <> '' then
+ exit;
// exit if no files in path
if FindFirst(aPath + '*', faAnyFile, info) <> 0 then
exit;
// else loop through all files in path
repeat
- if IsDotFile(info.Name) then
+ if IsDotFile(info.name) then
continue; // skip . and ..
skip := false;
- for i := Low(ignore) to High(ignore) do begin
- skip := Lowercase(info.Name) = ignore[i];
+ for i := Low(ignore) to High(ignore) do
+ begin
+ skip := LowerCase(info.name) = ignore[i];
if skip then
break;
end;
- if not skip then begin
- if ((info.attr and faDirectory) = faDirectory) and (maxDepth > 0) then begin
- Result := RecursiveFileSearch(aPath+info.Name, filenames, ignore, maxDepth - 1);
+ if not skip then
+ begin
+ if ((info.attr and faDirectory) = faDirectory) and (maxDepth > 0) then
+ begin
+ Result := RecursiveFileSearch(aPath + info.name, filenames, ignore,
+ maxDepth - 1);
end
- else if MatchStr(info.Name, filenames) then
- Result := aPath + info.Name;
+ else if MatchStr(info.name, filenames) then
+ Result := aPath + info.name;
end;
- if (Result <> '') then break;
+ if (Result <> '') then
+ break;
until FindNext(info) <> 0;
FindClose(info);
end;
@@ -980,7 +1022,7 @@ function RecursiveFileSearch(aPath: string; filenames, ignore: array of string;
procedure CopyDirectory(src, dst: string; fIgnore, dIgnore: TStringList);
var
info: TSearchRec;
- isDirectory: boolean;
+ isDirectory: Boolean;
begin
src := AppendIfMissing(src, PathDelim);
dst := AppendIfMissing(dst, PathDelim);
@@ -989,23 +1031,23 @@ procedure CopyDirectory(src, dst: string; fIgnore, dIgnore: TStringList);
if (FindFirst(src + '*', faAnyFile, info) <> 0) then
exit;
repeat
- isDirectory := (info.Attr and faDirectory = faDirectory);
+ isDirectory := (info.attr and faDirectory = faDirectory);
// skip . and ..
- if (info.Name = '.') or (info.Name = '..') then
+ if (info.name = '.') or (info.name = '..') then
continue;
// skip if ignored
- if isDirectory and ContainsMatch(dIgnore, info.Name) then
+ if isDirectory and ContainsMatch(dIgnore, info.name) then
continue
- else if ContainsMatch(fIgnore, info.Name) then
+ else if ContainsMatch(fIgnore, info.name) then
continue;
// copy the file or recurse
ForceDirectories(dst);
if isDirectory then
- CopyDirectory(src+info.Name, dst+info.Name, fIgnore, dIgnore)
+ CopyDirectory(src + info.name, dst + info.name, fIgnore, dIgnore)
else
- CopyFile(PChar(src+info.Name), PChar(dst+info.Name), false);
+ CopyFile(PChar(src + info.name), PChar(dst + info.name), false);
until FindNext(info) <> 0;
FindClose(info);
@@ -1027,7 +1069,7 @@ procedure CopyDirectory(src, dst: string; fIgnore, dIgnore: TStringList);
procedure GetFilesList(path: string; var fIgnore, dIgnore, list: TStringList);
var
info: TSearchRec;
- isDirectory: boolean;
+ isDirectory: Boolean;
begin
path := AppendIfMissing(path, PathDelim);
@@ -1035,24 +1077,25 @@ procedure GetFilesList(path: string; var fIgnore, dIgnore, list: TStringList);
if (FindFirst(path + '*', faAnyFile, info) <> 0) then
exit;
repeat
- isDirectory := (info.Attr and faDirectory = faDirectory);
+ isDirectory := (info.attr and faDirectory = faDirectory);
// skip . and ..
- if (info.Name = '.') or (info.Name = '..') then
+ if (info.name = '.') or (info.name = '..') then
continue;
// skip if ignored
- if isDirectory then begin
- if ContainsMatch(dIgnore, info.Name) then
+ if isDirectory then
+ begin
+ if ContainsMatch(dIgnore, info.name) then
continue;
end
- else if ContainsMatch(fIgnore, info.Name) then
+ else if ContainsMatch(fIgnore, info.name) then
continue;
// copy the file or recurse
if isDirectory then
- GetFilesList(path + info.Name, fIgnore, dIgnore, list)
+ GetFilesList(path + info.name, fIgnore, dIgnore, list)
else
- list.Add(path + info.Name);
+ list.Add(path + info.name);
until FindNext(info) <> 0;
FindClose(info);
@@ -1066,7 +1109,8 @@ procedure CopyFiles(src, dst: string; var list: TStringList);
begin
src := AppendIfMissing(src, PathDelim);
dst := AppendIfMissing(dst, PathDelim);
- for i := 0 to Pred(list.Count) do begin
+ for i := 0 to Pred(list.Count) do
+ begin
srcFile := list[i];
dstFile := StringReplace(srcFile, src, dst, []);
ForceDirectories(ExtractFilePath(dstFile));
@@ -1091,12 +1135,13 @@ function GetVersionMem: string;
rs.Free;
end;
m.Position := 0;
- if VerQueryValue(m.Memory, '\', Pointer(verblock), verlen) then begin
- VersionMS := verblock.dwFileVersionMS;
- VersionLS := verblock.dwFileVersionLS;
+ if VerQueryValue(m.Memory, '\', Pointer(verblock), verlen) then
+ begin
+ versionMS := verblock.dwFileVersionMS;
+ versionLS := verblock.dwFileVersionLS;
Result := Format('%s.%s.%s.%s', [IntToStr(versionMS shr 16),
- IntToStr(versionMS and $FFFF), IntToStr(VersionLS shr 16),
- IntToStr(VersionLS and $FFFF)]);
+ IntToStr(versionMS and $FFFF), IntToStr(versionLS shr 16),
+ IntToStr(versionLS and $FFFF)]);
end;
finally
m.Free;
@@ -1104,26 +1149,25 @@ function GetVersionMem: string;
end;
{ Get program version from disk }
-function FileVersion(const FileName: string): String;
+function FileVersion(const filename: string): String;
var
- VerInfoSize: Cardinal;
- VerValueSize: Cardinal;
- Dummy: Cardinal;
+ VerInfoSize: cardinal;
+ VerValueSize: cardinal;
+ Dummy: cardinal;
PVerInfo: Pointer;
- PVerValue: PVSFixedFileInfo;
+ PVerValue: PVSFIXEDFILEINFO;
begin
Result := '';
- VerInfoSize := GetFileVersionInfoSize(PChar(FileName), Dummy);
+ VerInfoSize := GetFileVersionInfoSize(PChar(filename), Dummy);
GetMem(PVerInfo, VerInfoSize);
try
- if GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, PVerInfo) then
+ if GetFileVersionInfo(PChar(filename), 0, VerInfoSize, PVerInfo) then
if VerQueryValue(PVerInfo, '\', Pointer(PVerValue), VerValueSize) then
with PVerValue^ do
- Result := Format('%d.%d.%d.%d', [
- HiWord(dwFileVersionMS), //Major
- LoWord(dwFileVersionMS), //Minor
- HiWord(dwFileVersionLS), //Release
- LoWord(dwFileVersionLS)]); //Build
+ Result := Format('%d.%d.%d.%d', [HiWord(dwFileVersionMS), // Major
+ LoWord(dwFileVersionMS), // Minor
+ HiWord(dwFileVersionLS), // Release
+ LoWord(dwFileVersionLS)]); // Build
finally
FreeMem(PVerInfo, VerInfoSize);
end;
@@ -1135,7 +1179,8 @@ function DeleteToRecycleBin(const path: string; Confirm: Boolean): Boolean;
sh: TSHFileOpStruct;
begin
FillChar(sh, SizeOf(sh), 0);
- with sh do begin
+ with sh do
+ begin
Wnd := 0;
wFunc := FO_DELETE;
pFrom := PChar(path + #0);
@@ -1155,7 +1200,7 @@ procedure DeleteDirectory(const path: string);
ShOp.wFunc := FO_DELETE;
ShOp.pFrom := PChar(path + #0);
ShOp.pTo := nil;
- ShOp.fFlags := FOF_NOCONFIRMATION or FOF_ALLOWUNDO or FOF_NO_UI;
+ ShOp.fFlags := FOF_NOCONFIRMATION or FOF_NO_UI;
SHFileOperation(ShOp);
end;
@@ -1222,14 +1267,13 @@ procedure PerformFileSystemTests(sBasePath: string);
end;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ GUI Helper Functions
- ListView_CorrectWidth
- ListView_FindNextMatch
- ListView_HandleMatch
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure StringGrid_CorrectWidth(var sg: TStringGrid);
var
@@ -1253,7 +1297,8 @@ procedure ListView_CorrectWidth(var lv: TListView);
w := lv.ClientWidth;
// loop through columns keeping track of remaining width
- for i := 0 to Pred(lv.Columns.Count) do begin
+ for i := 0 to Pred(lv.Columns.Count) do
+ begin
col := lv.Columns[i];
if col.AutoSize then
AutoSizedColumns.Add(col)
@@ -1262,7 +1307,8 @@ procedure ListView_CorrectWidth(var lv: TListView);
end;
// set auotsized columns to fit client width
- for i := 0 to Pred(AutoSizedColumns.Count) do begin
+ for i := 0 to Pred(AutoSizedColumns.Count) do
+ begin
col := TListColumn(AutoSizedColumns[i]);
col.Width := w div AutoSizedColumns.Count;
end;
@@ -1288,19 +1334,21 @@ function ListView_NextMatch(ListView: TListView; sSearch: string;
// is an item selected
if Assigned(ListView.Selected) then
iStart := ListView.Selected.Index
- // Else start at 0, the first item
+ // Else start at 0, the first item
else
iStart := 0;
// Loop through items looking for a match
- for i := iStart to Pred(ListView.Items.Count) do begin
+ for i := iStart to Pred(ListView.Items.Count) do
+ begin
ListItem := ListView.Items[i];
if iIndex = 0 then
sCaption := ListItem.Caption
else
sCaption := ListItem.SubItems[iIndex - 1];
sCompare := Copy(sCaption, 1, Length(sSearch));
- if SameText(sSearch, sCompare) then begin
+ if SameText(sSearch, sCompare) then
+ begin
Result := i;
break;
end;
@@ -1322,6 +1370,7 @@ procedure ListView_HandleMatch(ListView: TListView; iFoundIndex: Integer;
end;
initialization
+
begin
bAllowHelp := false;
enFormatSettings := TFormatSettings.Create('en-us');
@@ -1329,4 +1378,4 @@ initialization
enFormatSettings.ThousandSeparator := ',';
end;
-end.
\ No newline at end of file
+end.
diff --git a/lib/mte/mteLogger.pas b/lib/mte/mteLogger.pas
old mode 100644
new mode 100755
index c99b0d3..9a0cff1
--- a/lib/mte/mteLogger.pas
+++ b/lib/mte/mteLogger.pas
@@ -9,26 +9,29 @@ interface
TLogger = class
private
- FLogEvent : TLogEvent;
+ FLogEvent: TLogEvent;
public
procedure Write(const group, &label, text: string);
property OnLogEvent: TLogEvent read FLogEvent write FLogEvent;
end;
-var Logger : TLogger;
+var
+ Logger: TLogger;
implementation
procedure TLogger.Write(const group, &label, text: string);
begin
- if Assigned(FLogEvent) then
- FLogEvent(group, &label, text);
+ if Assigned(FLogEvent) then
+ FLogEvent(group, &label, text);
end;
initialization
- Logger := TLogger.Create;
+
+Logger := TLogger.Create;
finalization
- FreeAndNil(Logger);
+
+FreeAndNil(Logger);
end.
diff --git a/lib/mte/mteLogging.pas b/lib/mte/mteLogging.pas
old mode 100644
new mode 100755
index 30f1e80..3959612
--- a/lib/mte/mteLogging.pas
+++ b/lib/mte/mteLogging.pas
@@ -25,7 +25,8 @@ TFilter = class(TObject)
constructor Create(group: string; enabled: boolean); Overload;
constructor Create(group, &label: string; enabled: boolean); Overload;
end;
- TLogMessage = class (TObject)
+
+ TLogMessage = class(TObject)
public
time: string;
appTime: string;
@@ -36,11 +37,11 @@ TLogMessage = class (TObject)
end;
{ Log methods }
- procedure RebuildLog;
- procedure SaveLog(var Log: TList);
- function MessageEnabled(msg: TLogMessage): boolean;
- procedure ShowProgressForm(parent: TForm; var pf: TProgressForm;
- sCaption, sLogSubPath: string);
+procedure RebuildLog;
+procedure SaveLog(var Log: TList);
+function MessageEnabled(msg: TLogMessage): boolean;
+procedure ShowProgressForm(parent: TForm; var pf: TProgressForm;
+ sCaption, sLogSubPath: string);
var
BaseLog, Log, LabelFilters, GroupFilters: TList;
@@ -74,7 +75,7 @@ constructor TLogMessage.Create(time, appTime, group, &label, text: string);
self.text := text;
end;
-{******************************************************************************}
+{ ****************************************************************************** }
{ Log methods
Set of methods for logging
@@ -84,7 +85,7 @@ constructor TLogMessage.Create(time, appTime, group, &label, text: string);
- SaveLog
- MessageGroupEnabled
}
-{******************************************************************************}
+{ ****************************************************************************** }
procedure RebuildLog;
var
@@ -92,7 +93,8 @@ procedure RebuildLog;
msg: TLogMessage;
begin
Log.Clear;
- for i := 0 to Pred(BaseLog.Count) do begin
+ for i := 0 to Pred(BaseLog.Count) do
+ begin
msg := TLogMessage(BaseLog[i]);
if MessageEnabled(msg) then
Log.Add(msg);
@@ -107,13 +109,15 @@ procedure SaveLog(var Log: TList);
fdt: string;
begin
sl := TStringList.Create;
- for i := 0 to Pred(Log.Count) do begin
+ for i := 0 to Pred(Log.Count) do
+ begin
msg := TLogMessage(Log[i]);
- sl.Add(Format('[%s] (%s) %s: %s', [msg.time, msg.group, msg.&label, msg.text]));
+ sl.Add(Format('[%s] (%s) %s: %s', [msg.time, msg.group, msg.&label,
+ msg.text]));
end;
fdt := FormatDateTime('mmddyy_hhnnss', TDateTime(Now));
- ForceDirectories(LogPath+'main\');
- sl.SaveToFile(LogPath+'main\log_'+fdt+'.txt');
+ ForceDirectories(LogPath + 'main\');
+ sl.SaveToFile(LogPath + 'main\log_' + fdt + '.txt');
sl.Free;
end;
@@ -123,9 +127,11 @@ function GetGroupFilter(msg: TLogMessage): TFilter;
filter: TFilter;
begin
Result := nil;
- for i := 0 to Pred(GroupFilters.Count) do begin
+ for i := 0 to Pred(GroupFilters.Count) do
+ begin
filter := TFilter(GroupFilters[i]);
- if filter.group = msg.group then begin
+ if filter.group = msg.group then
+ begin
Result := filter;
exit;
end;
@@ -138,9 +144,11 @@ function GetLabelFilter(msg: TLogMessage): TFilter;
filter: TFilter;
begin
Result := nil;
- for i := 0 to Pred(LabelFilters.Count) do begin
+ for i := 0 to Pred(LabelFilters.Count) do
+ begin
filter := TFilter(LabelFilters[i]);
- if (filter.&label = msg.&label) and (filter.group = msg.group) then begin
+ if (filter.&label = msg.&label) and (filter.group = msg.group) then
+ begin
Result := filter;
exit;
end;
@@ -164,14 +172,15 @@ procedure ShowProgressForm(parent: TForm; var pf: TProgressForm;
sCaption, sLogSubPath: string);
begin
pf := TProgressForm.Create(parent);
- pf.pfLogPath := LogPath + sLogSubPath + '\';
+ //pf.pfLogPath := LogPath + sLogSubPath + '\';
pf.PopupParent := parent;
pf.Caption := sCaption;
- pf.SetMaxProgress(IntegerListSum(timeCosts, Pred(timeCosts.Count)));
+ pf.SetMaxProgress(IntegerListSum(TimeCosts, Pred(TimeCosts.Count)));
pf.Show;
end;
initialization
+
begin
BaseLog := TList.Create;
Log := TList.Create;
@@ -180,6 +189,7 @@ initialization
end;
finalization
+
begin
FreeList(BaseLog);
Log.Free;
diff --git a/lib/mte/mtePluginSelectionForm.dfm b/lib/mte/mtePluginSelectionForm.dfm
old mode 100644
new mode 100755
index 40e6315..e121693
--- a/lib/mte/mtePluginSelectionForm.dfm
+++ b/lib/mte/mtePluginSelectionForm.dfm
@@ -127,7 +127,7 @@ object PluginSelectionForm: TPluginSelectionForm
Left = 136
Top = 24
Bitmap = {
- 494C010103003400600011001100FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010103003400040011001100FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000440000001100000001002000000000001012
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
diff --git a/lib/mte/mtePluginSelectionForm.pas b/lib/mte/mtePluginSelectionForm.pas
old mode 100644
new mode 100755
index 424da27..0819520
--- a/lib/mte/mtePluginSelectionForm.pas
+++ b/lib/mte/mtePluginSelectionForm.pas
@@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, CommCtrl, Menus, ComCtrls, ImgList;
+ Dialogs, StdCtrls, CommCtrl, Menus, ComCtrls, ImgList, System.ImageList;
type
TPluginListItem = class(TObject)
@@ -14,8 +14,10 @@ TPluginListItem = class(TObject)
constructor Create; virtual;
destructor Destroy; override;
end;
+
TStringFunction = function(s: string): string of object;
TStringListProcedure = procedure(fn: string; var sl: TStringList) of object;
+
TPluginSelectionForm = class(TForm)
lvPlugins: TListView;
btnCancel: TButton;
@@ -44,13 +46,13 @@ TPluginSelectionForm = class(TForm)
procedure lvPluginsChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure lvPluginsKeyPress(Sender: TObject; var Key: Char);
- procedure DrawCheckbox(aCanvas: TCanvas; var x, y: Integer; state: Integer);
+ procedure DrawCheckbox(aCanvas: TCanvas; var X, Y: Integer; state: Integer);
procedure DrawSubItems(ListView: TListView; var R: TRect; Item: TListItem);
procedure DrawItem(ListView: TListView; var R: TRect; Item: TListItem);
procedure lvPluginsDrawItem(Sender: TCustomListView; Item: TListItem;
- Rect: TRect; State: TOwnerDrawState);
- procedure lvPluginsMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
+ Rect: TRect; state: TOwnerDrawState);
+ procedure lvPluginsMouseMove(Sender: TObject; Shift: TShiftState;
+ X, Y: Integer);
function GetMasterStatus(filename: string): Integer;
procedure lvPluginsData(Sender: TObject; Item: TListItem);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
@@ -119,7 +121,8 @@ procedure TPluginSelectionForm.btnOKClick(Sender: TObject);
// clear checked plugins list
slCheckedPlugins.Clear;
// add checked plugins to slCheckedPlugins
- for i := 0 to Pred(lvPlugins.Items.Count) do begin
+ for i := 0 to Pred(lvPlugins.Items.Count) do
+ begin
ListItem := lvPlugins.Items[i];
if ListItem.StateIndex = cChecked then
slCheckedPlugins.Add(ListItem.Caption);
@@ -133,7 +136,7 @@ procedure TPluginSelectionForm.LoadFields(aListItem: TPluginListItem;
i: Integer;
begin
// add plugin filename
- aListItem.fields.Add(sPlugin);
+ aListItem.Fields.Add(sPlugin);
// get comma separated plugin info in a TStringList
sl := TStringList.Create;
@@ -158,7 +161,8 @@ procedure TPluginSelectionForm.UpdateDisabled;
slDisabled.Clear;
sl := TStringList.Create;
try
- for i := 0 to Pred(lvPlugins.Items.Count) do begin
+ for i := 0 to Pred(lvPlugins.Items.Count) do
+ begin
ListItem := TPluginListItem(ListItems[i]);
filename := ListItem.Fields[0];
// if unchecked, skip
@@ -166,7 +170,8 @@ procedure TPluginSelectionForm.UpdateDisabled;
continue;
// if checked, make sure its masters are checked
GetPluginMasters(filename, sl);
- for j := 0 to Pred(sl.Count) do begin
+ for j := 0 to Pred(sl.Count) do
+ begin
index := slAllPlugins.IndexOf(sl[j]);
// if master is not found, continue
if (index = -1) then
@@ -190,8 +195,10 @@ procedure TPluginSelectionForm.UpdateDisabled;
procedure ToggleState(ListItem: TPluginListItem);
begin
case ListItem.StateIndex of
- cChecked: ListItem.StateIndex := cUnChecked;
- cUnChecked: ListItem.StateIndex := cChecked;
+ cChecked:
+ ListItem.StateIndex := cUnChecked;
+ cUnChecked:
+ ListItem.StateIndex := cChecked;
end;
end;
@@ -204,10 +211,12 @@ procedure TPluginSelectionForm.lvPluginsChange(Sender: TObject; Item: TListItem;
// update slMasters and slDependencies
slMasters.Clear;
slDependencies.Clear;
- for i := 0 to Pred(lvPlugins.Items.Count) do begin
+ for i := 0 to Pred(lvPlugins.Items.Count) do
+ begin
filename := TPluginListItem(ListItems[i]).Fields[0];
with lvPlugins.Items[i] do
- if Selected then begin
+ if Selected then
+ begin
GetPluginMasters(filename, slMasters);
GetPluginDependencies(filename, slDependencies);
end;
@@ -223,14 +232,16 @@ function TPluginSelectionForm.GetMasterStatus(filename: string): Integer;
begin
// if file has masters that are missing from slAllPlugins,
// return mstMissing
- if slMissing.IndexOf(filename) > -1 then begin
+ if slMissing.IndexOf(filename) > -1 then
+ begin
Result := mstMissing;
exit;
end;
// if file has masters that are disabled,
// return mstDisabled
- if slDisabled.IndexOf(filename) > -1 then begin
+ if slDisabled.IndexOf(filename) > -1 then
+ begin
Result := mstDisabled;
exit;
end;
@@ -248,36 +259,42 @@ procedure TPluginSelectionForm.lvPluginsData(Sender: TObject; Item: TListItem);
i: Integer;
begin
// get item data
- aListItem := ListItems[Item.Index];
+ aListItem := ListItems[Item.index];
Item.Caption := aListItem.Fields[0];
Item.StateIndex := aListItem.StateIndex;
// get subitems
- for i := 1 to Pred(aListItem.fields.Count) do
- Item.SubItems.Add(aListItem.fields[i]);
+ for i := 1 to Pred(aListItem.Fields.Count) do
+ Item.SubItems.Add(aListItem.Fields[i]);
// set font color based on master status of item
lvPlugins.Canvas.Font.Style := [fsBold];
MasterStatus := GetMasterStatus(Item.Caption);
case MasterStatus of
- mstNone: begin
- lvPlugins.Canvas.Font.Style := [];
- lvPlugins.Canvas.Font.Color := clBlack;
- end;
- mstMaster: lvPlugins.Canvas.Font.Color := clGreen;
- mstDependency: lvPlugins.Canvas.Font.Color := clMaroon;
- mstBoth: lvPlugins.Canvas.Font.Color := clPurple;
- mstMissing: begin
- lvPlugins.Canvas.Font.Style := [fsItalic];
- lvPlugins.Canvas.Font.Color := clGray;
- end;
- mstDisabled: begin
- lvPlugins.Canvas.Font.Style := [fsItalic];
- lvPlugins.Canvas.Font.Color := clRed;
- end;
+ mstNone:
+ begin
+ lvPlugins.Canvas.Font.Style := [];
+ lvPlugins.Canvas.Font.Color := clBlack;
+ end;
+ mstMaster:
+ lvPlugins.Canvas.Font.Color := clGreen;
+ mstDependency:
+ lvPlugins.Canvas.Font.Color := clMaroon;
+ mstBoth:
+ lvPlugins.Canvas.Font.Color := clPurple;
+ mstMissing:
+ begin
+ lvPlugins.Canvas.Font.Style := [fsItalic];
+ lvPlugins.Canvas.Font.Color := clGray;
+ end;
+ mstDisabled:
+ begin
+ lvPlugins.Canvas.Font.Style := [fsItalic];
+ lvPlugins.Canvas.Font.Color := clRed;
+ end;
end;
end;
-procedure TPluginSelectionForm.DrawCheckbox(aCanvas: TCanvas; var x, y: Integer;
+procedure TPluginSelectionForm.DrawCheckbox(aCanvas: TCanvas; var X, Y: Integer;
state: Integer);
var
icon: TIcon;
@@ -286,8 +303,8 @@ procedure TPluginSelectionForm.DrawCheckbox(aCanvas: TCanvas; var x, y: Integer;
exit;
icon := TIcon.Create;
StateImages.GetIcon(state, icon);
- aCanvas.Draw(x, y, icon);
- Inc(x, 17);
+ aCanvas.Draw(X, Y, icon);
+ Inc(X, 17);
icon.Free;
end;
@@ -296,7 +313,8 @@ procedure TPluginSelectionForm.DrawSubItems(ListView: TListView; var R: TRect;
var
i: Integer;
begin
- for i := 0 to Pred(Item.SubItems.Count) do begin
+ for i := 0 to Pred(Item.SubItems.Count) do
+ begin
// redefine rect to draw in the space for the column
// use trailing padding to keep items lined up on columns
R.Left := R.Right;
@@ -330,13 +348,14 @@ procedure TPluginSelectionForm.DrawItem(ListView: TListView; var R: TRect;
end;
procedure TPluginSelectionForm.lvPluginsDrawItem(Sender: TCustomListView;
- Item: TListItem; Rect: TRect; State: TOwnerDrawState);
+ Item: TListItem; Rect: TRect; state: TOwnerDrawState);
var
ListView: TListView;
begin
// draw background color
ListView := TListView(Sender);
- if Item.Selected then begin
+ if Item.Selected then
+ begin
ListView.Canvas.Brush.Color := $FFEEDD;
ListView.Canvas.FillRect(Rect);
end;
@@ -362,21 +381,26 @@ procedure TPluginSelectionForm.lvPluginsKeyPress(Sender: TObject;
// If we are within the buffer delay append the key to a
// temporary buffer and search for next item matching the
// buffer in the list view items.
- if fBufferDiff < fBufferDelay then begin
+ if fBufferDiff < fBufferDelay then
+ begin
fLastBufferTime := Now;
sTempBuffer := sBuffer + Key;
iFoundIndex := ListView_NextMatch(lvPlugins, sTempBuffer, 0);
// If we found a match, handle it
- if iFoundIndex > -1 then begin
+ if iFoundIndex > -1 then
+ begin
ListView_HandleMatch(lvPlugins, iFoundIndex, sBuffer, sTempBuffer);
Key := #0;
end;
end
- else begin
+ else
+ begin
// Allow user to use space to toggle checkbox state
// for all selected items
- if Key = ' ' then begin
- for i := 0 to Pred(lvPlugins.Items.Count) do begin
+ if Key = ' ' then
+ begin
+ for i := 0 to Pred(lvPlugins.Items.Count) do
+ begin
ListItem := lvPlugins.Items[i];
if ListItem.Selected then
if slMissing.IndexOf(slAllPlugins[i]) = -1 then
@@ -395,16 +419,17 @@ procedure TPluginSelectionForm.lvPluginsKeyPress(Sender: TObject;
lvPlugins.ClearSelection;
iFoundIndex := ListView_NextMatch(lvPlugins, sTempBuffer, 0);
// If we found a match, handle it
- if iFoundIndex > -1 then begin
+ if iFoundIndex > -1 then
+ begin
ListView_HandleMatch(lvPlugins, iFoundIndex, sBuffer, sTempBuffer);
Key := #0;
end;
end;
end;
-function OnStateIcon(X, Y: Integer): Boolean;
+function OnStateIcon(X, Y: Integer): boolean;
begin
- Result := (x >= 2) and (x <= 14);
+ Result := (X >= 2) and (X <= 14);
end;
procedure TPluginSelectionForm.lvPluginsMouseDown(Sender: TObject;
@@ -414,9 +439,10 @@ procedure TPluginSelectionForm.lvPluginsMouseDown(Sender: TObject;
begin
// toggle checkbox state
ListItem := lvPlugins.GetItemAt(X, Y);
- if OnStateIcon(X, Y) then begin
- if slMissing.IndexOf(slAllPlugins[ListItem.Index]) = -1 then
- ToggleState(TPluginListItem(ListItems[ListItem.Index]));
+ if OnStateIcon(X, Y) then
+ begin
+ if slMissing.IndexOf(slAllPlugins[ListItem.index]) = -1 then
+ ToggleState(TPluginListItem(ListItems[ListItem.index]));
// repaint to show updated checkbox state
UpdateDisabled;
@@ -428,7 +454,7 @@ procedure TPluginSelectionForm.lvPluginsMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
pt: TPoint;
- li : TListItem;
+ li: TListItem;
hint, str: string;
slTempMasters, slTempReq: TStringList;
i: Integer;
@@ -442,7 +468,8 @@ procedure TPluginSelectionForm.lvPluginsMouseMove(Sender: TObject;
slTempMasters := TStringList.Create;
try
GetPluginMasters(li.Caption, slTempMasters);
- if slMissing.IndexOf(li.Caption) > -1 then begin
+ if slMissing.IndexOf(li.Caption) > -1 then
+ begin
str := '';
for i := 0 to Pred(slTempMasters.Count) do
if slAllPlugins.IndexOf(slTempMasters[i]) = -1 then
@@ -469,10 +496,11 @@ procedure TPluginSelectionForm.lvPluginsMouseMove(Sender: TObject;
hint := Trim(hint);
// activate hint if it differs from previously displayed hint
- if (hint <> sLastHint) then begin
+ if (hint <> sLastHint) then
+ begin
sLastHint := hint;
- lvPlugins.ShowHint := True;
- lvPlugins.Hint := hint;
+ lvPlugins.ShowHint := true;
+ lvPlugins.hint := hint;
Application.ActivateHint(Mouse.CursorPos);
end;
end;
@@ -507,7 +535,8 @@ procedure TPluginSelectionForm.FormShow(Sender: TObject);
try
sl.CommaText := sColumns;
iColumnSize := (lvPlugins.ClientWidth - 300) div (sl.Count - 1);
- for i := 0 to Pred(sl.Count) do begin
+ for i := 0 to Pred(sl.Count) do
+ begin
aColumn := lvPlugins.Columns.Add;
aColumn.Caption := sl[i];
aColumn.Width := IfThenInt(i = 0, 300, iColumnSize);
@@ -519,7 +548,8 @@ procedure TPluginSelectionForm.FormShow(Sender: TObject);
end;
// add plugin items to list
- for i := 0 to Pred(slAllPlugins.Count) do begin
+ for i := 0 to Pred(slAllPlugins.Count) do
+ begin
sPlugin := slAllPlugins[i];
aListItem := TPluginListItem.Create;
// check ListItem if it's in the CheckedPlugins list
@@ -534,12 +564,14 @@ procedure TPluginSelectionForm.FormShow(Sender: TObject);
// are missing
sl := TStringList.Create;
try
- for i := 0 to Pred(slAllPlugins.Count) do begin
+ for i := 0 to Pred(slAllPlugins.Count) do
+ begin
sPlugin := slAllPlugins[i];
aListItem := TPluginListItem(ListItems[i]);
GetPluginMasters(sPlugin, sl);
for j := 0 to Pred(sl.Count) do
- if slAllPlugins.IndexOf(sl[j]) = -1 then begin
+ if slAllPlugins.IndexOf(sl[j]) = -1 then
+ begin
slMissing.Add(sPlugin);
aListItem.StateIndex := cUnChecked;
break;
@@ -561,7 +593,7 @@ procedure TPluginSelectionForm.FormShow(Sender: TObject);
procedure TPluginSelectionForm.PluginsPopupMenuPopup(Sender: TObject);
var
- bHasMasters, bHasDependencies: Boolean;
+ bHasMasters, bHasDependencies: boolean;
begin
bHasMasters := slMasters.Count > 0;
bHasDependencies := slDependencies.Count > 0;
@@ -612,7 +644,8 @@ procedure TPluginSelectionForm.CheckMastersItemClick(Sender: TObject);
i, index: Integer;
begin
// loop through masters of selected plugins
- for i := 0 to Pred(slMasters.Count) do begin
+ for i := 0 to Pred(slMasters.Count) do
+ begin
index := slAllPlugins.IndexOf(slMasters[i]);
// if the masters isn't loaded, skip it
if index = -1 then
@@ -631,7 +664,8 @@ procedure TPluginSelectionForm.UncheckMastersItemClick(Sender: TObject);
i, index: Integer;
begin
// loop through masters of selected plugins
- for i := 0 to Pred(slMasters.Count) do begin
+ for i := 0 to Pred(slMasters.Count) do
+ begin
index := slAllPlugins.IndexOf(slMasters[i]);
// if the masters isn't loaded, skip it
if index = -1 then
@@ -650,7 +684,8 @@ procedure TPluginSelectionForm.CheckDependenciesItemClick(Sender: TObject);
i, index: Integer;
begin
// loop through dependencies of selected plugins
- for i := 0 to Pred(slDependencies.Count) do begin
+ for i := 0 to Pred(slDependencies.Count) do
+ begin
index := slAllPlugins.IndexOf(slDependencies[i]);
// check it
TPluginListItem(ListItems[index]).StateIndex := cChecked;
@@ -666,7 +701,8 @@ procedure TPluginSelectionForm.UncheckDependenciesItemClick(Sender: TObject);
i, index: Integer;
begin
// loop through dependencies of selected plugins
- for i := 0 to Pred(slDependencies.Count) do begin
+ for i := 0 to Pred(slDependencies.Count) do
+ begin
index := slAllPlugins.IndexOf(slDependencies[i]);
// uncheck it
TPluginListItem(ListItems[index]).StateIndex := cUnChecked;
diff --git a/lib/mte/mteProgressForm.dfm b/lib/mte/mteProgressForm.dfm
old mode 100644
new mode 100755
index 878b1e7..d309dbd
--- a/lib/mte/mteProgressForm.dfm
+++ b/lib/mte/mteProgressForm.dfm
@@ -39,6 +39,7 @@ object ProgressForm: TProgressForm
ReadOnly = True
ScrollBars = ssVertical
TabOrder = 0
+ WordWrap = False
end
object DetailsButton: TButton
Left = 428
diff --git a/lib/mte/mteProgressForm.pas b/lib/mte/mteProgressForm.pas
old mode 100644
new mode 100755
index 1970cd2..a574a6c
--- a/lib/mte/mteProgressForm.pas
+++ b/lib/mte/mteProgressForm.pas
@@ -3,10 +3,12 @@
interface
uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Windows, Math, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls,
// mte components
- W7Taskbar, mteTracker;
+ W7Taskbar, mteTracker,
+ // third party
+ LoggerPro;
type
TProgressForm = class(TForm)
@@ -18,7 +20,6 @@ TProgressForm = class(TForm)
procedure UpdateProgress(const i: Integer);
procedure StatusMessage(const s: string);
procedure Write(const s: string);
- procedure SaveLog;
procedure SetProgress(const i: Integer);
procedure SetMaxProgress(const i: Integer);
function GetProgress: Integer;
@@ -31,28 +32,38 @@ TProgressForm = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private declarations }
+ FLog: ILogWriter;
public
- bDetailsVisible: boolean;
- pfLogPath: string;
+ bDetailsVisible: Boolean;
end;
implementation
+uses
+ {$IFDEF DEBUG}
+ // Only useful for us in debug builds?
+ LoggerPro.OutputDebugStringAppender,
+ {$ENDIF}
+ LoggerPro.VCLMemoAppender,
+ LoggerPro.FileAppender;
+
var
- lastHeight: integer;
+ lastHeight: Integer;
{$R *.dfm}
procedure TProgressForm.ToggleDetails(Sender: TObject);
begin
bDetailsVisible := not bDetailsVisible;
- if bDetailsVisible then begin
+ if bDetailsVisible then
+ begin
self.Height := lastHeight;
DetailsMemo.Visible := true;
DetailsButton.Caption := 'Hide details';
DetailsMemo.Height := self.Height - 135;
end
- else begin
+ else
+ begin
DetailsMemo.Visible := false;
DetailsButton.Caption := 'Show details';
lastHeight := self.Height;
@@ -80,8 +91,9 @@ procedure TProgressForm.FormClose(Sender: TObject; var Action: TCloseAction);
procedure TProgressForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := (fsModal in FormState);
- //Tracker.Write('CanClose = '+BoolToStr(CanClose, true));
- if not (CanClose or Tracker.Cancel) then begin
+ // Tracker.Write('CanClose = '+BoolToStr(CanClose, true));
+ if not(CanClose or Tracker.Cancel) then
+ begin
Tracker.Write('Cancelling...');
SetTaskbarProgressState(tbpsError);
Tracker.Cancel := true;
@@ -101,16 +113,26 @@ procedure TProgressForm.FormCreate(Sender: TObject);
Tracker.OnStatusEvent := StatusMessage;
Tracker.OnGetEvent := GetProgress;
Tracker.OnGetMaxEvent := GetMaxProgress;
+ FLog := BuildLogWriter([
+ {$IFDEF DEBUG}
+ // Only useful for us in debug builds?
+ TLoggerProOutputDebugStringAppender.Create(),
+ {$ENDIF}
+ TLoggerProFileAppender.Create(4, Floor(High(Integer) / 1024)),
+ TVCLMemoLogAppender.Create(DetailsMemo)
+ ]);
end;
procedure TProgressForm.FormShow(Sender: TObject);
begin
- if (fsModal in FormState) then begin
+ if (fsModal in FormState) then
+ begin
CancelButton.Caption := 'Close';
if not bDetailsVisible then
ToggleDetails(nil);
end
- else if not bDetailsVisible then begin
+ else if not bDetailsVisible then
+ begin
bDetailsVisible := false;
DetailsMemo.Visible := false;
DetailsButton.Caption := 'Show details';
@@ -146,19 +168,6 @@ procedure TProgressForm.UpdateProgress(const i: Integer);
SetTaskbarProgressValue(ProgressBar.Position, ProgressBar.Max);
end;
-procedure TProgressForm.SaveLog;
-var
- fdt: string;
-begin
- try
- ForceDirectories(pfLogPath);
- fdt := FormatDateTime('mmddyy_hhnnss', TDateTime(Now));
- DetailsMemo.Lines.SaveToFile(pfLogPath + 'log_'+fdt+'.txt');
- except on Exception do
- // nothing to do
- end;
-end;
-
procedure TProgressForm.StatusMessage(const s: string);
begin
ProgressLabel.Caption := s;
@@ -167,9 +176,8 @@ procedure TProgressForm.StatusMessage(const s: string);
procedure TProgressForm.Write(const s: string);
begin
if Pos(' ', s) <> 1 then
- ProgressLabel.Caption := s;
- DetailsMemo.SelLength := 0;
- DetailsMemo.Lines.Add(s);
+ StatusMessage(s);
+ FLog.Info(s, Tracker.Tag);
end;
end.
diff --git a/lib/mte/mteTaskHandler.pas b/lib/mte/mteTaskHandler.pas
old mode 100644
new mode 100755
index f79b50e..8ff3cf2
--- a/lib/mte/mteTaskHandler.pas
+++ b/lib/mte/mteTaskHandler.pas
@@ -9,17 +9,20 @@ interface
type
TProcedure = procedure of object;
- TTask = class (TObject)
+
+ TTask = class(TObject)
private
- FExecute : TProcedure;
+ FExecute: TProcedure;
public
name: string;
rate: real;
lastExecuted: TDateTime;
- constructor Create(name: string; rate: real; FExecute: TProcedure); Overload;
+ constructor Create(name: string; rate: real; FExecute: TProcedure);
+ Overload;
property OnExecute: TProcedure read FExecute write FExecute;
procedure Execute;
end;
+
TTaskHandler = class(TObject)
public
TaskList: TList;
@@ -48,9 +51,11 @@ procedure TTaskHandler.RemoveTask(taskName: string);
if not Assigned(TaskList) then
exit;
- for i := Pred(TaskList.Count) downto 0 do begin
+ for i := Pred(TaskList.Count) downto 0 do
+ begin
task := TTask(TaskList[i]);
- if task.name = taskName then begin
+ if task.name = taskName then
+ begin
TaskList.Delete(i);
break;
end;
@@ -68,9 +73,11 @@ procedure TTaskHandler.ExecTasks;
bExecutingTasks := true;
// loop through task list, executing tasks that are ready to be executed
- for i := Pred(TaskList.Count) downto 0 do begin
+ for i := Pred(TaskList.Count) downto 0 do
+ begin
task := TTask(TaskList[i]);
- if (Now - task.lastExecuted >= task.rate) then begin
+ if (Now - task.lastExecuted >= task.rate) then
+ begin
if bLogTasks and (task.rate > 60.0 * seconds) then
Logger.Write('TASK', 'Execute', task.name);
task.lastExecuted := Now;
@@ -87,12 +94,11 @@ constructor TTaskHandler.Create;
TaskList := TList.Create;
end;
-
-{******************************************************************************}
+{ ****************************************************************************** }
{ Task methods
Object methods for TTask
}
-{******************************************************************************}
+{ ****************************************************************************** }
constructor TTask.Create(name: string; rate: real; FExecute: TProcedure);
begin
@@ -106,9 +112,8 @@ constructor TTask.Create(name: string; rate: real; FExecute: TProcedure);
procedure TTask.Execute;
begin
- if Assigned(FExecute) then
- FExecute;
+ if Assigned(FExecute) then
+ FExecute;
end;
end.
-
diff --git a/lib/mte/mteTracker.pas b/lib/mte/mteTracker.pas
old mode 100644
new mode 100755
index c893018..499b1d9
--- a/lib/mte/mteTracker.pas
+++ b/lib/mte/mteTracker.pas
@@ -20,6 +20,7 @@ TProgressTracker = class
FStatusEvent : TLogEvent;
public
Cancel: boolean;
+ Tag: string;
procedure SetMaxProgress(const i: integer);
property OnSetMaxEvent: TUpdateEvent read FMaxEvent write FMaxEvent;
procedure SetProgress(const i: integer);
diff --git a/lib/xedit b/lib/xedit
new file mode 160000
index 0000000..a352b0d
--- /dev/null
+++ b/lib/xedit
@@ -0,0 +1 @@
+Subproject commit a352b0d50350b637f803286c0b6ab36a61581eb1
diff --git a/lib/xedit/lz4/lz4.pas b/lib/xedit/lz4/lz4.pas
deleted file mode 100644
index 171a9fa..0000000
--- a/lib/xedit/lz4/lz4.pas
+++ /dev/null
@@ -1,1079 +0,0 @@
-(*
- LZ4Delphi
- Copyright (C) 2015, Jose Pascoa (atelierwebgm@gmail.com)
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- *************************************************************************
- LZ4 - Fast LZ compression algorithm
- xxHash - Fast Hash algorithm
- LZ4 source repository : http://code.google.com/p/lz4/
- xxHash source repository : http://code.google.com/p/xxhash/
- Copyright (c) 2011-2014, Yann Collet
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************
-*)
-unit lz4;
-{$POINTERMATH ON}
-
-interface
-
-uses Windows, lz4Common;
-
-const
- LZ4_VERSION_MAJOR = 1;
- LZ4_VERSION_MINOR = 5;
- LZ4_VERSION_RELEASE = 0;
- LZ4_MEMORY_USAGE = 14;
- LZ4_STREAMSIZE_U64 = (1 shl (LZ4_MEMORY_USAGE - 3)) + 4;
- LZ4_STREAMSIZE = LZ4_STREAMSIZE_U64 * sizeof(int64);
- LZ4_MAX_INPUT_SIZE = $7E000000;
- LZ4_UNALIGNED_ACCESS = 1;
- LZ4_STREAMDECODESIZE_U64 = 4;
-
-type
- PLZ4_stream_t = ^LZ4_stream_t;
-
- LZ4_stream_t = record
- table: array [0 .. LZ4_STREAMSIZE_U64 - 1] of int64;
- end;
-
- PLZ4_streamDecode_t = ^LZ4_streamDecode_t;
-
- LZ4_streamDecode_t = record
- table: array [0 .. LZ4_STREAMDECODESIZE_U64 - 1] of int64;
- end;
-
-function LZ4_versionNumber: integer;
-function LZ4_compressBound(iSize: cardinal): cardinal;
-function LZ4_create(inputBuffer: pAnsiChar): pointer;
-function LZ4_createStream: PLZ4_stream_t;
-procedure LZ4_freeStream(LZ4_streamPtr: PLZ4_stream_t);
-function LZ4_createStreamDecode: PLZ4_streamDecode_t;
-procedure LZ4_freeStreamDecode(LZ4_stream: PLZ4_streamDecode_t);
-function LZ4_compress(source: pAnsiChar; dest: pAnsiChar; sourceSize: integer): integer;
-function LZ4_decompress_safe(source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxDecompressedSize: integer): integer;
-function LZ4_compress_continue(LZ4_stream: pointer; const ASource: pointer; ADestination: pointer; AInputSize: integer): integer;
-function LZ4_saveDict(LZ4_streamPtr: PLZ4_stream_t; safeBuffer: pointer; dictSize: integer): integer;
-function LZ4_decompress_safe_continue(LZ4_streamDecode: PLZ4_streamDecode_t; source: pointer; dest: pointer; compressedSize: integer;
- maxDecompressedSize: integer): integer;
-function LZ4_compress_limitedOutput(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; maxOutputSize: integer): integer;
-function LZ4_compress_withState(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-function LZ4_compress_limitedOutput_withState(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer): integer;
-function LZ4_compress_limitedOutput_continue(LZ4_stream: PLZ4_stream_t; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer): integer;
-procedure LZ4_resetStream(LZ4_stream: PLZ4_stream_t);
-function LZ4_loadDict(LZ4_dict: PLZ4_stream_t; dictionary: pAnsiChar; dictSize: integer): integer;
-// debug function
-function LZ4_compress_forceExtDict(LZ4_dict: PLZ4_stream_t; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-function LZ4_decompress_fast(source: pAnsiChar; dest: pAnsiChar; originalSize: integer): integer;
-function LZ4_decompress_fast_withPrefix64k(source: pAnsiChar; dest: pAnsiChar; originalSize: integer): integer;
-function LZ4_decompress_fast_usingDict(source: pAnsiChar; dest: pAnsiChar; originalSize: integer; const dictStart: pAnsiChar;
- dictSize: integer): integer;
-function LZ4_decompress_safe_withPrefix64k(source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxOutputSize: integer): integer;
-function LZ4_decompress_safe_usingDict(const source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxOutputSize: integer;
- const dictStart: pAnsiChar; dictSize: integer): integer;
-function LZ4_decompress_safe_partial(const source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; targetOutputSize: integer;
- maxDecompressedSize: integer): integer;
-function LZ4_decompress_safe_forceExtDict(source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxOutputSize: integer;
- const dictStart: pAnsiChar; dictSize: integer): integer;
-
-// replaced with move(source^, dest^, count)
-// procedure memmove(dest, source: pointer; count: integer); cdecl; external 'msvcrt.dll' name 'memmove';
-
-implementation
-
-const
- LZ4_HASHLOG = LZ4_MEMORY_USAGE - 2;
- HASHTABLESIZE = 1 shl LZ4_MEMORY_USAGE;
- HASH_SIZE_U32 = 1 shl LZ4_HASHLOG;
-
-type
- limitedOutput_directive = (notLimited = 0, limitedOutput = 1);
- tableType_t = (byPtr, byU32, byU16);
- dict_directive = (noDict = 0, withPrefix64k, usingExtDict);
- dictIssue_directive = (noDictIssue = 0, dictSmall);
- endCondition_directive = (endOnOutputSize = 0, endOnInputSize = 1);
- earlyEnd_directive = (full = 0, partial = 1);
-
- PLZ4_stream_t_internal = ^LZ4_stream_t_internal;
-
- LZ4_stream_t_internal = record
- hashTable: array [0 .. HASH_SIZE_U32 - 1] of cardinal;
- currentOffset: cardinal;
- initCheck: cardinal;
- dictionary: pByte;
- bufferStart: pByte;
- dictSize: cardinal;
- end;
-
- PLZ4_streamDecode_t_internal = ^LZ4_streamDecode_t_internal;
-
- LZ4_streamDecode_t_internal = record
- externalDict: pByte;
- extDictSize: size_t;
- prefixEnd: pByte;
- prefixSize: size_t;
- end;
-
-var
- LZ4_64Klimit: integer = 65536 + _MFLIMIT - 1;
- LZ4_skipTrigger: cardinal = 6;
- LZ4_minLength: integer = (_MFLIMIT + 1);
-
-function LZ4_versionNumber: integer;
-begin
- result := LZ4_VERSION_MAJOR * 100 * 100 + LZ4_VERSION_MINOR * 100 + LZ4_VERSION_RELEASE;
-end;
-
-function LZ4_compressBound(iSize: cardinal): cardinal;
-begin
- if (iSize) > cardinal(LZ4_MAX_INPUT_SIZE) then
- result := 0
- else
- result := iSize + (iSize div 255 + 16)
-end;
-
-procedure LZ4_copy8(const dstPtr: pointer; const srcPtr: pointer); inline;
-begin
-{$IFDEF WIN64}
- pUint64(dstPtr)^ := pUint64(srcPtr)^;
-{$ELSE}
- pCardinal(dstPtr)[0] := pCardinal(srcPtr)[0];
- pCardinal(dstPtr)[1] := pCardinal(srcPtr)[1];
-{$ENDIF}
-end;
-
-function LZ4_hashSequence(sequence: cardinal; tableType: tableType_t): cardinal; inline;
-const
- SHL1 = (MINMATCH * 8) - (LZ4_HASHLOG + 1);
- SHL2 = ((MINMATCH * 8) - LZ4_HASHLOG);
-begin
- if (tableType = byU16) then
- result := (sequence * 2654435761) shr SHL1
- else
- result := (sequence * 2654435761) shr SHL2;
-end;
-
-function LZ4_hashPosition(const p: pByte; tableType: tableType_t): cardinal; inline;
-begin
- result := LZ4_hashSequence(pCardinal(p)^, tableType);
-end;
-
-procedure LZ4_putPositionOnHash(const p: pByte; h: cardinal; tableBase: pointer; tableType: tableType_t; const srcBase: pByte); inline;
-begin
- case tableType of
- byPtr: ppByte(tableBase)[h] := p;
- byU32: pCardinal(tableBase)[h] := cardinal(p - srcBase);
- byU16: pWord(tableBase)[h] := word(p - srcBase);
- end;
-end;
-
-function LZ4_getPositionOnHash(h: cardinal; tableBase: pointer; tableType: tableType_t; const srcBase: pByte): pByte; inline;
-begin
- if (tableType = byPtr) then
- result := ppByte(tableBase)[h]
- else if (tableType = byU32) then
- result := pCardinal(tableBase)[h] + srcBase
- else
- result := pWord(tableBase)[h] + srcBase;
-end;
-
-function LZ4_getPosition(const p: pByte; tableBase: pointer; tableType: tableType_t; const srcBase: pByte): pByte; inline;
-var
- h: cardinal;
-begin
- h := LZ4_hashPosition(p, tableType);
- result := LZ4_getPositionOnHash(h, tableBase, tableType, srcBase);
-end;
-
-procedure LZ4_putPosition(const p: pByte; tableBase: pointer; tableType: tableType_t; const srcBase: pByte); inline;
-var
- h: cardinal;
-begin
- h := LZ4_hashPosition(p, tableType);
- LZ4_putPositionOnHash(p, h, tableBase, tableType, srcBase);
-end;
-
-function LZ4_compress_generic(ctx: pointer; const source: pointer; dest: pointer; inputSize: integer; maxOutputSize: integer;
- outputLimited: limitedOutput_directive; tableType: tableType_t; dict: dict_directive; dictIssue: dictIssue_directive): integer; inline;
-var
- lowRefLimit: pByte;
- match: pByte;
- refDelta: size_t;
- ip: pByte;
-
- dictPtr: PLZ4_stream_t_internal;
- base: pByte;
- lowLimit: pByte;
- dictionary: pByte;
- dictEnd: pByte;
- dictDelta: size_t;
- anchor: pByte;
- iend: pByte;
- mflimit: pByte;
- matchlimit: pByte;
- op: pByte;
- olimit: pByte;
- forwardH: cardinal;
- lastRun: integer;
- token: pByte;
- forwardIp: pByte;
- step: cardinal;
- searchMatchNb: cardinal;
- h: cardinal;
- litLength: cardinal;
- len: integer;
- matchLength: cardinal;
- limit: pByte;
- more: cardinal;
- booleanValue: boolean;
-label
- _last_literals, _next_match;
-begin
- match := nil;
- dictPtr := ctx;
- ip := pByte(source);
- lowRefLimit := ip - dictPtr.dictSize;
- dictionary := dictPtr.dictionary;
- dictEnd := dictionary + dictPtr.dictSize;
- dictDelta := dictEnd - pByte(source);
- anchor := pByte(source);
- iend := ip + inputSize;
- mflimit := iend - _MFLIMIT;
- matchlimit := iend - LASTLITERALS;
-
- op := pByte(dest);
- olimit := op + maxOutputSize;
- refDelta := 0;
-
- if cardinal(inputSize) > cardinal(LZ4_MAX_INPUT_SIZE) then
- exit(0);
-
- case dict of
- withPrefix64k:
- begin
- base := pByte(source) - dictPtr.currentOffset;
- lowLimit := pByte(source) - dictPtr.dictSize;
- end;
- usingExtDict:
- begin
- base := pByte(source) - dictPtr.currentOffset;
- lowLimit := pByte(source);
- end;
- else
- begin
- base := pByte(source);
- lowLimit := pByte(source);
- end;
- end;
-
- if ((tableType = byU16) and (inputSize >= LZ4_64Klimit)) then
- exit(0);
- if (inputSize < LZ4_minLength) then
- goto _last_literals;
-
- LZ4_putPosition(ip, ctx, tableType, base);
- inc(ip);
- forwardH := LZ4_hashPosition(ip, tableType);
-
- while true do
- begin
- forwardIp := ip;
- step := 1;
- searchMatchNb := (1 shl LZ4_skipTrigger);
- while true do
- begin
- h := forwardH;
- ip := forwardIp;
- inc(forwardIp, step);
- step := searchMatchNb shr LZ4_skipTrigger;
- inc(searchMatchNb);
-
- if forwardIp > mflimit then
- goto _last_literals;
-
- match := LZ4_getPositionOnHash(h, ctx, tableType, base);
- if (dict = usingExtDict) then
- begin
- if match < pByte(source) then
- begin
- refDelta := dictDelta;
- lowLimit := dictionary;
- end
- else
- begin
- refDelta := 0;
- lowLimit := pByte(source);
- end;
- end;
- forwardH := LZ4_hashPosition(forwardIp, tableType);
- LZ4_putPositionOnHash(ip, h, ctx, tableType, base);
- if (dictIssue = dictSmall) and (match < lowRefLimit) then
- continue;
- if not(tableType = byU16) and (match + MAX_DISTANCE < ip) then
- continue;
- if (pCardinal(match + refDelta)^ <> pCardinal(ip)^) then
- continue;
- break;
- end;
-
- while (ip > anchor) and (match + refDelta > lowLimit) and (ip[-1] = match[refDelta - 1]) do
- begin
- dec(ip);
- dec(match);
- end;
- litLength := cardinal(ip - anchor);
- token := op;
- inc(op);
- if (outputLimited <> notLimited) and (op + litLength + (2 + 1 + LASTLITERALS) + (litLength div 255) > olimit) then
- exit(0);
- if (litLength >= RUN_MASK) then
- begin
- len := integer(litLength - RUN_MASK);
- token^ := (RUN_MASK shl ML_BITS);
- while len >= 255 do
- begin
- op^ := 255;
- inc(op);
- dec(len, 255);
- end;
- op^ := BYTE(len);
- inc(op);
- end
- else
- token^ := BYTE(litLength shl ML_BITS);
- LZ4_wildCopy(op, anchor, op + litLength);
- inc(op, litLength);
- _next_match:
- pWord(op)^ := word(ip - match);
- inc(op, 2);
-
- if (dict = usingExtDict) and (lowLimit = dictionary) then
- begin
- inc(match, refDelta);
- limit := ip + (dictEnd - match);
- if (limit > matchlimit) then
- limit := matchlimit;
- matchLength := LZ4_count(ip + MINMATCH, match + MINMATCH, limit);
- inc(ip, MINMATCH + matchLength);
- if (ip = limit) then
- begin
- more := LZ4_count(ip, pByte(source), matchlimit);
- inc(matchLength, more);
- inc(ip, more);
- end;
- end
- else
- begin
- matchLength := LZ4_count(ip + MINMATCH, match + MINMATCH, matchlimit);
- inc(ip, MINMATCH + matchLength);
- end;
- if (outputLimited <> notLimited) and (op + (1 + LASTLITERALS) + (matchLength shr 8) > olimit) then
- exit(0);
- if (matchLength >= ML_MASK) then
- begin
- inc(token^, ML_MASK);
- dec(matchLength, ML_MASK);
- while matchLength >= 510 do
- begin
- pWord(op)^ := $FFFF;
- inc(op, 2);
- // op^ := 255;
- // inc(op);
- // op^ := 255;
- // inc(op);
- dec(matchLength, 510);
- end;
- if (matchLength >= 255) then
- begin
- dec(matchLength, 255);
- op^ := 255;
- inc(op);
- end;
- op^ := BYTE(matchLength);
- inc(op);
- end
- else
- inc(token^, BYTE(matchLength));
-
- anchor := ip;
- if (ip > mflimit) then
- break;
- LZ4_putPosition(ip - 2, ctx, tableType, base);
- match := LZ4_getPosition(ip, ctx, tableType, base);
- if (dict = usingExtDict) then
- begin
- if match < pByte(source) then
- begin
- refDelta := dictDelta;
- lowLimit := dictionary;
- end
- else
- begin
- refDelta := 0;
- lowLimit := pByte(source);
- end;
- end;
- LZ4_putPosition(ip, ctx, tableType, base);
-
- if dictIssue = dictSmall then
- booleanValue := match >= lowRefLimit
- else
- booleanValue := true;
- if (booleanValue and (match + MAX_DISTANCE >= ip)
- and (pCardinal(match + refDelta)^ = pCardinal(ip)^)) then
- begin
- token := op;
- inc(op);
- token^ := 0;
- goto _next_match;
- end;
- inc(ip);
- forwardH := LZ4_hashPosition(ip, tableType);
- end;
-
-_last_literals:
- lastRun := integer(iend - anchor);
- if (outputLimited <> notLimited) and ((op - pByte(dest)) + lastRun + 1 + ((lastRun + 255 - RUN_MASK) div 255) >
- maxOutputSize)
- then
- exit(0);
- if lastRun >= integer(RUN_MASK) then
- begin
- op^ := (RUN_MASK shl ML_BITS);
- inc(op);
- dec(lastRun, RUN_MASK);
- while lastRun >= 255 do
- begin
- op^ := 255;
- inc(op);
- dec(lastRun, 255);
- end;
- op^ := BYTE(lastRun);
- inc(op);
- end
- else
- begin
- op^ := BYTE(lastRun shl ML_BITS);
- inc(op);
- end;
- move(anchor^, op^, iend - anchor);
- inc(op, iend - anchor);
-
- result := integer(op - pByte(dest));
-end;
-
-function LZ4_compress(source: pAnsiChar; dest: pAnsiChar; sourceSize: integer): integer;
-var
- ctx: array [0 .. LZ4_STREAMSIZE_U64 - 1] of uint64;
-begin
- fillchar(ctx, sizeof(ctx), 0);
- if sourceSize < LZ4_64Klimit then
- result := LZ4_compress_generic(@ctx, source, dest, sourceSize, 0, notLimited, byU16, noDict, noDictIssue)
- else
- begin
-{$IFDEF WIN64}
- result := LZ4_compress_generic(@ctx, source, dest, sourceSize, 0, notLimited, byU32, noDict,
- noDictIssue)
-{$ELSE}
- result := LZ4_compress_generic(@ctx, source, dest, sourceSize, 0, notLimited, byPtr, noDict, noDictIssue);
-{$ENDIF}
- end;
-end;
-
-function LZ4_decompress_generic(const source: pointer; const dest: pointer; inputSize: integer; outputSize: integer;
- endOnInput: integer; partialDecoding: integer; targetOutputSize: integer; dict: integer;
- const lowPrefix: pByte; const dictStart: pByte; const dictSize: size_t): integer; inline;
-var
- ip: pByte;
- iend: pByte;
- op: pByte;
- oend: pByte;
- cpy: pByte;
- oexit: pByte;
- lowLimit: pByte;
- dictEnd: pByte;
- safeDecode: boolean;
- checkOffset: boolean;
- token: cardinal;
- length: size_t;
- match: pByte;
- s: cardinal;
- booleantest: boolean;
- copySize: size_t;
- endOfMatch: pByte;
- copyFrom: pByte;
- dec64: size_t;
-const
- dec32table: array [0 .. 7] of size_t = (4, 1, 2, 1, 4, 4, 4, 4);
- dec64table: array [0 .. 7] of size_t = (0, 0, 0, size_t(-1), 0, 1, 2, 3);
-label
- _output_error;
-begin
- ip := pByte(source);
- iend := ip + inputSize;
- op := pByte(dest);
- oend := op + outputSize;
- oexit := op + targetOutputSize;
- lowLimit := lowPrefix - dictSize;
- dictEnd := pByte(dictStart) + dictSize;
- safeDecode := (endOnInput = integer(endOnInputSize));
- checkOffset := ((safeDecode) and (dictSize < 65536));
-
- if (partialDecoding <> 0) and (oexit > oend - _MFLIMIT) then
- oexit := oend - _MFLIMIT;
- if (endOnInput <> 0) and (outputSize = 0) then
- begin
- if (inputSize = 1) and (ip^ = 0) then
- exit(0)
- else
- exit(-1);
- end;
- if (endOnInput = 0) and (outputSize = 0) then
- begin
- if ip^ = 0 then
- exit(1)
- else
- exit(-1);
- end;
-
- while true do
- begin
- token := ip^;
- inc(ip);
- length := token shr ML_BITS;
- if length = RUN_MASK then
- begin
- while true do
- begin
- s := ip^;
- inc(ip);
- inc(length, s);
- if endOnInput <> 0 then
- begin
- if not(ip < iend - RUN_MASK) then
- break;
- end;
- if s <> 255 then
- break;
- end;
- if safeDecode and (size_t(op + length) < size_t(op)) then
- goto _output_error;
- if safeDecode and (size_t(ip + length) < size_t(ip)) then
- goto _output_error;
- end;
- cpy := op + length;
- if partialDecoding <> 0 then
- booleantest := cpy > oexit
- else
- booleantest := cpy > oend - _MFLIMIT;
-
- if ((endOnInput <> 0) and ((booleantest) or (ip + length > iend - (2 + 1 + LASTLITERALS))))
- or ((endOnInput = 0) and (cpy > oend - COPYLENGTH)) then
- begin
- if partialDecoding <> 0 then
- begin
- if (cpy > oend) then
- goto _output_error;
- if ((endOnInput <> 0) and (ip + length > iend)) then
- goto _output_error;
- end
- else
- begin
- if ((endOnInput = 0) and (cpy <> oend)) then
- goto _output_error;
- if ((endOnInput <> 0) and ((ip + length <> iend) or (cpy > oend))) then
- goto _output_error;
- end;
- move(ip^, op^, length);
- inc(ip, length);
- inc(op, length);
- break;
- end;
- LZ4_wildCopy(op, ip, cpy);
- inc(ip, length);
- op := cpy;
- match := cpy - LZ4_read16(ip); // LZ4_readLE16 = LZ4_read16 for unaligned
- inc(ip, 2);
-
- if checkOffset and (match < lowLimit) then
- goto _output_error;
-
- length := token and ML_MASK;
- if length = ML_MASK then
- begin
- while true do
- begin
- if ((endOnInput <> 0) and (ip > iend - LASTLITERALS)) then
- goto _output_error;
- s := ip^;
- inc(ip);
- inc(length, s);
- if s <> 255 then
- break;
- end;
- if safeDecode and (size_t(op + length) < size_t(op)) then
- goto _output_error;
- end;
- inc(length, MINMATCH);
- if (dict = integer(usingExtDict)) and (match < lowPrefix) then
- begin
- if op + length > oend - LASTLITERALS then
- goto _output_error;
- if (length <= size_t(lowPrefix - match)) then
- begin
- match := dictEnd - (lowPrefix - match);
- move(match^, op^, length);
- inc(op, length);
- end
- else
- begin
- copySize := size_t(lowPrefix - match);
- move((dictEnd - copySize)^, op^, copySize);
- inc(op, copySize);
- copySize := length - copySize;
- if copySize > size_t(op - lowPrefix) then
- begin
- endOfMatch := op + copySize;
- copyFrom := lowPrefix;
- while (op < endOfMatch) do
- begin
- op^ := copyFrom^;
- inc(op);
- inc(copyFrom);
- end;
- end
- else
- begin
- move(lowPrefix^, op^, copySize);
- inc(op, copySize);
- end;
- end;
- continue;
- end;
- cpy := op + length;
- if (op - match) < 8 then
- begin
- dec64 := dec64table[op - match];
- op[0] := match[0];
- op[1] := match[1];
- op[2] := match[2];
- op[3] := match[3];
- inc(match, dec32table[op - match]);
- pCardinal(op + 4)^ := pCardinal(match)^;
- inc(op, 8);
- dec(match, dec64);
- end
- else
- begin
-{$IFDEF WIN64}
- pUint64(op)^ := pUint64(match)^;
-{$ELSE}
- pCardinal(op)[0] := pCardinal(match)[0];
- pCardinal(op)[1] := pCardinal(match)[1];
-{$ENDIF}
- inc(op, 8);
- inc(match, 8);
- end;
-
- if cpy > oend - 12 then
- begin
- if (cpy > oend - LASTLITERALS) then
- goto _output_error;
- if (op < oend - 8) then
- begin
- LZ4_wildCopy(op, match, oend - 8);
- inc(match, (oend - 8) - op);
- op := oend - 8;
- end;
- while (op < cpy) do
- begin
- op^ := match^;
- inc(op);
- inc(match);
- end;
- end
- else
- LZ4_wildCopy(op, match, cpy);
- op := cpy;
- end;
- if (endOnInput <> 0) then
- result := integer(op - pByte(dest))
- else
- result := integer(ip - pByte(source));
- exit;
-_output_error:
- result := -(ip - pByte(source)) - 1;
-end;
-
-function LZ4_decompress_safe(source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxDecompressedSize: integer): integer;
-begin
- result := LZ4_decompress_generic(source, dest, compressedSize, maxDecompressedSize, integer(endOnInputSize), integer(full), 0,
- integer(noDict), pByte(dest), nil, 0);
-end;
-
-function LZ4_createStream: PLZ4_stream_t;
-begin
- result := allocmem(8 * LZ4_STREAMSIZE_U64);
-end;
-
-procedure LZ4_freeStream(LZ4_streamPtr: PLZ4_stream_t);
-begin
- freemem(LZ4_streamPtr);
-end;
-
-function LZ4_createStreamDecode: PLZ4_streamDecode_t;
-begin
- result := allocmem(sizeof(uint64) * LZ4_STREAMDECODESIZE_U64);
-end;
-
-procedure LZ4_freeStreamDecode(LZ4_stream: PLZ4_streamDecode_t);
-begin
- freemem(LZ4_stream);
-end;
-
-procedure LZ4_renormDictT(LZ4_dict: PLZ4_stream_t_internal; src: pByte);
-var
- delta: cardinal;
- dictEnd: pByte;
- i: integer;
-begin
- if (LZ4_dict.currentOffset > $80000000) or
- (size_t(LZ4_dict.currentOffset) > size_t(src)) then
- begin
- delta := LZ4_dict.currentOffset - 65536;
- dictEnd := LZ4_dict.dictionary + LZ4_dict.dictSize;
- for i := 0 to HASH_SIZE_U32 - 1 do
- begin
- if (LZ4_dict.hashTable[i] < delta) then
- LZ4_dict.hashTable[i] := 0
- else
- dec(LZ4_dict.hashTable[i], delta);
- end;
- LZ4_dict.currentOffset := 65536;
- if (LZ4_dict.dictSize > 65536) then
- LZ4_dict.dictSize := 65536;
- LZ4_dict.dictionary := dictEnd - LZ4_dict.dictSize;
- end;
-end;
-
-function LZ4_compress_continue_generic(LZ4_stream: pointer; source: pointer; dest: pointer; inputSize: integer; maxOutputSize: integer;
- limit: limitedOutput_directive): integer; inline;
-var
- streamPtr: PLZ4_stream_t_internal;
- dictEnd: pByte;
- smallest: pByte;
- sourceEnd: pByte;
- res: integer;
-begin
- streamPtr := PLZ4_stream_t_internal(LZ4_stream);
- dictEnd := streamPtr.dictionary + streamPtr.dictSize;
- smallest := pByte(source);
- if (streamPtr.initCheck <> 0) then
- exit(0);
- if (streamPtr.dictSize > 0) and (smallest > dictEnd) then
- smallest := dictEnd;
- LZ4_renormDictT(streamPtr, smallest);
- sourceEnd := pByte(source) + inputSize;
- if (sourceEnd > streamPtr.dictionary) and (sourceEnd < dictEnd) then
- begin
- streamPtr.dictSize := cardinal(dictEnd - sourceEnd);
- if (streamPtr.dictSize > 65536) then
- streamPtr.dictSize := 65536;
- if (streamPtr.dictSize < 4) then
- streamPtr.dictSize := 0;
- streamPtr.dictionary := dictEnd - streamPtr.dictSize;
- end;
- if dictEnd = pByte(source) then
- begin
- if (streamPtr.dictSize < 65536) and (streamPtr.dictSize < streamPtr.currentOffset) then
- res := LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limit, byU32, withPrefix64k, dictSmall)
- else
- res := LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limit, byU32, withPrefix64k, noDictIssue);
- inc(streamPtr.dictSize, cardinal(inputSize));
- inc(streamPtr.currentOffset, cardinal(inputSize));
- exit(res);
- end;
- if (streamPtr.dictSize < 65536) and (streamPtr.dictSize < streamPtr.currentOffset) then
- res := LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limit, byU32, usingExtDict, dictSmall)
- else
- res := LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limit, byU32, usingExtDict, noDictIssue);
- streamPtr.dictionary := pByte(source);
- streamPtr.dictSize := cardinal(inputSize);
- inc(streamPtr.currentOffset, cardinal(inputSize));
- result := res;
-end;
-
-function LZ4_compress_continue(LZ4_stream: pointer; const ASource: pointer; ADestination: pointer; AInputSize: integer): integer;
-begin
- result := LZ4_compress_continue_generic(LZ4_stream, ASource, ADestination, AInputSize, 0, notLimited);
-end;
-
-function LZ4_saveDict(LZ4_streamPtr: PLZ4_stream_t; safeBuffer: pointer; dictSize: integer): integer;
-var
- dict: PLZ4_stream_t_internal;
- previousDictEnd: pByte;
-begin
- dict := PLZ4_stream_t_internal(LZ4_streamPtr);
- previousDictEnd := dict.dictionary + dict.dictSize;
- if cardinal(dictSize) > 65536 then
- dictSize := 65536;
- if cardinal(dictSize) > dict.dictSize then
- dictSize := dict.dictSize;
- move((previousDictEnd - dictSize)^, safeBuffer^, dictSize);
- // memmove(safeBuffer, (previousDictEnd - dictSize), dictSize);
- dict.dictionary := pByte(safeBuffer);
- dict.dictSize := cardinal(dictSize);
- result := dictSize;
-end;
-
-function LZ4_decompress_safe_continue(LZ4_streamDecode: PLZ4_streamDecode_t; source: pointer; dest: pointer; compressedSize: integer;
- maxDecompressedSize: integer): integer;
-var
- lz4sd: PLZ4_streamDecode_t_internal;
- res: integer;
-begin
- lz4sd := PLZ4_streamDecode_t_internal(LZ4_streamDecode);
- if lz4sd.prefixEnd = pByte(dest) then
- begin
- res := LZ4_decompress_generic(source, dest, compressedSize, maxDecompressedSize,
- integer(endOnInputSize), integer(full), 0,
- integer(usingExtDict), lz4sd.prefixEnd - lz4sd.prefixSize, lz4sd.externalDict, lz4sd.extDictSize);
- if (res <= 0) then
- exit(res);
- inc(lz4sd.prefixSize, res);
- inc(lz4sd.prefixEnd, res);
- end
- else
- begin
- lz4sd.extDictSize := lz4sd.prefixSize;
- lz4sd.externalDict := lz4sd.prefixEnd - lz4sd.extDictSize;
- res := LZ4_decompress_generic(source, dest, compressedSize, maxDecompressedSize,
- integer(endOnInputSize), integer(full), 0,
- integer(usingExtDict), pByte(dest), lz4sd.externalDict, lz4sd.extDictSize);
- if (res <= 0) then
- exit(res);
- lz4sd.prefixSize := res;
- lz4sd.prefixEnd := pByte(dest) + res;
- end;
- result := res;
-end;
-
-procedure LZ4_init(lz4ds: PLZ4_stream_t_internal; base: pByte);
-begin
- fillchar(lz4ds^, LZ4_STREAMSIZE, 0);
- lz4ds.bufferStart := base;
-end;
-
-function LZ4_create(inputBuffer: pAnsiChar): pointer;
-var
- lz4ds: pointer;
-begin
- lz4ds := allocmem(8 * LZ4_STREAMSIZE_U64);
- LZ4_init(PLZ4_stream_t_internal(lz4ds), pByte(inputBuffer));
- result := lz4ds;
-end;
-
-function LZ4_compress_limitedOutput(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; maxOutputSize: integer): integer;
-var
- ctx: array [0 .. LZ4_STREAMSIZE_U64 - 1] of uint64;
-begin
- fillchar(ctx, sizeof(ctx), 0);
- if inputSize < LZ4_64Klimit then
- result := LZ4_compress_generic(@ctx, source, dest, inputSize, maxOutputSize, limitedOutput, byU16, noDict, noDictIssue)
- else
- begin
-{$IFDEF WIN64}
- result := LZ4_compress_generic(@ctx, source, dest, inputSize, maxOutputSize, limitedOutput, byU32, noDict, noDictIssue);
-{$ELSE}
- result := LZ4_compress_generic(@ctx, source, dest, inputSize, maxOutputSize, limitedOutput, byPtr, noDict, noDictIssue);
-{$ENDIF}
- end;
-end;
-
-function LZ4_compress_withState(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-begin
- if ((size_t(state) and 3) <> 0) then
- exit(0); // Error : state is not aligned on 4-bytes boundary
- fillchar(state^, LZ4_STREAMSIZE, 0);
- if inputSize < LZ4_64Klimit then
- result := LZ4_compress_generic(state, source, dest, inputSize, 0, notLimited, byU16, noDict, noDictIssue)
- else
- begin
-{$IFDEF WIN64}
- result := LZ4_compress_generic(state, source, dest, inputSize, 0, notLimited, byU32, noDict, noDictIssue);
-{$ELSE}
- result := LZ4_compress_generic(state, source, dest, inputSize, 0, notLimited, byPtr, noDict, noDictIssue);
-{$ENDIF}
- end;
-end;
-
-function LZ4_compress_limitedOutput_withState(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer): integer;
-begin
- if ((size_t(state) and 3) <> 0) then
- exit(0); // Error : state is not aligned on 4-bytes boundary
- fillchar(state^, LZ4_STREAMSIZE, 0);
- if inputSize < LZ4_64Klimit then
- result := LZ4_compress_generic(state, source, dest, inputSize, maxOutputSize, limitedOutput, byU16, noDict, noDictIssue)
- else
- begin
-{$IFDEF WIN64}
- result := LZ4_compress_generic(state, source, dest, inputSize, maxOutputSize, limitedOutput, byU32, noDict, noDictIssue);
-{$ELSE}
- result := LZ4_compress_generic(state, source, dest, inputSize, maxOutputSize, limitedOutput, byPtr, noDict, noDictIssue);
-{$ENDIF}
- end;
-end;
-
-function LZ4_compress_limitedOutput_continue(LZ4_stream: PLZ4_stream_t; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer): integer;
-begin
- result := LZ4_compress_continue_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limitedOutput);
-end;
-
-function LZ4_compress_forceExtDict(LZ4_dict: PLZ4_stream_t; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-var
- streamPtr: PLZ4_stream_t_internal;
- dictEnd: pByte;
- smallest: pByte;
-begin
- streamPtr := PLZ4_stream_t_internal(LZ4_dict);
- dictEnd := streamPtr.dictionary + streamPtr.dictSize;
- smallest := dictEnd;
- if smallest > pByte(source) then
- smallest := pByte(source);
- LZ4_renormDictT(PLZ4_stream_t_internal(LZ4_dict), smallest);
- result := LZ4_compress_generic(LZ4_dict, source, dest, inputSize, 0, notLimited, byU32, usingExtDict, noDictIssue);
- streamPtr.dictionary := pByte(source);
- streamPtr.dictSize := cardinal(inputSize);
- inc(streamPtr.currentOffset, cardinal(inputSize));
-end;
-
-procedure LZ4_resetStream(LZ4_stream: PLZ4_stream_t);
-begin
- fillchar(LZ4_stream^, sizeof(LZ4_stream_t), 0);
-end;
-
-function LZ4_loadDict(LZ4_dict: PLZ4_stream_t; dictionary: pAnsiChar; dictSize: integer): integer;
-var
- dict: PLZ4_stream_t_internal;
- p: pByte;
- dictEnd: pByte;
- base: pByte;
-begin
- dict := PLZ4_stream_t_internal(LZ4_dict);
- p := pByte(dictionary);
- dictEnd := p + dictSize;
- if (dict.initCheck <> 0) then
- LZ4_resetStream(LZ4_dict); // Uninitialized structure detected
- if dictSize < MINMATCH then
- begin
- dict.dictionary := Nil;
- dict.dictSize := 0;
- exit(0);
- end;
- if (p <= dictEnd - 65536) then
- p := dictEnd - 65536;
- base := p - dict.currentOffset;
- dict.dictionary := p;
- dict.dictSize := cardinal(dictEnd - p);
- inc(dict.currentOffset, dict.dictSize);
- while (p <= dictEnd - MINMATCH) do
- begin
- LZ4_putPosition(p, dict, byU32, base);
- inc(p, 3);
- end;
-
- result := dict.dictSize;
-end;
-
-function LZ4_decompress_fast(source: pAnsiChar; dest: pAnsiChar; originalSize: integer): integer;
-begin
- result := LZ4_decompress_generic(source, dest, 0, originalSize, integer(endOnOutputSize), integer(full), 0, integer(withPrefix64k),
- pByte(dest - 65536), Nil, 65536);
-end;
-
-function LZ4_decompress_fast_withPrefix64k(source: pAnsiChar; dest: pAnsiChar; originalSize: integer): integer;
-begin
- result := LZ4_decompress_generic(source, dest, 0, originalSize, integer(endOnOutputSize), integer(full), 0, integer(withPrefix64k),
- pByte(dest) - 65536, Nil, 65536);
-end;
-
-function LZ4_decompress_usingDict_generic(source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxOutputSize: integer;
- safe: integer; dictStart: pAnsiChar; dictSize: integer): integer; inline;
-begin
- if dictSize = 0 then
- exit(LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, safe, integer(full), 0, integer(noDict),
- pByte(dest), Nil, 0));
- if (dictStart + dictSize = dest) then
- begin
- if dictSize >= integer(65536 - 1) then
- exit(LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, safe, integer(full), 0, integer(withPrefix64k),
- pByte(dest) - 65536, Nil, 0));
- exit(LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, safe, integer(full), 0, integer(noDict),
- pByte(dest) - dictSize, Nil, 0));
- end;
- result := LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, safe, integer(full), 0, integer(usingExtDict),
- pByte(dest), pByte(dictStart), dictSize);
-end;
-
-function LZ4_decompress_fast_usingDict(source: pAnsiChar; dest: pAnsiChar; originalSize: integer; const dictStart: pAnsiChar;
- dictSize: integer): integer;
-begin
- result := LZ4_decompress_usingDict_generic(source, dest, 0, originalSize, 0, dictStart, dictSize);
-end;
-
-function LZ4_decompress_safe_withPrefix64k(source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxOutputSize: integer): integer;
-begin
- result := LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, integer(endOnInputSize), integer(full), 0,
- integer(withPrefix64k), pByte(dest) - 65536, Nil, 65536);
-end;
-
-function LZ4_decompress_safe_usingDict(const source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxOutputSize: integer;
- const dictStart: pAnsiChar; dictSize: integer): integer;
-begin
- result := LZ4_decompress_usingDict_generic(source, dest, compressedSize, maxOutputSize, 1, dictStart, dictSize);
-end;
-
-function LZ4_decompress_safe_partial(const source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; targetOutputSize: integer;
- maxDecompressedSize: integer): integer;
-begin
- result := LZ4_decompress_generic(source, dest, compressedSize, maxDecompressedSize, integer(endOnInputSize), integer(partial),
- targetOutputSize, integer(noDict), pByte(dest), Nil, 0);
-end;
-
-function LZ4_decompress_safe_forceExtDict(source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxOutputSize: integer;
- const dictStart: pAnsiChar; dictSize: integer): integer;
-begin
- result := LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, integer(endOnInputSize), integer(full), 0,
- integer(usingExtDict), pByte(dest), pByte(dictStart), dictSize);
-end;
-
-end.
diff --git a/lib/xedit/lz4/lz4Common.pas b/lib/xedit/lz4/lz4Common.pas
deleted file mode 100644
index cf2c7a2..0000000
--- a/lib/xedit/lz4/lz4Common.pas
+++ /dev/null
@@ -1,250 +0,0 @@
-(*
- LZ4Delphi
- Copyright (C) 2015, Jose Pascoa (atelierwebgm@gmail.com)
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- *************************************************************************
- LZ4 - Fast LZ compression algorithm
- xxHash - Fast Hash algorithm
- LZ4 source repository : http://code.google.com/p/lz4/
- xxHash source repository : http://code.google.com/p/xxhash/
- Copyright (c) 2011-2014, Yann Collet
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************
-*)
-
-unit lz4common;
-{$POINTERMATH ON}
-
-interface
-
-uses Windows;
-
-type
- ppByte = ^pByte;
- {$IFDEF WIN32}
- size_t = Cardinal;
- {$ENDIF WIN32}
- {$IFDEF WIN64}
- size_t = UInt64;
- {$ENDIF WIN64}
- psize_t = ^size_t;
-
-const
- MINMATCH = 4;
- COPYLENGTH = 8;
- LASTLITERALS = 5;
- _MFLIMIT = COPYLENGTH + MINMATCH;
- MAXD_LOG = 16;
- MAX_DISTANCE = (1 shl MAXD_LOG) - 1;
- STEPSIZE = sizeof(size_t);
- ML_BITS = 4;
- ML_MASK = (1 shl ML_BITS) - 1;
- RUN_BITS = 8 - ML_BITS;
- RUN_MASK = (1 shl RUN_BITS) - 1;
-
-function LZ4_read32(const memPtr: pointer): cardinal;
-function LZ4_read64(const memPtr: pointer): uint64; inline;
-function LZ4_count(pIn: pByte; pMatch: pByte; const pInLimit: pByte): cardinal;
-function LZ4_read_ARCH(const p: pointer): size_t; inline;
-function LZ4_read16(const memPtr: pointer): word; inline;
-procedure LZ4_writeLE16(memPtr: pointer; value: word); inline;
-procedure LZ4_wildCopy(dstPtr: pointer; const srcPtr: pointer; dstEnd: pointer);
-
-implementation
-
-function LZ4_read32(const memPtr: pointer): cardinal;
-begin
- result := pCardinal(memPtr)^;
-end;
-
-{$IFDEF WIN64}
-
-
-function LZ4_NbCommonBytesx64(value: size_t): cardinal;
-asm
- bsf rax, rcx // value comes in rcx register
- shr eax, 3
-end;
-{$ENDIF}
-
-
-function LZ4_count(pIn: pByte; pMatch: pByte; const pInLimit: pByte): cardinal;
-var
- pStart: pByte;
- diff: size_t;
- incValue: cardinal;
-
- calcedPByte: pByte;
-begin
- pStart := pIn;
- calcedPByte := pInLimit - (STEPSIZE - 1);
-
- while pIn < calcedPByte do
- begin
- diff := LZ4_read_ARCH(pMatch) xor LZ4_read_ARCH(pIn);
- if (diff = 0) then
- begin
- inc(pIn, STEPSIZE);
- inc(pMatch, STEPSIZE);
- continue;
- end;
-{$IFDEF WIN32}
- asm
- bsf eax, diff
- shr eax, 3
- mov incValue, eax
- end;
-{$ELSE}
- incValue := LZ4_NbCommonBytesx64(diff); // x64 mode does not allow asm inline
-{$ENDIF}
- inc(pIn, incValue);
- exit(cardinal(pIn - pStart));
- end;
-{$IFDEF WIN64}
- if (pIn < (pInLimit - 3)) and (pCardinal(pMatch)^ = pCardinal(pIn)^) then
- begin
- inc(pIn, 4);
- inc(pMatch, 4);
- end;
-{$ENDIF}
- if ((pIn < (pInLimit - 1)) and (pWord(pMatch)^ = pWord(pIn)^)) then
- begin
- inc(pIn, 2);
- inc(pMatch, 2);
- end;
- if ((pIn < pInLimit) and (pMatch^ = pIn^)) then
- inc(pIn);
- result := cardinal(pIn - pStart);
-end;
-
-function LZ4_read_ARCH(const p: pointer): size_t; inline;
-begin
-{$IFDEF WIN64}
- result := size_t(pUint64(p)^)
-{$ELSE}
- result := size_t(pCardinal(p)^);
-{$ENDIF}
-end;
-
-function LZ4_read16(const memPtr: pointer): word; inline;
-begin
- result := pWord(memPtr)^;
-end;
-
-function LZ4_read64(const memPtr: pointer): uint64; inline;
-begin
- result := pUint64(memPtr)^;
-end;
-
-{$IFDEF WILDCOPY_ASM}
-{$IFDEF WIN32}
-
-
-procedure LZ4_wildCopy; // (dstPtr: pointer; const srcPtr: pointer; dstEnd: pointer);
-asm
- push edi
- push esi
- mov edi, eax
- mov esi, edx
- // copyCount := (((e - d) - 1) div 8) * 8 + 8;
- sub ecx, eax // (e - d)
- dec ecx // e - d) - 1)
- shr ecx, 3 // ((e - d) - 1) div 8)
- shl ecx, 3 // ((e - d) - 1) div 8) * 8
- add ecx, 8 // ((e - d) - 1) div 8) * 8 + 8
-
- // if copyCount <= 0 then
- // copyCount := 8;
- mov eax, 8
- cmp ecx, 0
- cmovbe ecx, eax
- shr ecx, 2
- rep movsd
- pop esi
- pop edi
-end;
-
-{$ELSE}
-
-
-procedure LZ4_wildCopy; // (dstPtr: pointer; const srcPtr: pointer; dstEnd: pointer);
-asm
- mov r10, rdi
- mov r11, rsi
- mov rdi, rcx
- mov rsi, rdx
- // copyCount := (((e - d) - 1) div 8) * 8 + 8;
- sub r8, rcx // (dstEnd - dest)
- mov rax, 8
- dec r8 // e - d) - 1)
- shr r8, 3 // ((e - d) - 1) div 8)
- shl r8, 3 // ((e - d) - 1) div 8) * 8
- add r8, rax // ((e - d) - 1) div 8) * 8 + 8
- cmp r8, 0
- cmovbe r8, rax
- mov rcx, r8
- shr rcx, 3
- rep movsq
- mov rdi, r10
- mov rsi, r11
-end;
-{$ENDIF}
-{$ELSE}
-
-
-procedure LZ4_wildCopy(dstPtr: pointer; const srcPtr: pointer; dstEnd: pointer); inline;
-var
- d: pByte;
- s: pByte;
- e: pByte;
-begin
- d := dstPtr;
- s := srcPtr;
- e := dstEnd;
- repeat
-{$IFDEF WIN32}
- pCardinal(d)[0] := pCardinal(s)[0];
- pCardinal(d)[1] := pCardinal(s)[1];
-{$ELSE}
- pUint64(d)^ := pUint64(s)^;
-{$ENDIF}
- inc(d, 8);
- inc(s, 8);
- until not(d < e);
-end;
-
-{$ENDIF}
-
-
-procedure LZ4_writeLE16(memPtr: pointer; value: word); inline;
-begin
- pWord(memPtr)^ := value;
-
-end;
-
-end.
diff --git a/lib/xedit/lz4/lz4HC.pas b/lib/xedit/lz4/lz4HC.pas
deleted file mode 100644
index e91e0a6..0000000
--- a/lib/xedit/lz4/lz4HC.pas
+++ /dev/null
@@ -1,804 +0,0 @@
-(*
- LZ4Delphi
- Copyright (C) 2015, Jose Pascoa (atelierwebgm@gmail.com)
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- *************************************************************************
- LZ4 - Fast LZ compression algorithm
- xxHash - Fast Hash algorithm
- LZ4 source repository : http://code.google.com/p/lz4/
- xxHash source repository : http://code.google.com/p/xxhash/
- Copyright (c) 2011-2014, Yann Collet
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************
-*)
-
-unit lz4HC;
-{$POINTERMATH ON}
-
-interface
-
-uses Windows, lz4Common;
-
-const
- LZ4_STREAMHCSIZE_U64 = 32774;
-
-type
- PLZ4_streamHC_t = ^LZ4_streamHC_t;
-
- LZ4_streamHC_t = record
- table: array [0 .. LZ4_STREAMHCSIZE_U64 - 1] of uint64;
- end;
-
-function LZ4_createStreamHC: PLZ4_streamHC_t;
-procedure LZ4_freeStreamHC(LZ4_streamHCPtr: PLZ4_streamHC_t);
-function LZ4_compressHC2(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; compressionLevel: integer): integer;
-function LZ4_compressHC(source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-function LZ4_compressHC_limitedOutput(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; maxOutputSize: integer): integer;
-function LZ4_compressHC2_limitedOutput(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; maxOutputSize: integer;
- compressionLevel: integer): integer;
-function LZ4_compressHC_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-function LZ4_compressHC2_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- compressionLevel: integer): integer;
-function LZ4_compressHC_limitedOutput_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer): integer;
-function LZ4_compressHC2_limitedOutput_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer; compressionLevel: integer): integer;
-function LZ4_createHC(inputBuffer: pAnsiChar): pointer;
-function LZ4_compressHC_continue(LZ4_streamHCPtr: PLZ4_streamHC_t; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-function LZ4_loadDictHC(LZ4_streamHCPtr: PLZ4_streamHC_t; dictionary: pAnsiChar; dictSize: integer): integer;
-function LZ4_compressHC_limitedOutput_continue(LZ4_streamHCPtr: PLZ4_streamHC_t; const source: pAnsiChar; dest: pAnsiChar;
- inputSize: integer; maxOutputSize: integer): integer;
-procedure LZ4_resetStreamHC(LZ4_streamHCPtr: PLZ4_streamHC_t; compressionLevel: integer);
-function LZ4_saveDictHC(LZ4_streamHCPtr: PLZ4_streamHC_t; safeBuffer: pAnsiChar; dictSize: integer): integer;
-
-implementation
-
-const
- DICTIONARY_LOGSIZE = 16;
- MAXD = (1 shl DICTIONARY_LOGSIZE);
- HASH_LOG = (DICTIONARY_LOGSIZE - 1);
- HASHTABLESIZE = (1 shl HASH_LOG);
- OPTIMAL_ML = integer((ML_MASK - 1) + MINMATCH);
-
- g_maxCompressionLevel: integer = 16;
- LZ4HC_compressionLevel_default: integer = 8;
-
-type
- PLZ4HC_Data_Structure = ^LZ4HC_Data_Structure;
-
- LZ4HC_Data_Structure = record
- hashTable: array [0 .. HASHTABLESIZE - 1] of cardinal;
- chainTable: array [0 .. MAXD - 1] of word;
- _end: pByte;
- base: pByte;
- dictBase: pByte;
- inputBuffer: pByte;
- dictLimit: cardinal;
- lowLimit: cardinal;
- nextToUpdate: cardinal;
- compressionLevel: cardinal;
- end;
-
- limitedOutput_directive = (noLimit = 0, limitedOutput = 1);
-
-function LZ4_createStreamHC: PLZ4_streamHC_t;
-begin
- result := allocmem(sizeof(LZ4_streamHC_t));
-end;
-
-procedure LZ4_freeStreamHC(LZ4_streamHCPtr: PLZ4_streamHC_t);
-begin
- freemem(LZ4_streamHCPtr);
-end;
-
-procedure LZ4HC_init(hc4: PLZ4HC_Data_Structure; const start: pByte);
-begin
- fillchar(hc4.hashTable, sizeof(hc4.hashTable), 0);
- fillchar(hc4.chainTable, sizeof(hc4.chainTable), 255);
- hc4.nextToUpdate := 65536;
- hc4.base := start - 65536;
- hc4.inputBuffer := start;
- hc4._end := start;
- hc4.dictBase := start - 65536;
- hc4.dictLimit := 65536;
- hc4.lowLimit := 65536;
-end;
-
-function HASH_FUNCTION(i: cardinal): cardinal; inline;
-begin
- result := (i * 2654435761) shr ((MINMATCH * 8) - HASH_LOG);
-end;
-
-function LZ4HC_hashPtr(const ptr: pointer): cardinal; inline;
-begin
- result := HASH_FUNCTION(pCardinal(ptr)^);
-end;
-
-procedure LZ4HC_Insert(hc4: PLZ4HC_Data_Structure; const ip: pByte); inline;
-var
- chainTable: pWord;
- hashTable: pCardinal;
- base: pByte;
- target: cardinal;
- idx: cardinal;
- h: cardinal;
- delta: size_t;
-begin
- chainTable := @hc4.chainTable;
- hashTable := @hc4.hashTable;
- base := hc4.base;
- target := cardinal(ip - base);
- idx := hc4.nextToUpdate;
-
- while idx < target do
- begin
- h := LZ4HC_hashPtr(base + idx);
- delta := idx - hashTable[h];
- if (delta > MAX_DISTANCE) then
- delta := MAX_DISTANCE;
- chainTable[idx and $FFFF] := word(delta);
- hashTable[h] := idx;
- inc(idx);
- end;
- hc4.nextToUpdate := target;
-end;
-
-function LZ4HC_InsertAndFindBestMatch(hc4: PLZ4HC_Data_Structure; const ip: pByte; const iLimit: pByte;
- const matchpos: ppByte; const maxNbAttempts: integer): integer; inline;
-var
- chainTable: pWord;
- hashTable: pCardinal;
- base: pByte;
- dictBase: pByte;
- dictLimit: cardinal;
- lowLimit: cardinal;
- matchIndex: cardinal;
- match: pByte;
- nbAttempts: integer;
- ml: size_t;
- mlt: size_t;
- vLimit: pByte;
-begin
- chainTable := @hc4.chainTable;
- hashTable := @hc4.hashTable;
- base := hc4.base;
- dictBase := hc4.dictBase;
- dictLimit := hc4.dictLimit;
- if hc4.lowLimit + 65536 > cardinal(ip - base) then
- lowLimit := hc4.lowLimit
- else
- lowLimit := cardinal(ip - base) - 65535;
- nbAttempts := maxNbAttempts;
- ml := 0;
- LZ4HC_Insert(hc4, ip);
- matchIndex := hashTable[LZ4HC_hashPtr(ip)];
- while (matchIndex >= lowLimit) and (nbAttempts > 0) do
- begin
- dec(nbAttempts);
- if matchIndex >= dictLimit then
- begin
- match := base + matchIndex;
- if ((match + ml)^ = (ip + ml)^) and (pCardinal(match)^ = pCardinal(ip)^) then
- begin
- mlt := LZ4_count(ip + MINMATCH, match + MINMATCH, iLimit) + MINMATCH;
- if mlt > ml then
- begin
- ml := mlt;
- matchpos^ := match;
- end;
- end;
- end
- else
- begin
- match := dictBase + matchIndex;
- if pCardinal(match)^ = pCardinal(ip)^ then
- begin
- vLimit := ip + (dictLimit - matchIndex);
- if (vLimit > iLimit) then
- vLimit := iLimit;
- mlt := LZ4_count(ip + MINMATCH, match + MINMATCH, vLimit) + MINMATCH;
- if ((ip + mlt = vLimit) and (vLimit < iLimit)) then
- inc(mlt, LZ4_count(ip + mlt, base + dictLimit, iLimit));
- if (mlt > ml) then
- begin
- ml := mlt;
- matchpos^ := base + matchIndex;
- end; // virtual matchpos
- end;
- end;
- dec(matchIndex, chainTable[matchIndex and $FFFF]);
- end;
- result := integer(ml);
-end;
-
-function LZ4HC_InsertAndGetWiderMatch(hc4: PLZ4HC_Data_Structure; const ip: pByte; const iLowLimit: pByte;
- const iHighLimit: pByte; longest: integer; const matchpos: ppByte; const startpos: ppByte; const maxNbAttempts: integer): integer; inline;
-var
- chainTable: pWord;
- hashTable: pCardinal;
- base: pByte;
- dictLimit: cardinal;
- lowLimit: cardinal;
- dictBase: pByte;
- match: pByte;
- matchIndex: cardinal;
- nbAttempts: integer;
- delta: integer;
- startt: pByte;
- tmpMatch: pByte;
- matchEnd: pByte;
- mlt: size_t;
- back: integer;
- vLimit: pByte;
-begin
- chainTable := @hc4.chainTable;
- hashTable := @hc4.hashTable;
- base := hc4.base;
- dictLimit := hc4.dictLimit;
- if (hc4.lowLimit + 65536 > cardinal(ip - base)) then
- lowLimit := hc4.lowLimit
- else
- lowLimit := cardinal(ip - base) - 65535;
- dictBase := hc4.dictBase;
- nbAttempts := maxNbAttempts;
- delta := integer(ip - iLowLimit);
- LZ4HC_Insert(hc4, ip);
- matchIndex := hashTable[LZ4HC_hashPtr(ip)];
- while (matchIndex >= lowLimit) and (nbAttempts > 0) do
- begin
- dec(nbAttempts);
- if matchIndex >= dictLimit then
- begin
- match := base + matchIndex;
- if ((iLowLimit + longest)^ = (match - delta + longest)^) then
- if pCardinal(match)^ = pCardinal(ip)^ then
- begin
- startt := ip;
- tmpMatch := match;
- matchEnd := ip + MINMATCH + LZ4_count(ip + MINMATCH, match + MINMATCH, iHighLimit);
- while (startt > iLowLimit) and (tmpMatch > iLowLimit) and (startt[-1] = tmpMatch[-1]) do
- begin
- dec(startt);
- dec(tmpMatch);
- end;
- if (matchEnd - startt) > longest then
- begin
- longest := integer(matchEnd - startt);
- matchpos^ := tmpMatch;
- startpos^ := startt;
- end;
- end;
- end
- else
- begin
- match := dictBase + matchIndex;
- if pCardinal(match)^ = pCardinal(ip)^ then
- begin
- back := 0;
- vLimit := ip + (dictLimit - matchIndex);
- if vLimit > iHighLimit then
- vLimit := iHighLimit;
- mlt := LZ4_count(ip + MINMATCH, match + MINMATCH, vLimit) + MINMATCH;
- if (ip + mlt = vLimit) and (vLimit < iHighLimit) then
- inc(mlt, LZ4_count(ip + mlt, base + dictLimit, iHighLimit));
- while ((ip + back > iLowLimit) and (matchIndex + cardinal(back) > lowLimit) and (ip[back - 1] = match[back - 1])) do
- dec(back);
- dec(mlt, back);
- if integer(mlt) > longest then
- begin
- longest := integer(mlt);
- matchpos^ := base + matchIndex + back;
- startpos^ := ip + back;
- end;
- end;
- end;
- dec(matchIndex, chainTable[matchIndex and $FFFF]);
- end;
- result := longest;
-end;
-
-function LZ4HC_encodeSequence(const ip: ppByte; op: ppByte; const anchor: ppByte; matchLength: integer;
- const match: pByte; limitedOutputBuffer: limitedOutput_directive; oend: pByte): integer; inline;
-var
- length: integer;
- token: pByte;
- len: integer;
-begin
- length := integer(ip^ - anchor^);
- token := op^;
- inc(op^);
- if (limitedOutputBuffer <> noLimit) and ((op^ + (length shr 8) + length + (2 + 1 + LASTLITERALS)) > oend) then
- exit(1);
-
- if length >= integer(RUN_MASK) then
- begin
- token^ := (RUN_MASK shl ML_BITS);
- len := length - RUN_MASK;
- while len > 254 do
- begin
- op^^ := 255;
- inc(op^);
- dec(len, 255)
- end;
- op^^ := byte(len);
- inc(op^);
- end
- else
- token^ := byte(length shl ML_BITS);
-
- LZ4_wildCopy(op^, anchor^, op^ + length);
-
- inc(op^, length);
- pWord(op^)^ := word(ip^ - match); // ?
- inc(op^, 2);
-
- length := integer(matchLength - MINMATCH);
- if (limitedOutputBuffer <> noLimit) and (op^ + (length shr 8) + (1 + LASTLITERALS) > oend) then
- exit(1);
- if length >= integer(ML_MASK) then
- begin
- inc(token^, ML_MASK);
- dec(length, ML_MASK);
- while length > 509 do
- begin
- op^^ := 255;
- inc(op^);
- op^^ := 255;
- inc(op^);
- dec(length, 510);
- end;
- if (length > 254) then
- begin
- dec(length, 255);
- op^^ := 255;
- inc(op^);
- end;
- op^^ := byte(length);
- inc(op^);
- end
- else
- inc(token^, byte(length));
- inc(ip^, matchLength);
- anchor^ := ip^;
- result := 0;
-end;
-
-function LZ4HC_compress_generic(ctxvoid: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer; compressionLevel: integer; limit: limitedOutput_directive): integer;
-var
- ctx: PLZ4HC_Data_Structure;
- ip: pByte;
- anchor: pByte;
- iend: pByte;
- mflimit: pByte;
- matchlimit: pByte;
- op: pByte;
- oend: pByte;
- maxNbAttempts: cardinal;
- ml, ml2, ml3, ml0: integer;
- ref: pByte;
- start2: pByte;
- ref2: pByte;
- start3: pByte;
- ref3: pByte;
- start0: pByte;
- ref0: pByte;
- correction: integer;
- new_ml: integer;
- lastRun: integer;
-label
- _Search2, _Search3;
-begin
- ctx := ctxvoid;
- ip := pByte(source);
- anchor := ip;
- iend := ip + inputSize;
- mflimit := iend - _MFLIMIT;
- matchlimit := (iend - LASTLITERALS);
- op := pByte(dest);
- oend := op + maxOutputSize;
- ref := nil;
- start2 := nil;
- ref2 := nil;
- start3 := nil;
- ref3 := nil;
-
- // init
- if compressionLevel > g_maxCompressionLevel then
- compressionLevel := g_maxCompressionLevel;
- if (compressionLevel < 1) then
- compressionLevel := LZ4HC_compressionLevel_default;
- maxNbAttempts := 1 shl (compressionLevel - 1);
- inc(ctx._end, inputSize);
- inc(ip);
-
- // Main Loop
- while ip < mflimit do
- begin
- ml := LZ4HC_InsertAndFindBestMatch(ctx, ip, matchlimit, (@ref), maxNbAttempts);
- if (ml = 0) then
- begin
- inc(ip);
- continue;
- end;
-
- // saved, in case we would skip too much
- start0 := ip;
- ref0 := ref;
- ml0 := ml;
- _Search2:
-
- if ip + ml < mflimit then
- ml2 := LZ4HC_InsertAndGetWiderMatch(ctx, ip + ml - 2, ip + 1, matchlimit, ml, @ref2, @start2, maxNbAttempts)
- else
- ml2 := ml;
-
- if (ml2 = ml) then // No better match
- begin
- if LZ4HC_encodeSequence(@ip, @op, @anchor, ml, ref, limit, oend) > 0 then
- exit(0);
- continue;
- end;
-
- if start0 < ip then
- begin
- if start2 < ip + ml0 then // empirical
- begin
- ip := start0;
- ref := ref0;
- ml := ml0;
- end;
- end;
-
- // Here, start0==ip
- if ((start2 - ip) < 3) then // First Match too small : removed
- begin
- ml := ml2;
- ip := start2;
- ref := ref2;
- goto _Search2;
- end;
-
- _Search3:
-
- if (start2 - ip) < OPTIMAL_ML then
- begin
- new_ml := ml;
- if new_ml > OPTIMAL_ML then
- new_ml := OPTIMAL_ML;
- if ip + new_ml > start2 + ml2 - MINMATCH then
- new_ml := integer(start2 - ip) + ml2 - MINMATCH;
- correction := new_ml - integer(start2 - ip);
- if (correction > 0) then
- begin
- inc(start2, correction);
- inc(ref2, correction);
- dec(ml2, correction);
- end;
- end;
- // Now, we have start2 = ip+new_ml, with new_ml = min(ml, OPTIMAL_ML=18)
-
- if start2 + ml2 < mflimit then
- ml3 := LZ4HC_InsertAndGetWiderMatch(ctx, start2 + ml2 - 3, start2, matchlimit, ml2, @ref3, @start3, maxNbAttempts)
- else
- ml3 := ml2;
-
- if (ml3 = ml2) then // No better match : 2 sequences to encode
- begin
- // ip & ref are known; Now for ml
- if start2 < ip + ml then
- ml := integer(start2 - ip);
- // Now, encode 2 sequences
- if LZ4HC_encodeSequence(@ip, @op, @anchor, ml, ref, limit, oend) <> 0 then
- exit(0);
- ip := start2;
- if LZ4HC_encodeSequence(@ip, @op, @anchor, ml2, ref2, limit, oend) <> 0 then
- exit(0);
- continue;
- end;
-
- if start3 < ip + ml + 3 then // Not enough space for match 2 : remove it
- begin
- if start3 >= (ip + ml) then // can write Seq1 immediately ==> Seq2 is removed, so Seq3 becomes Seq1
- begin
- if start2 < ip + ml then
- begin
- correction := integer(ip + ml - start2);
- inc(start2, correction);
- inc(ref2, correction);
- dec(ml2, correction);
- if ml2 < MINMATCH then
- begin
- start2 := start3;
- ref2 := ref3;
- ml2 := ml3;
- end;
- end;
- if LZ4HC_encodeSequence(@ip, @op, @anchor, ml, ref, limit, oend) <> 0 then
- exit(0);
- ip := start3;
- ref := ref3;
- ml := ml3;
-
- start0 := start2;
- ref0 := ref2;
- ml0 := ml2;
- goto _Search2;
- end;
- start2 := start3;
- ref2 := ref3;
- ml2 := ml3;
- goto _Search3;
- end;
-
- (*
- * OK, now we have 3 ascending matches; let's write at least the first one
- * ip & ref are known; Now for ml
- *)
- if start2 < ip + ml then
- begin
- if (start2 - ip) < integer(ML_MASK) then
- begin
- if ml > OPTIMAL_ML then
- ml := OPTIMAL_ML;
- if ip + ml > start2 + ml2 - MINMATCH then
- ml := integer(start2 - ip) + ml2 - MINMATCH;
- correction := ml - integer(start2 - ip);
- if correction > 0 then
- begin
- inc(start2, correction);
- inc(ref2, correction);
- dec(ml2, correction);
- end;
- end
- else
- ml := integer(start2 - ip);
- end;
- if LZ4HC_encodeSequence(@ip, @op, @anchor, ml, ref, limit, oend) <> 0 then
- exit(0);
-
- ip := start2;
- ref := ref2;
- ml := ml2;
-
- start2 := start3;
- ref2 := ref3;
- ml2 := ml3;
-
- goto _Search3;
- end;
-
- lastRun := integer(iend - anchor);
- if (limit <> noLimit) and ((op - pByte(dest)) + lastRun + 1 + ((lastRun + 255 - RUN_MASK) div 255) > maxOutputSize) then
- exit(0);
- if lastRun >= integer(RUN_MASK) then
- begin
- op^ := RUN_MASK shl ML_BITS;
- inc(op);
- dec(lastRun, RUN_MASK);
- while lastRun > 254 do
- begin
- op^ := 255;
- inc(op);
- dec(lastRun, 255);
- end;
- op^ := byte(lastRun);
- inc(op);
- end
- else
- begin
- op^ := byte(lastRun shl ML_BITS);
- inc(op);
- end;
- move(anchor^, op^, iend - anchor);
- inc(op, iend - anchor);
- result := integer(op - pByte(dest));
-end;
-
-function LZ4_compressHC2(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; compressionLevel: integer): integer;
-var
- ctx: LZ4HC_Data_Structure;
-begin
- fillchar(ctx, sizeof(LZ4HC_Data_Structure), 0);
- LZ4HC_init(@ctx, pByte(source));
- result := LZ4HC_compress_generic(@ctx, source, dest, inputSize, 0, compressionLevel, noLimit);
-end;
-
-function LZ4_compressHC(source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-begin
- result := LZ4_compressHC2(source, dest, inputSize, 0);
-end;
-
-function LZ4_compressHC_limitedOutput(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; maxOutputSize: integer): integer;
-begin
- result := LZ4_compressHC2_limitedOutput(source, dest, inputSize, maxOutputSize, 0);
-end;
-
-function LZ4_compressHC2_limitedOutput(const source: pAnsiChar; dest: pAnsiChar; inputSize: integer; maxOutputSize: integer;
- compressionLevel: integer): integer;
-var
- ctx: LZ4HC_Data_Structure;
-begin
- fillchar(ctx, sizeof(LZ4HC_Data_Structure), 0);
- LZ4HC_init(@ctx, pByte(source));
- result := LZ4HC_compress_generic(@ctx, source, dest, inputSize, maxOutputSize, compressionLevel, limitedOutput);
-end;
-
-function LZ4_compressHC_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-begin
- result := LZ4_compressHC2_withStateHC(state, source, dest, inputSize, 0);
-end;
-
-function LZ4_compressHC2_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- compressionLevel: integer): integer;
-begin
- if (size_t(state) and (sizeof(pointer) - 1)) <> 0 then
- exit(0); // Error : : state is not aligned for pointers (32 or 64 bits) */
- LZ4HC_init(PLZ4HC_Data_Structure(state), pByte(source));
- result := LZ4HC_compress_generic(state, source, dest, inputSize, 0, compressionLevel, noLimit);
-end;
-
-function LZ4_compressHC_limitedOutput_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer): integer;
-begin
- result := LZ4_compressHC2_limitedOutput_withStateHC(state, source, dest, inputSize, maxOutputSize, 0);
-end;
-
-function LZ4_compressHC2_limitedOutput_withStateHC(state: pointer; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer;
- maxOutputSize: integer; compressionLevel: integer): integer;
-begin
- if (size_t(state) and (sizeof(pointer) - 1)) <> 0 then
- exit(0); // Error : : state is not aligned for pointers (32 or 64 bits) */
- LZ4HC_init(PLZ4HC_Data_Structure(state), pByte(source));
- result := LZ4HC_compress_generic(state, source, dest, inputSize, maxOutputSize, compressionLevel, limitedOutput);
-end;
-
-function LZ4_createHC(inputBuffer: pAnsiChar): pointer;
-var
- hc4: pointer;
-begin
- hc4 := allocmem(sizeof(LZ4HC_Data_Structure));
- LZ4HC_init(PLZ4HC_Data_Structure(hc4), pByte(inputBuffer));
- result := hc4;
-end;
-
-procedure LZ4HC_setExternalDict(ctxPtr: PLZ4HC_Data_Structure; const newBlock: pByte);
-begin
- if ctxPtr._end >= ctxPtr.base + 4 then
- LZ4HC_Insert(ctxPtr, ctxPtr._end - 3); // Referencing remaining dictionary content
- // Only one memory segment for extDict, so any previous extDict is lost at this stage
- ctxPtr.lowLimit := ctxPtr.dictLimit;
- ctxPtr.dictLimit := cardinal(ctxPtr._end - ctxPtr.base);
- ctxPtr.dictBase := ctxPtr.base;
- ctxPtr.base := newBlock - ctxPtr.dictLimit;
- ctxPtr._end := newBlock;
- ctxPtr.nextToUpdate := ctxPtr.dictLimit; // match referencing will resume from there
-end;
-
-function LZ4_compressHC_continue_generic(ctxPtr: PLZ4HC_Data_Structure;
- const source: pAnsiChar; dest: pAnsiChar;
- inputSize: integer; maxOutputSize: integer; limit: limitedOutput_directive): integer;
-var
- dictSize: size_t;
- sourceEnd: pByte;
- dictBegin: pByte;
- dictEnd: pByte;
-begin
- // auto-init if forgotten
- if (ctxPtr.base = Nil) then
- LZ4HC_init(ctxPtr, pByte(source));
-
- // Check overflow
- if size_t(ctxPtr._end - ctxPtr.base) > 2147483648 then
- begin
- dictSize := size_t(ctxPtr._end - ctxPtr.base) - ctxPtr.dictLimit;
- if (dictSize > 65536) then
- dictSize := 65536;
- LZ4_loadDictHC(PLZ4_streamHC_t(ctxPtr), pAnsiChar(ctxPtr._end) - dictSize, integer(dictSize));
- end;
-
- // Check if blocks follow each other
- if (pByte(source) <> ctxPtr._end) then
- LZ4HC_setExternalDict(ctxPtr, pByte(source));
-
- // Check overlapping input/dictionary space
- sourceEnd := pByte(source) + inputSize;
- dictBegin := ctxPtr.dictBase + ctxPtr.lowLimit;
- dictEnd := ctxPtr.dictBase + ctxPtr.dictLimit;
- if (sourceEnd > dictBegin) and (pByte(source) < dictEnd) then
- begin
- if sourceEnd > dictEnd then
- sourceEnd := dictEnd;
- ctxPtr.lowLimit := cardinal(sourceEnd - ctxPtr.dictBase);
- if ctxPtr.dictLimit - ctxPtr.lowLimit < 4 then
- ctxPtr.lowLimit := ctxPtr.dictLimit;
- end;
- result := LZ4HC_compress_generic(ctxPtr, source, dest, inputSize, maxOutputSize, ctxPtr.compressionLevel, limit);
-end;
-
-function LZ4_compressHC_continue(LZ4_streamHCPtr: PLZ4_streamHC_t; const source: pAnsiChar; dest: pAnsiChar; inputSize: integer): integer;
-begin
- result := LZ4_compressHC_continue_generic(PLZ4HC_Data_Structure(LZ4_streamHCPtr), source, dest, inputSize, 0, noLimit);
-end;
-
-function LZ4_loadDictHC(LZ4_streamHCPtr: PLZ4_streamHC_t; dictionary: pAnsiChar; dictSize: integer): integer;
-var
- ctxPtr: PLZ4HC_Data_Structure;
-begin
- ctxPtr := PLZ4HC_Data_Structure(LZ4_streamHCPtr);
- if dictSize > 65536 then
- begin
- inc(dictionary, dictSize - 65536);
- dictSize := 65536;
- end;
- LZ4HC_init(ctxPtr, pByte(dictionary));
- if (dictSize >= 4) then
- LZ4HC_Insert(ctxPtr, pByte(dictionary) + (dictSize - 3));
- ctxPtr._end := pByte(dictionary) + dictSize;
- result := dictSize;
-end;
-
-function LZ4_compressHC_limitedOutput_continue(LZ4_streamHCPtr: PLZ4_streamHC_t; const source: pAnsiChar; dest: pAnsiChar;
- inputSize: integer; maxOutputSize: integer): integer;
-begin
- result := LZ4_compressHC_continue_generic(PLZ4HC_Data_Structure(LZ4_streamHCPtr), source, dest, inputSize, maxOutputSize,
- limitedOutput);
-end;
-
-procedure LZ4_resetStreamHC(LZ4_streamHCPtr: PLZ4_streamHC_t; compressionLevel: integer);
-begin
- PLZ4HC_Data_Structure(LZ4_streamHCPtr).base := Nil;
- PLZ4HC_Data_Structure(LZ4_streamHCPtr).compressionLevel := cardinal(compressionLevel);
-end;
-
-function LZ4_saveDictHC(LZ4_streamHCPtr: PLZ4_streamHC_t; safeBuffer: pAnsiChar; dictSize: integer): integer;
-var
- streamPtr: PLZ4HC_Data_Structure;
- prefixSize: integer;
- endIndex: cardinal;
-begin
- streamPtr := PLZ4HC_Data_Structure(LZ4_streamHCPtr);
- prefixSize := integer((streamPtr._end - (streamPtr.base + streamPtr.dictLimit)));
- if dictSize > 65536 then
- dictSize := 65536;
- if dictSize < 4 then
- dictSize := 0;
- if (dictSize > prefixSize) then
- dictSize := prefixSize;
- move((streamPtr._end - dictSize)^, safeBuffer^, dictSize);
- endIndex := cardinal(streamPtr._end - streamPtr.base);
- streamPtr._end := pByte(safeBuffer) + dictSize;
- streamPtr.base := streamPtr._end - endIndex;
- streamPtr.dictLimit := endIndex - cardinal(dictSize);
- streamPtr.lowLimit := endIndex - cardinal(dictSize);
- if streamPtr.nextToUpdate < streamPtr.dictLimit then
- streamPtr.nextToUpdate := streamPtr.dictLimit;
- result:=dictSize;
-end;
-
-end.
diff --git a/lib/xedit/lz4/lz4frame.pas b/lib/xedit/lz4/lz4frame.pas
deleted file mode 100644
index 4ae433e..0000000
--- a/lib/xedit/lz4/lz4frame.pas
+++ /dev/null
@@ -1,1299 +0,0 @@
-(*
- LZ4Delphi
- Copyright (C) 2015, Jose Pascoa (atelierwebgm@gmail.com)
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- *************************************************************************
- LZ4 - Fast LZ compression algorithm
- xxHash - Fast Hash algorithm
- LZ4 source repository : http://code.google.com/p/lz4/
- xxHash source repository : http://code.google.com/p/xxhash/
- Copyright (c) 2011-2014, Yann Collet
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************
-*)
-unit lz4frame;
-{$POINTERMATH ON}
-
-interface
-
-uses Windows, xxHash, lz4frame_static, lz4, lz4HC, lz4common;
-
-const
- LZ4F_VERSION = 100;
- LZ4F_MAGICNUMBER = $184D2204;
- _1BIT = $01;
- _2BITS = $03;
- _3BITS = $07;
- _4BITS = $0F;
- _8BITS = $FF;
- LZ4F_BLOCKUNCOMPRESSED_FLAG: cardinal = $80000000;
-
-type
- LZ4F_errorCode_t = size_t;
- PLZ4F_decompressionContext_t = pointer;
- PLZ4F_compressionContext_t = pointer;
- blockSizeID_t = (LZ4F_default = 0, max64KB = 4, max256KB = 5, max1MB = 6, max4MB = 7);
- blockMode_t = (blockLinked = 0, blockIndependent);
- contentChecksum_t = (noContentChecksum = 0, contentChecksumEnabled);
- LZ4F_lastBlockStatus = (notDone, fromTmpBuffer, fromSrcBuffer);
-
- PLZ4F_frameInfo_t = ^LZ4F_frameInfo_t;
-
- LZ4F_frameInfo_t = record
- blockSizeID: blockSizeID_t;
- blockMode: blockMode_t;
- contentChecksumFlag: contentChecksum_t;
- reserved: array [0 .. 4] of cardinal;
- end;
-
- PLZ4F_preferences_t = ^LZ4F_preferences_t;
-
- LZ4F_preferences_t = record
- frameInfo: LZ4F_frameInfo_t;
- compressionLevel: cardinal;
- autoFlush: cardinal;
- reserved: array [0 .. 3] of cardinal;
- end;
-
- PLZ4F_compressOptions_t = ^LZ4F_compressOptions_t;
-
- LZ4F_compressOptions_t = record
- stableSrc: cardinal;
- reserved: array [0 .. 2] of cardinal;
- end;
-
- PLZ4F_cctx_internal_t = ^LZ4F_cctx_internal_t;
-
- LZ4F_cctx_internal_t = record
- prefs: LZ4F_preferences_t;
- version: cardinal;
- cStage: cardinal;
- maxBlockSize: size_t;
- maxBufferSize: size_t;
- tmpBuff: pByte;
- tmpIn: pByte;
- tmpInSize: size_t;
- xxh: XXH32_state_t;
- lz4CtxPtr: pointer;
- lz4CtxLevel: cardinal;
- end;
-
- PLZ4F_dctx_internal_t = ^LZ4F_dctx_internal_t;
-
- LZ4F_dctx_internal_t = record
- frameInfo: LZ4F_frameInfo_t;
- version: cardinal;
- dStage: cardinal;
- maxBlockSize: size_t;
- maxBufferSize: size_t;
- srcExpect: pByte;
- tmpIn: pByte;
- tmpInSize: size_t;
- tmpInTarget: size_t;
- tmpOutBuffer: pByte;
- dict: pByte;
- dictSize: size_t;
- tmpOut: pByte;
- tmpOutSize: size_t;
- tmpOutStart: size_t;
- xxh: XXH32_state_t;
- header: array [0 .. 7] of byte;
- end;
-
- PLZ4F_decompressOptions_t = ^LZ4F_decompressOptions_t;
-
- LZ4F_decompressOptions_t = record
- stableDst: cardinal;
- reserved: array [0 .. 2] of cardinal;
- end;
-
-const
- LZ4F_BLOCKSIZEID_DEFAULT = max64KB;
- LZ4F_MAXHEADERFRAME_SIZE = 7;
-
-function LZ4F_createDecompressionContext(var LZ4F_decompressionContextPtr: PLZ4F_compressionContext_t; versionNumber: cardinal)
- : LZ4F_errorCode_t;
-function LZ4F_isError(code: LZ4F_errorCode_t): boolean;
-function LZ4F_compressFrame(dstBuffer: pointer; dstMaxSize: size_t; const srcBuffer: pointer; srcSize: size_t;
- const preferencesPtr: PLZ4F_preferences_t): size_t;
-function LZ4F_compressBound(srcSize: size_t; const preferencesPtr: PLZ4F_preferences_t): size_t;
-function LZ4F_compressFrameBound(srcSize: size_t; const preferencesPtr: PLZ4F_preferences_t): size_t;
-function LZ4F_compressBegin(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- preferencesPtr: PLZ4F_preferences_t): size_t;
-function LZ4F_compressUpdate(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- const srcBuffer: pointer; srcSize: size_t; compressOptionsPtr: PLZ4F_compressOptions_t): size_t;
-function LZ4F_compressEnd(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- const compressOptionsPtr: PLZ4F_compressOptions_t): size_t;
-function LZ4F_flush(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- compressOptionsPtr: PLZ4F_compressOptions_t): size_t;
-function LZ4F_decompress(decompressionContext: PLZ4F_decompressionContext_t;
- dstBuffer: pointer; dstSizePtr: psize_t; const srcBuffer: pointer; srcSizePtr: psize_t;
- decompressOptionsPtr: PLZ4F_decompressOptions_t): size_t;
-function LZ4F_createCompressionContext(var LZ4F_compressionContextPtr: PLZ4F_compressionContext_t; version: cardinal): LZ4F_errorCode_t;
-function LZ4F_freeCompressionContext(LZ4F_compressionContext: PLZ4F_compressionContext_t): LZ4F_errorCode_t;
-function LZ4F_getFrameInfo(decompressionContext: PLZ4F_decompressionContext_t; frameInfoPtr: PLZ4F_frameInfo_t; const srcBuffer: pointer;
- srcSizePtr: psize_t): LZ4F_errorCode_t;
-function LZ4F_freeDecompressionContext(LZ4F_decompressionContext: PLZ4F_decompressionContext_t): LZ4F_errorCode_t;
-function LZ4F_getErrorName(code : LZ4F_errorCode_t ): pAnsiChar;
-
-implementation
-
-var
- minHClevel: cardinal = 3;
-
-type
- dStage_t = (dstage_getHeader = 0, dstage_storeHeader, dstage_decodeHeader,
- dstage_getCBlockSize, dstage_storeCBlockSize, dstage_decodeCBlockSize,
- dstage_copyDirect,
- dstage_getCBlock, dstage_storeCBlock, dstage_decodeCBlock,
- dstage_decodeCBlock_intoDst, dstage_decodeCBlock_intoTmp, dstage_flushOut,
- dstage_getSuffix, dstage_storeSuffix, dstage_checkSuffix);
-
-function LZ4F_getBlockSize(blockSizeID: cardinal): size_t; forward;
-
-function LZ4F_createDecompressionContext(var LZ4F_decompressionContextPtr: PLZ4F_compressionContext_t; versionNumber: cardinal)
- : LZ4F_errorCode_t;
-var
- dctxPtr: PLZ4F_dctx_internal_t;
-begin
- dctxPtr := allocmem(sizeof(LZ4F_dctx_internal_t));
- if dctxPtr = nil then
- exit(LZ4F_errorCode_t(-integer(ERROR_GENERIC)));
- dctxPtr.version := versionNumber;
- LZ4F_decompressionContextPtr := dctxPtr;
- result := LZ4F_errorCode_t(OK_NoError);
-end;
-
-function LZ4F_isError(code: LZ4F_errorCode_t): boolean;
-begin
- result := code > LZ4F_errorCode_t(-integer(ERROR_maxCode));
-end;
-
-function LZ4F_getErrorName(code : LZ4F_errorCode_t ): pAnsiChar;
-begin
- result:= 'Unspecified error code';
- if LZ4F_isError(code) then exit (pAnsiChar(LZ4F_errorStrings[-integer(code)]));
-end;
-
-function LZ4F_compressFrameBound(srcSize: size_t; const preferencesPtr: PLZ4F_preferences_t): size_t;
-var
- prefs: LZ4F_preferences_t;
- headerSize: size_t;
- streamSize: size_t;
- proposedBSID: blockSizeID_t;
- maxBlockSize: size_t;
-begin
- fillchar(prefs, sizeof(LZ4F_preferences_t), 0);
- if (preferencesPtr <> Nil) then
- prefs := preferencesPtr^;
- proposedBSID := max64KB;
- maxBlockSize := 65536;
- while (prefs.frameInfo.blockSizeID > proposedBSID) do
- begin
- if srcSize <= maxBlockSize then
- begin
- prefs.frameInfo.blockSizeID := proposedBSID;
- break;
- end;
- inc(proposedBSID);
- maxBlockSize := maxBlockSize shl 2;
- end;
- prefs.autoFlush := 1;
- headerSize := 7; // basic header size (no option) including magic number
- streamSize := LZ4F_compressBound(srcSize, @prefs);
- result := headerSize + streamSize;
-end;
-
-function LZ4F_compressFrame(dstBuffer: pointer; dstMaxSize: size_t; const srcBuffer: pointer; srcSize: size_t;
- const preferencesPtr: PLZ4F_preferences_t): size_t;
-var
- cctxI: LZ4F_cctx_internal_t;
- prefs: LZ4F_preferences_t;
- options: LZ4F_compressOptions_t;
- errorCode: LZ4F_errorCode_t;
- dstStart: pByte;
- dstPtr: pByte;
- dstEnd: pByte;
- proposedBSID: blockSizeID_t;
- maxBlockSize: size_t;
-begin
- fillchar(cctxI, sizeof(LZ4F_cctx_internal_t), 0);
- fillchar(prefs, sizeof(LZ4F_preferences_t), 0);
- fillchar(options, sizeof(LZ4F_compressOptions_t), 0);
- dstStart := pByte(dstBuffer);
- dstPtr := dstStart;
- dstEnd := dstStart + dstMaxSize;
- cctxI.version := LZ4F_VERSION;
- cctxI.maxBufferSize := 5 * 1048576;
- if (preferencesPtr <> Nil) then
- prefs := preferencesPtr^;
- proposedBSID := max64KB;
- maxBlockSize := 65536;
- while (prefs.frameInfo.blockSizeID > proposedBSID) do
- begin
- if (srcSize <= maxBlockSize) then
- begin
- prefs.frameInfo.blockSizeID := proposedBSID;
- break;
- end;
- inc(proposedBSID);
- maxBlockSize := maxBlockSize shl 2;
- end;
- prefs.autoFlush := 1;
- if (srcSize <= LZ4F_getBlockSize(cardinal(prefs.frameInfo.blockSizeID))) then
- prefs.frameInfo.blockMode := blockIndependent; // no need for linked blocks
-
- options.stableSrc := 1;
-
- if (dstMaxSize < LZ4F_compressFrameBound(srcSize, @prefs)) then
- exit(size_t(-integer(ERROR_dstMaxSize_tooSmall)));
-
- errorCode := LZ4F_compressBegin(@cctxI, dstBuffer, dstMaxSize, @prefs); // write header
- if (LZ4F_isError(errorCode)) then
- exit(errorCode);
- inc(dstPtr, errorCode); // header size
-
- dec(dstMaxSize, errorCode);
- errorCode := LZ4F_compressUpdate(@cctxI, dstPtr, dstMaxSize, srcBuffer, srcSize, @options);
- if (LZ4F_isError(errorCode)) then
- exit(errorCode);
- inc(dstPtr, errorCode);
- errorCode := LZ4F_compressEnd(@cctxI, dstPtr, dstEnd - dstPtr, @options); // flush last block, and generate suffix
- if LZ4F_isError(errorCode) then
- exit(errorCode);
- inc(dstPtr, errorCode);
-
- freemem(cctxI.lz4CtxPtr);
-
- result := dstPtr - dstStart;
-end;
-
-function LZ4F_getBlockSize(blockSizeID: cardinal): size_t;
-const
- blockSizes: array [0 .. 3] of size_t = (65536, 4 * 65536, 16 * 65536, 64 * 65536);
-begin
- if (blockSizeID = 0) then
- blockSizeID := cardinal(LZ4F_BLOCKSIZEID_DEFAULT);
- dec(blockSizeID, 4);
- if (blockSizeID > 3) then
- exit(size_t(-integer(ERROR_maxBlockSize_invalid)));
- result := blockSizes[blockSizeID];
-end;
-
-function LZ4F_compressBound(srcSize: size_t; const preferencesPtr: PLZ4F_preferences_t): size_t;
-var
- prefsNull: LZ4F_preferences_t;
- prefsPtr: PLZ4F_preferences_t;
- bid: blockSizeID_t;
- blockSize: size_t;
- nbBlocks: cardinal;
- lastBlockSize: size_t;
- blockInfo: size_t;
- frameEnd: size_t;
-begin
- fillchar(prefsNull, sizeof(LZ4F_preferences_t), 0);
- if preferencesPtr = Nil then
- prefsPtr := @prefsNull
- else
- prefsPtr := preferencesPtr;
- bid := prefsPtr.frameInfo.blockSizeID;
- blockSize := LZ4F_getBlockSize(cardinal(bid));
- nbBlocks := cardinal(srcSize div blockSize) + 1;
- if prefsPtr.autoFlush <> 0 then
- lastBlockSize := srcSize mod blockSize
- else
- lastBlockSize := blockSize;
- blockInfo := 4; // default, without block CRC option
- frameEnd := 4 + (cardinal(prefsPtr.frameInfo.contentChecksumFlag) * 4);
- result := (blockInfo * nbBlocks) + (blockSize * (nbBlocks - 1)) + lastBlockSize + frameEnd;
-end;
-
-procedure LZ4F_writeLE32(dstPtr: pByte; value32: cardinal);
-begin
- dstPtr[0] := byte(value32);
- dstPtr[1] := byte(value32 shr 8);
- dstPtr[2] := byte(value32 shr 16);
- dstPtr[3] := byte(value32 shr 24);
-end;
-
-function LZ4F_headerChecksum(const header: pByte; length: size_t): byte;
-var
- xxh: cardinal;
-begin
- xxh := XXH32(header, cardinal(length), 0);
- result := byte(xxh shr 8);
-end;
-
-function LZ4F_compressBegin(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- preferencesPtr: PLZ4F_preferences_t): size_t;
-var
- prefNull: LZ4F_preferences_t;
- cctxPtr: PLZ4F_cctx_internal_t;
- dstStart: pByte;
- dstPtr: pByte;
- headerStart: pByte;
- requiredBuffSize: size_t;
- targetCtxLevel: cardinal;
-begin
- fillchar(prefNull, sizeof(LZ4F_preferences_t), 0);
- cctxPtr := PLZ4F_cctx_internal_t(compressionContext);
- dstStart := pByte(dstBuffer);
- dstPtr := dstStart;
- if (dstMaxSize < LZ4F_MAXHEADERFRAME_SIZE) then
- exit(size_t(-integer(ERROR_dstMaxSize_tooSmall)));
- if (cctxPtr.cStage <> 0) then
- exit(size_t(-integer(ERROR_GENERIC)));
- if (preferencesPtr = Nil) then
- preferencesPtr := @prefNull;
- cctxPtr.prefs := preferencesPtr^;
- // ctx Management
- if cctxPtr.prefs.compressionLevel < minHClevel then
- targetCtxLevel := 1
- else
- targetCtxLevel := 2;
- if cctxPtr.lz4CtxLevel < targetCtxLevel then
- begin
- freemem(cctxPtr.lz4CtxPtr);
- if (cctxPtr.prefs.compressionLevel < minHClevel) then
- cctxPtr.lz4CtxPtr := LZ4_createStream()
- else
- cctxPtr.lz4CtxPtr := LZ4_createStreamHC();
- cctxPtr.lz4CtxLevel := targetCtxLevel;
- end;
- // Buffer Management
- if cardinal(cctxPtr.prefs.frameInfo.blockSizeID) = 0 then
- cctxPtr.prefs.frameInfo.blockSizeID := LZ4F_BLOCKSIZEID_DEFAULT;
- cctxPtr.maxBlockSize := LZ4F_getBlockSize(cardinal(cctxPtr.prefs.frameInfo.blockSizeID));
-
- requiredBuffSize := cctxPtr.maxBlockSize + (cardinal(cctxPtr.prefs.frameInfo.blockMode = blockLinked) * 131072);
- if preferencesPtr.autoFlush <> 0 then
- requiredBuffSize := cardinal(cctxPtr.prefs.frameInfo.blockMode = blockLinked) * 65536; // just needs dict
-
- if (cctxPtr.maxBufferSize < requiredBuffSize) then
- begin
- cctxPtr.maxBufferSize := requiredBuffSize;
- freemem(cctxPtr.tmpBuff);
- cctxPtr.tmpBuff := allocmem(requiredBuffSize);
- if (cctxPtr.tmpBuff = Nil) then
- exit(size_t(-integer(ERROR_allocation_failed)));
- end;
- cctxPtr.tmpIn := cctxPtr.tmpBuff;
- cctxPtr.tmpInSize := 0;
- XXH32_reset(@cctxPtr.xxh, 0);
- if cctxPtr.prefs.compressionLevel < minHClevel then
- LZ4_resetStream(PLZ4_stream_t(cctxPtr.lz4CtxPtr))
- else
- LZ4_resetStreamHC(cctxPtr.lz4CtxPtr, cctxPtr.prefs.compressionLevel);
-
- // Magic Number
- LZ4F_writeLE32(dstPtr, LZ4F_MAGICNUMBER);
- inc(dstPtr, 4);
- headerStart := dstPtr;
- // FLG Byte
- dstPtr^ := ((1 and _2BITS) shl 6) // Version('01')
- + ((cardinal(cctxPtr.prefs.frameInfo.blockMode) and _1BIT) shl 5) // Block mode
- + byte((cardinal(cctxPtr.prefs.frameInfo.contentChecksumFlag) and _1BIT) shl 2); // Stream checksum
-
- inc(dstPtr);
-
- // BD Byte
- dstPtr^ := byte((cardinal(cctxPtr.prefs.frameInfo.blockSizeID) and _3BITS) shl 4);
- inc(dstPtr);
-
- // *CRC Byte
- dstPtr^ := LZ4F_headerChecksum(headerStart, 2);
- inc(dstPtr);
- cctxPtr.cStage := 1; // header written, wait for data block
- result := dstPtr - dstStart;
-end;
-
-type
- compressFunc_t = function(ctx: pointer; const src: pAnsiChar; dst: pAnsiChar; srcSize: integer; dstSize: integer;
- level: integer): integer;
-
-function LZ4F_localLZ4_compress_limitedOutput_withState(ctx: pointer; const src: pAnsiChar; dst: pAnsiChar; srcSize: integer;
- dstSize: integer; level: integer): integer;
-begin
- result := LZ4_compress_limitedOutput_withState(ctx, src, dst, srcSize, dstSize);
-end;
-
-function LZ4F_localLZ4_compress_limitedOutput_continue(ctx: pointer; const src: pAnsiChar; dst: pAnsiChar; srcSize: integer;
- dstSize: integer; level: integer): integer;
-begin
- result := LZ4_compress_limitedOutput_continue(PLZ4_stream_t(ctx), src, dst, srcSize, dstSize);
-end;
-
-function LZ4F_localLZ4_compressHC_limitedOutput_continue(ctx: pointer; const src: pAnsiChar; dst: pAnsiChar; srcSize: integer;
- dstSize: integer; level: integer): integer;
-begin
- result := LZ4_compressHC_limitedOutput_continue(PLZ4_streamHC_t(ctx), src, dst, srcSize, dstSize);
-end;
-
-function LZ4F_localSaveDict(cctxPtr: PLZ4F_cctx_internal_t): integer;
-begin
- if cctxPtr.prefs.compressionLevel < minHClevel then
- result := LZ4_saveDict(PLZ4_stream_t(cctxPtr.lz4CtxPtr), pAnsiChar(cctxPtr.tmpBuff), 65536)
- else
- result := LZ4_saveDictHC(PLZ4_streamHC_t(cctxPtr.lz4CtxPtr), pAnsiChar(cctxPtr.tmpBuff), 65536);
-end;
-
-function LZ4F_selectCompression(blockMode: blockMode_t; level: cardinal): compressFunc_t;
-begin
- if level < minHClevel then
- begin
- if (blockMode = blockIndependent) then
- exit(@LZ4F_localLZ4_compress_limitedOutput_withState);
- exit(@LZ4F_localLZ4_compress_limitedOutput_continue);
- end;
- if (blockMode = blockIndependent) then
- exit(@LZ4_compressHC2_limitedOutput_withStateHC);
- exit(@LZ4F_localLZ4_compressHC_limitedOutput_continue);
-end;
-
-function LZ4F_compressBlock(dst: pointer; const src: pointer; srcSize: size_t; compress: compressFunc_t; lz4ctx: pointer;
- level: integer): integer;
-var
- cSizePtr: pByte;
- cSize: cardinal;
-begin
- cSizePtr := dst;
- cSize := cardinal(compress(lz4ctx, src, pAnsiChar(cSizePtr + 4), integer(srcSize), integer(srcSize - 1), level));
- LZ4F_writeLE32(cSizePtr, cSize);
- if (cSize = 0) then // compression failed
- begin
- cSize := srcSize;
- LZ4F_writeLE32(cSizePtr, cSize + LZ4F_BLOCKUNCOMPRESSED_FLAG);
- move(src^, (cSizePtr + 4)^, srcSize);
- end;
- result := cSize + 4;
-end;
-
-function LZ4F_compressUpdate(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- const srcBuffer: pointer; srcSize: size_t; compressOptionsPtr: PLZ4F_compressOptions_t): size_t;
-var
- cOptionsNull: LZ4F_compressOptions_t;
- cctxPtr: PLZ4F_cctx_internal_t;
- blockSize: size_t;
- srcPtr: pByte;
- srcEnd: pByte;
- dstStart: pByte;
- dstPtr: pByte;
- lastBlockCompressed: LZ4F_lastBlockStatus;
- compress: compressFunc_t;
- sizeToCopy: size_t;
- realDictSize: integer;
-begin
- fillchar(cOptionsNull, sizeof(LZ4F_compressOptions_t), 0);
- cctxPtr := PLZ4F_cctx_internal_t(compressionContext);
- blockSize := cctxPtr.maxBlockSize;
- srcPtr := srcBuffer;
- srcEnd := srcPtr + srcSize;
- dstStart := dstBuffer;
- dstPtr := dstStart;
- lastBlockCompressed := notDone;
- if cctxPtr.cStage <> 1 then
- exit(size_t(-integer(ERROR_GENERIC)));
- if dstMaxSize < LZ4F_compressBound(srcSize, @(cctxPtr.prefs)) then
- exit(size_t(-integer(ERROR_dstMaxSize_tooSmall)));
- if compressOptionsPtr = Nil then
- compressOptionsPtr := @cOptionsNull;
- // select compression function
- compress := LZ4F_selectCompression(cctxPtr.prefs.frameInfo.blockMode, cctxPtr.prefs.compressionLevel);
- // complete tmp buffer
- if cctxPtr.tmpInSize > 0 then // some data already within tmp buffer
- begin
- sizeToCopy := blockSize - cctxPtr.tmpInSize;
- if sizeToCopy > srcSize then
- begin
- // add src to tmpIn buffer
- move(srcBuffer^, (cctxPtr.tmpIn + cctxPtr.tmpInSize)^, srcSize);
- srcPtr := srcEnd;
- inc(cctxPtr.tmpInSize, srcSize);
- // still needs some CRC
- end
- else
- begin
- // complete tmpIn block and then compress it
- lastBlockCompressed := fromTmpBuffer;
- move(srcBuffer^, (cctxPtr.tmpIn + cctxPtr.tmpInSize)^, sizeToCopy);
- inc(srcPtr, sizeToCopy);
- inc(dstPtr, LZ4F_compressBlock(dstPtr, cctxPtr.tmpIn, blockSize, compress, cctxPtr.lz4CtxPtr, cctxPtr.prefs.compressionLevel));
-
- if (cctxPtr.prefs.frameInfo.blockMode = blockLinked) then
- inc(cctxPtr.tmpIn, blockSize);
- cctxPtr.tmpInSize := 0;
- end;
- end;
- while size_t(srcEnd - srcPtr) >= blockSize do
- begin
- // compress full block
- lastBlockCompressed := fromSrcBuffer;
- inc(dstPtr, LZ4F_compressBlock(dstPtr, srcPtr, blockSize, compress, cctxPtr.lz4CtxPtr, cctxPtr.prefs.compressionLevel));
- inc(srcPtr, blockSize);
- end;
- if ((cctxPtr.prefs.autoFlush <> 0) and (srcPtr < srcEnd)) then
- begin
- // compress remaining input < blockSize
- lastBlockCompressed := fromSrcBuffer;
- inc(dstPtr, LZ4F_compressBlock(dstPtr, srcPtr, srcEnd - srcPtr, compress, cctxPtr.lz4CtxPtr, cctxPtr.prefs.compressionLevel));
- srcPtr := srcEnd;
- end;
-
- // preserve dictionary if necessary
- if ((cctxPtr.prefs.frameInfo.blockMode = blockLinked) and (lastBlockCompressed = fromSrcBuffer)) then
- begin
- if compressOptionsPtr.stableSrc <> 0 then
- cctxPtr.tmpIn := cctxPtr.tmpBuff
- else
- begin
- realDictSize := LZ4F_localSaveDict(cctxPtr);
- if (realDictSize = 0) then
- exit(size_t(-integer(ERROR_GENERIC)));
- cctxPtr.tmpIn := cctxPtr.tmpBuff + realDictSize;
- end;
- end;
- // keep tmpIn within limits
- if ((cctxPtr.tmpIn + blockSize) > (cctxPtr.tmpBuff + cctxPtr.maxBufferSize))
- // necessarily blockLinked && lastBlockCompressed==fromTmpBuffer
- and (cctxPtr.prefs.autoFlush = 0) then
- begin
- LZ4F_localSaveDict(cctxPtr);
- cctxPtr.tmpIn := cctxPtr.tmpBuff + 65536;
- end;
- // some input data left, necessarily < blockSize
- if srcPtr < srcEnd then
- begin
- // fill tmp buffer
- sizeToCopy := srcEnd - srcPtr;
- move(srcPtr^, (cctxPtr.tmpIn)^, sizeToCopy);
- cctxPtr.tmpInSize := sizeToCopy;
- end;
- if (cctxPtr.prefs.frameInfo.contentChecksumFlag = contentChecksumEnabled) then
- XXH32_update(@(cctxPtr.xxh), srcBuffer, cardinal(srcSize));
- result := dstPtr - dstStart;
-end;
-
-function LZ4F_flush(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- compressOptionsPtr: PLZ4F_compressOptions_t): size_t;
-var
- cOptionsNull: LZ4F_compressOptions_t;
- cctxPtr: PLZ4F_cctx_internal_t;
- dstStart: pByte;
- dstPtr: pByte;
- compress: compressFunc_t;
-begin
- fillchar(cOptionsNull, sizeof(LZ4F_compressOptions_t), 0);
- cctxPtr := PLZ4F_cctx_internal_t(compressionContext);
- dstStart := pByte(dstBuffer);
- dstPtr := dstStart;
- if cctxPtr.tmpInSize = 0 then
- exit(0); // nothing to flush
- if cctxPtr.cStage <> 1 then
- exit(size_t(-integer(ERROR_GENERIC)));
- if (dstMaxSize < (cctxPtr.tmpInSize + 16)) then
- exit(size_t(-integer(ERROR_dstMaxSize_tooSmall)));
- (* Not used
- if (compressOptionsPtr = Nil) then
- compressOptionsPtr := @cOptionsNull;
- *)
- // select compression function
- compress := LZ4F_selectCompression(cctxPtr.prefs.frameInfo.blockMode, cctxPtr.prefs.compressionLevel);
- // compress tmp buffer
- inc(dstPtr, LZ4F_compressBlock(dstPtr, cctxPtr.tmpIn, cctxPtr.tmpInSize, compress, cctxPtr.lz4CtxPtr, cctxPtr.prefs.compressionLevel));
- if (cctxPtr.prefs.frameInfo.blockMode = blockLinked) then
- inc(cctxPtr.tmpIn, cctxPtr.tmpInSize);
- cctxPtr.tmpInSize := 0;
- // keep tmpIn within limits
- if ((cctxPtr.tmpIn + cctxPtr.maxBlockSize) > (cctxPtr.tmpBuff + cctxPtr.maxBufferSize)) then // necessarily blockLinked
- begin
- LZ4F_localSaveDict(cctxPtr);
- cctxPtr.tmpIn := cctxPtr.tmpBuff + 65536;
- end;
- result := dstPtr - dstStart;
-end;
-
-function LZ4F_compressEnd(compressionContext: PLZ4F_compressionContext_t; dstBuffer: pointer; dstMaxSize: size_t;
- const compressOptionsPtr: PLZ4F_compressOptions_t): size_t;
-var
- cctxPtr: PLZ4F_cctx_internal_t;
- dstStart: pByte;
- dstPtr: pByte;
- errorCode: size_t;
- xxh: cardinal;
-begin
- cctxPtr := PLZ4F_cctx_internal_t(compressionContext);
- dstStart := pByte(dstBuffer);
- dstPtr := dstStart;
- errorCode := LZ4F_flush(compressionContext, dstBuffer, dstMaxSize, compressOptionsPtr);
- if LZ4F_isError(errorCode) then
- exit(errorCode);
- inc(dstPtr, errorCode);
- LZ4F_writeLE32(dstPtr, 0);
- inc(dstPtr, 4); // endMark
- if cctxPtr.prefs.frameInfo.contentChecksumFlag = contentChecksumEnabled then
- begin
- xxh := XXH32_digest(@(cctxPtr.xxh));
- LZ4F_writeLE32(dstPtr, xxh);
- inc(dstPtr, 4); // content Checksum
- end;
- cctxPtr.cStage := 0; // state is now re-usable (with identical preferences)
-
- result := dstPtr - dstStart;
-end;
-
-function LZ4F_readLE32(const srcPtr: pByte): cardinal;
-var
- value32: cardinal;
-begin
- value32 := srcPtr[0];
- inc(value32, (srcPtr[1] shl 8));
- inc(value32, (srcPtr[2] shl 16));
- inc(value32, (srcPtr[3] shl 24));
- result := value32;
-end;
-
-function LZ4F_decodeHeader(dctxPtr: PLZ4F_dctx_internal_t; srcPtr: pByte; srcSize: size_t): size_t;
-var
- FLG, BD, HC: byte;
- version, blockMode, blockChecksumFlag, contentSizeFlag, contentChecksumFlag, dictFlag, blockSizeID: cardinal;
- bufferNeeded: size_t;
-begin
- // need to decode header to get frameInfo
- if srcSize < 7 then
- exit(size_t(-integer(ERROR_GENERIC))); // minimal header size
- // control magic number
- if (LZ4F_readLE32(srcPtr) <> LZ4F_MAGICNUMBER) then
- exit(size_t(-integer(ERROR_GENERIC)));
- inc(srcPtr, 4);
- // Flags
- FLG := srcPtr[0];
- version := (FLG shr 6) and _2BITS;
- blockMode := (FLG shr 5) and _1BIT;
- blockChecksumFlag := (FLG shr 4) and _1BIT;
- contentSizeFlag := (FLG shr 3) and _1BIT;
- contentChecksumFlag := (FLG shr 2) and _1BIT;
- dictFlag := (FLG shr 0) and _1BIT;
- BD := srcPtr[1];
- blockSizeID := (BD shr 4) and _3BITS;
- // check
- HC := LZ4F_headerChecksum(srcPtr, 2);
- if (HC <> srcPtr[2]) then
- exit(size_t(-integer(ERROR_GENERIC))); // Bad header checksum error
-
- // validate
- if version <> 1 then
- exit(size_t(-integer(ERROR_GENERIC))); // Version Number, only supported value
- if blockChecksumFlag <> 0 then
- exit(size_t(-integer(ERROR_GENERIC))); // Only supported value for the time being
- if contentSizeFlag <> 0 then
- exit(size_t(-integer(ERROR_GENERIC))); // Only supported value for the time being
- if ((FLG shr 1) and _1BIT) <> 0 then
- exit(size_t(-integer(ERROR_GENERIC)));
- /// Reserved bit
- if dictFlag <> 0 then
- exit(size_t(-integer(ERROR_GENERIC))); // Only supported value for the time being
- if (BD shr 7) and _1BIT <> 0 then
- exit(size_t(-integer(ERROR_GENERIC)));
- /// Reserved bit
- if blockSizeID < 4 then
- exit(size_t(-integer(ERROR_GENERIC))); // Only supported values for the time being
- if (((BD shr 0) and _4BITS) <> 0) then
- exit(size_t(-integer(ERROR_GENERIC))); // Reserved bits
- // save
- dctxPtr.frameInfo.blockMode := blockMode_t(blockMode);
- dctxPtr.frameInfo.contentChecksumFlag := contentChecksum_t(contentChecksumFlag);
- dctxPtr.frameInfo.blockSizeID := blockSizeID_t(blockSizeID);
- dctxPtr.maxBlockSize := LZ4F_getBlockSize(blockSizeID);
-
- // init
- if (contentChecksumFlag <> 0) then
- XXH32_reset(@(dctxPtr.xxh), 0);
-
- // alloc
- bufferNeeded := dctxPtr.maxBlockSize + size_t (integer(dctxPtr.frameInfo.blockMode = blockLinked) * 131072);
-
- if bufferNeeded > dctxPtr.maxBufferSize then // tmp buffers too small
- begin
- freemem(dctxPtr.tmpIn);
- freemem(dctxPtr.tmpOutBuffer);
- dctxPtr.maxBufferSize := bufferNeeded;
- dctxPtr.tmpIn := allocmem(dctxPtr.maxBlockSize);
- if dctxPtr.tmpIn = Nil then
- exit(size_t(-integer(ERROR_GENERIC)));
- dctxPtr.tmpOutBuffer := allocmem(dctxPtr.maxBufferSize);
- if dctxPtr.tmpOutBuffer = Nil then
- exit(size_t(-integer(ERROR_GENERIC)));
- end;
- dctxPtr.tmpInSize := 0;
- dctxPtr.tmpInTarget := 0;
- dctxPtr.dict := dctxPtr.tmpOutBuffer;
- dctxPtr.dictSize := 0;
- dctxPtr.tmpOut := dctxPtr.tmpOutBuffer;
- dctxPtr.tmpOutStart := 0;
- dctxPtr.tmpOutSize := 0;
-
- result := 7;
-end;
-
-procedure LZ4F_updateDict(dctxPtr: PLZ4F_dctx_internal_t; const dstPtr: pByte; dstSize: size_t; const dstPtr0: pByte; withinTmp: cardinal);
-var
- preserveSize: size_t;
- copySize: size_t;
- oldDictEnd: pByte;
-begin
- if dctxPtr.dictSize = 0 then
- dctxPtr.dict := pByte(dstPtr); // priority to dictionary continuity
-
- if dctxPtr.dict + dctxPtr.dictSize = dstPtr then // dictionary continuity
- begin
- inc(dctxPtr.dictSize, dstSize);
- exit;
- end;
-
- if size_t(dstPtr - dstPtr0) + dstSize >= 65536 then // dstBuffer large enough to become dictionary
- begin
- dctxPtr.dict := pByte(dstPtr0);
- dctxPtr.dictSize := size_t(dstPtr - dstPtr0) + dstSize;
- exit;
- end;
-
- if ((withinTmp <> 0) and (dctxPtr.dict = dctxPtr.tmpOutBuffer)) then
- begin
- // assumption : dctxPtr->dict + dctxPtr->dictSize == dctxPtr->tmpOut + dctxPtr->tmpOutStart
- inc(dctxPtr.dictSize, dstSize);
- exit;
- end;
-
- if withinTmp <> 0 then // copy relevant dict portion in front of tmpOut within tmpOutBuffer
- begin
- preserveSize := dctxPtr.tmpOut - dctxPtr.tmpOutBuffer;
- copySize := 65536 - dctxPtr.tmpOutSize;
- oldDictEnd := dctxPtr.dict + dctxPtr.dictSize - dctxPtr.tmpOutStart;
- if dctxPtr.tmpOutSize > 65536 then
- copySize := 0;
- if copySize > preserveSize then
- copySize := preserveSize;
-
- move((oldDictEnd - copySize)^, (dctxPtr.tmpOutBuffer + preserveSize - copySize)^, copySize);
-
- dctxPtr.dict := dctxPtr.tmpOutBuffer;
- dctxPtr.dictSize := preserveSize + dctxPtr.tmpOutStart + dstSize;
- exit;
- end;
-
- if dctxPtr.dict = dctxPtr.tmpOutBuffer then // copy dst into tmp to complete dict
- begin
- if dctxPtr.dictSize + dstSize > dctxPtr.maxBufferSize then // tmp buffer not large enough
- begin
- preserveSize := 65536 - dstSize; // note : dstSize < 64 KB
- move((dctxPtr.dict + dctxPtr.dictSize - preserveSize)^, (dctxPtr.dict)^, preserveSize);
- dctxPtr.dictSize := preserveSize;
- end;
- move(dstPtr^, (dctxPtr.dict + dctxPtr.dictSize)^, dstSize);
- inc(dctxPtr.dictSize, dstSize);
- exit;
- end;
- // join dict & dest into tmp
-
- preserveSize := 65536 - dstSize; // note : dstSize < 64 KB
- if preserveSize > dctxPtr.dictSize then
- preserveSize := dctxPtr.dictSize;
- move((dctxPtr.dict + dctxPtr.dictSize - preserveSize)^, dctxPtr.tmpOutBuffer^, preserveSize);
- move(dstPtr^, (dctxPtr.tmpOutBuffer + preserveSize)^, dstSize);
- dctxPtr.dict := dctxPtr.tmpOutBuffer;
- dctxPtr.dictSize := preserveSize + dstSize;
-end;
-
-function LZ4F_decompress_safe(const source: pAnsiChar; dest: pAnsiChar; compressedSize: integer; maxDecompressedSize: integer;
- const dictStart: pAnsiChar; dictSize: integer): integer;
-begin
- result := LZ4_decompress_safe(source, dest, compressedSize, maxDecompressedSize);
-end;
-
-function LZ4F_decompress(decompressionContext: PLZ4F_decompressionContext_t;
- dstBuffer: pointer; dstSizePtr: psize_t;
- const srcBuffer: pointer; srcSizePtr: psize_t;
- decompressOptionsPtr: PLZ4F_decompressOptions_t): size_t;
-type
- Tdecoder = function(const c1: pAnsiChar; c2: pAnsiChar; c3: integer; c4: integer; const c5: pAnsiChar; c6: integer): integer;
-var
- dctxPtr: PLZ4F_dctx_internal_t;
- optionsNull: LZ4F_decompressOptions_t;
- srcStart: pByte;
- srcEnd: pByte;
- srcPtr: pByte;
- dstStart: pByte;
- dstEnd: pByte;
- dstPtr: pByte;
- selectedIn: pByte;
- doAnotherStage: cardinal;
- nextSrcSizeHint: size_t;
- sizeToCopy: size_t;
- errorCode: LZ4F_errorCode_t;
- nextCBlockSize: size_t;
- decodedSize: integer;
- decoder: Tdecoder;
- reservedDictSpace: size_t;
- suffixSize: size_t;
- readCRC: cardinal;
- resultCRC: cardinal;
- preserveSize: size_t;
- copySize: size_t;
- oldDictEnd: pByte;
- newDictSize: size_t;
-begin
- dctxPtr := PLZ4F_dctx_internal_t(decompressionContext);
- fillchar(optionsNull, sizeof(LZ4F_decompressOptions_t), 0);
- srcStart := pByte(srcBuffer);
- srcEnd := srcStart + srcSizePtr^;
- srcPtr := srcStart;
- dstStart := pByte(dstBuffer);
- dstEnd := dstStart + dstSizePtr^;
- dstPtr := dstStart;
- selectedIn := Nil;
- doAnotherStage := 1;
- nextSrcSizeHint := 1;
-
- if decompressOptionsPtr = Nil then
- decompressOptionsPtr := @optionsNull;
-
- srcSizePtr^ := 0;
- dstSizePtr^ := 0;
-
- // expect to continue decoding src buffer where it left previously
- if dctxPtr.srcExpect <> Nil then
- begin
- if (srcStart <> dctxPtr.srcExpect) then
- exit(size_t(-integer(ERROR_GENERIC)));
- end;
-
- // programmed as a state machine
-
- while (doAnotherStage <> 0) do
- begin
- case dctxPtr.dStage of
- cardinal(dstage_getHeader):
- begin
- if srcEnd - srcPtr >= 7 then
- begin
- selectedIn := srcPtr;
- inc(srcPtr, 7);
- dctxPtr.dStage := cardinal(dstage_decodeHeader);
- end
- else
- begin
- dctxPtr.tmpInSize := 0;
- dctxPtr.dStage := cardinal(dstage_storeHeader);
- end;
- end;
- cardinal(dstage_storeHeader):
- begin
- sizeToCopy := 7 - dctxPtr.tmpInSize;
- if sizeToCopy > size_t(srcEnd - srcPtr) then
- sizeToCopy := srcEnd - srcPtr;
- move(srcPtr^, (pByte(@dctxPtr.header) + dctxPtr.tmpInSize)^, sizeToCopy);
- inc(dctxPtr.tmpInSize, sizeToCopy);
- inc(srcPtr, sizeToCopy);
- if (dctxPtr.tmpInSize < 7) then
- begin
- nextSrcSizeHint := (7 - dctxPtr.tmpInSize) + 4;
- doAnotherStage := 0; // no enough src, wait to get some more
- end
- else
- begin
- selectedIn := @dctxPtr.header;
- dctxPtr.dStage := cardinal(dstage_decodeHeader);
- end;
- end;
- cardinal(dstage_decodeHeader):
- begin
- errorCode := LZ4F_decodeHeader(dctxPtr, selectedIn, 7);
- if LZ4F_isError(errorCode) then
- exit(errorCode);
- dctxPtr.dStage := cardinal(dstage_getCBlockSize);
- end;
- cardinal(dstage_getCBlockSize):
- begin
- if (srcEnd - srcPtr) >= 4 then
- begin
- selectedIn := srcPtr;
- inc(srcPtr, 4);
- dctxPtr.dStage := cardinal(dstage_decodeCBlockSize);
- end
- else
- begin
- // not enough input to read cBlockSize field
- dctxPtr.tmpInSize := 0;
- dctxPtr.dStage := cardinal(dstage_storeCBlockSize);
- end;
- end;
- cardinal(dstage_storeCBlockSize):
- begin
- sizeToCopy := 4 - dctxPtr.tmpInSize;
- if sizeToCopy > size_t(srcEnd - srcPtr) then
- sizeToCopy := srcEnd - srcPtr;
- move(srcPtr^, (dctxPtr.tmpIn + dctxPtr.tmpInSize)^, sizeToCopy);
- inc(srcPtr, sizeToCopy);
- inc(dctxPtr.tmpInSize, sizeToCopy);
- if dctxPtr.tmpInSize < 4 then // not enough input to get full cBlockSize; wait for more
- begin
- nextSrcSizeHint := 4 - dctxPtr.tmpInSize;
- doAnotherStage := 0;
- end
- else
- begin
- selectedIn := dctxPtr.tmpIn;
- dctxPtr.dStage := cardinal(dstage_decodeCBlockSize);
- end;
- end;
- cardinal(dstage_decodeCBlockSize):
- begin
- nextCBlockSize := LZ4F_readLE32(selectedIn) and $7FFFFFFF;
- if (nextCBlockSize = 0) then
- dctxPtr.dStage := cardinal(dstage_getSuffix)
- else
- begin
- if (nextCBlockSize > dctxPtr.maxBlockSize) then
- exit(size_t(-integer(ERROR_GENERIC))); // invalid cBlockSize
- dctxPtr.tmpInTarget := nextCBlockSize;
- if (LZ4F_readLE32(selectedIn) and LZ4F_BLOCKUNCOMPRESSED_FLAG) <> 0 then
- dctxPtr.dStage := cardinal(dstage_copyDirect)
- else
- begin
- dctxPtr.dStage := cardinal(dstage_getCBlock);
- if dstPtr = dstEnd then
- begin
- nextSrcSizeHint := nextCBlockSize + 4;
- doAnotherStage := 0;
- end;
- end;
- end;
- end;
- cardinal(dstage_copyDirect): // uncompressed block
- begin
- sizeToCopy := dctxPtr.tmpInTarget;
- if size_t(srcEnd - srcPtr) < sizeToCopy then
- sizeToCopy := srcEnd - srcPtr; // not enough input to read full block
- if size_t(dstEnd - dstPtr) < sizeToCopy then
- sizeToCopy := dstEnd - dstPtr;
- move(srcPtr^, dstPtr^, sizeToCopy);
- if (dctxPtr.frameInfo.contentChecksumFlag <> noContentChecksum) then
- XXH32_update(@(dctxPtr.xxh), srcPtr, cardinal(sizeToCopy));
- // dictionary management
- if (dctxPtr.frameInfo.blockMode = blockLinked) then
- LZ4F_updateDict(dctxPtr, dstPtr, sizeToCopy, dstStart, 0);
- inc(srcPtr, sizeToCopy);
- inc(dstPtr, sizeToCopy);
- if sizeToCopy = dctxPtr.tmpInTarget then // all copied
- dctxPtr.dStage := cardinal(dstage_getCBlockSize)
- else
- begin
- dec(dctxPtr.tmpInTarget, sizeToCopy); // still need to copy more
- nextSrcSizeHint := dctxPtr.tmpInTarget + 4;
- doAnotherStage := 0;
- end;
- end;
- cardinal(dstage_getCBlock):
- begin
- if size_t(srcEnd - srcPtr) < dctxPtr.tmpInTarget then
- begin
- dctxPtr.tmpInSize := 0;
- dctxPtr.dStage := cardinal(dstage_storeCBlock);
- end
- else
- begin
- selectedIn := srcPtr;
- inc(srcPtr, dctxPtr.tmpInTarget);
- dctxPtr.dStage := cardinal(dstage_decodeCBlock);
- end;
- end;
- cardinal(dstage_storeCBlock):
- begin
- sizeToCopy := dctxPtr.tmpInTarget - dctxPtr.tmpInSize;
- if sizeToCopy > size_t(srcEnd - srcPtr) then
- sizeToCopy := srcEnd - srcPtr;
-
- move(srcPtr^, (dctxPtr.tmpIn + dctxPtr.tmpInSize)^, sizeToCopy);
- inc(dctxPtr.tmpInSize, sizeToCopy);
- inc(srcPtr, sizeToCopy);
- if (dctxPtr.tmpInSize < dctxPtr.tmpInTarget) then // need more input
- begin
- nextSrcSizeHint := (dctxPtr.tmpInTarget - dctxPtr.tmpInSize) + 4;
- doAnotherStage := 0;
- end
- else
- begin
- selectedIn := dctxPtr.tmpIn;
- dctxPtr.dStage := cardinal(dstage_decodeCBlock);
- end;
- end;
- cardinal(dstage_decodeCBlock):
- begin
- if (size_t(dstEnd - dstPtr) < dctxPtr.maxBlockSize) then // not enough place into dst : decode into tmpOut
- dctxPtr.dStage := cardinal(dstage_decodeCBlock_intoTmp)
- else
- dctxPtr.dStage := cardinal(dstage_decodeCBlock_intoDst);
- end;
-
- cardinal(dstage_decodeCBlock_intoDst):
- begin
- if (dctxPtr.frameInfo.blockMode = blockLinked) then
- decoder := LZ4_decompress_safe_usingDict
- else
- decoder := LZ4F_decompress_safe;
-
- decodedSize := decoder(pAnsiChar(selectedIn), pAnsiChar(dstPtr), integer(dctxPtr.tmpInTarget),
- integer(dctxPtr.maxBlockSize), pAnsiChar(dctxPtr.dict), integer(dctxPtr.dictSize));
- if (decodedSize < 0) then
- exit(size_t(-integer(ERROR_GENERIC))); // decompression failed
- if (dctxPtr.frameInfo.contentChecksumFlag <> noContentChecksum) then
- XXH32_update(@(dctxPtr.xxh), dstPtr, decodedSize);
- // dictionary management
- if (dctxPtr.frameInfo.blockMode = blockLinked) then
- LZ4F_updateDict(dctxPtr, dstPtr, decodedSize, dstStart, 0);
-
- inc(dstPtr, decodedSize);
- dctxPtr.dStage := cardinal(dstage_getCBlockSize);
- end;
- cardinal(dstage_decodeCBlock_intoTmp):
- begin
- if (dctxPtr.frameInfo.blockMode = blockLinked) then
- decoder := LZ4_decompress_safe_usingDict
- else
- decoder := LZ4F_decompress_safe;
- // ensure enough place for tmpOut
- if dctxPtr.frameInfo.blockMode = blockLinked then
- begin
- if (dctxPtr.dict = dctxPtr.tmpOutBuffer) then
- begin
- if (dctxPtr.dictSize > 131072) then
- begin
- move((dctxPtr.dict + dctxPtr.dictSize - 65536)^, dctxPtr.dict^, 65536);
- dctxPtr.dictSize := 65536;
- end;
- dctxPtr.tmpOut := dctxPtr.dict + dctxPtr.dictSize;
- end
- else // dict not within tmp
- begin
- reservedDictSpace := dctxPtr.dictSize;
- if (reservedDictSpace > 65536) then
- reservedDictSpace := 65536;
- dctxPtr.tmpOut := dctxPtr.tmpOutBuffer + reservedDictSpace;
- end;
- end;
- // Decode
- decodedSize := decoder(pAnsiChar(selectedIn), pAnsiChar(dctxPtr.tmpOut), integer(dctxPtr.tmpInTarget),
- integer(dctxPtr.maxBlockSize), pAnsiChar(dctxPtr.dict), integer(dctxPtr.dictSize));
- if decodedSize < 0 then
- exit(size_t(-integer(ERROR_decompressionFailed))); // decompression failed
- if (dctxPtr.frameInfo.contentChecksumFlag <> noContentChecksum) then
- XXH32_update(@(dctxPtr.xxh), dctxPtr.tmpOut, decodedSize);
- dctxPtr.tmpOutSize := decodedSize;
- dctxPtr.tmpOutStart := 0;
- dctxPtr.dStage := cardinal(dstage_flushOut);
- end;
- cardinal(dstage_flushOut): // flush decoded data from tmpOut to dstBuffer
- begin
- sizeToCopy := dctxPtr.tmpOutSize - dctxPtr.tmpOutStart;
- if (sizeToCopy > size_t(dstEnd - dstPtr)) then
- sizeToCopy := dstEnd - dstPtr;
- move((dctxPtr.tmpOut + dctxPtr.tmpOutStart)^, dstPtr^, sizeToCopy);
- // dictionary management
- if (dctxPtr.frameInfo.blockMode = blockLinked) then
- LZ4F_updateDict(dctxPtr, dstPtr, sizeToCopy, dstStart, 1);
-
- inc(dctxPtr.tmpOutStart, sizeToCopy);
- inc(dstPtr, sizeToCopy);
- // end of flush ?
- if (dctxPtr.tmpOutStart = dctxPtr.tmpOutSize) then
- dctxPtr.dStage := cardinal(dstage_getCBlockSize)
- else
- begin
- nextSrcSizeHint := 4;
- doAnotherStage := 0; // still some data to flush
- end;
- end;
- cardinal(dstage_getSuffix):
- begin
- suffixSize := cardinal(dctxPtr.frameInfo.contentChecksumFlag) * 4;
- if (suffixSize = 0) then // frame completed
- begin
- nextSrcSizeHint := 0;
- dctxPtr.dStage := cardinal(dstage_getHeader);
- doAnotherStage := 0;
- end
- else
- begin
- if ((srcEnd - srcPtr) >= 4) then // CRC present
- begin
- selectedIn := srcPtr;
- inc(srcPtr, 4);
- dctxPtr.dStage := cardinal(dstage_checkSuffix);
- end
- else
- begin
- dctxPtr.tmpInSize := 0;
- dctxPtr.dStage := cardinal(dstage_storeSuffix);
- end;
- end;
- end;
- cardinal(dstage_storeSuffix):
- begin
- sizeToCopy := 4 - dctxPtr.tmpInSize;
- if (sizeToCopy > size_t(srcEnd - srcPtr)) then
- sizeToCopy := srcEnd - srcPtr;
- move(srcPtr^, (dctxPtr.tmpIn + dctxPtr.tmpInSize)^, sizeToCopy);
- inc(srcPtr, sizeToCopy);
- inc(dctxPtr.tmpInSize, sizeToCopy);
- if (dctxPtr.tmpInSize < 4) then // not enough input to read complete suffix
- begin
- nextSrcSizeHint := 4 - dctxPtr.tmpInSize;
- doAnotherStage := 0;
- end
- else
- begin
- selectedIn := dctxPtr.tmpIn;
- dctxPtr.dStage := cardinal(dstage_checkSuffix);
- end;
- end;
- cardinal(dstage_checkSuffix):
- begin
- readCRC := LZ4F_readLE32(selectedIn);
- resultCRC := XXH32_digest(@(dctxPtr.xxh));
- if (readCRC <> resultCRC) then
- exit(size_t(-integer(ERROR_checksum_invalid)));
- nextSrcSizeHint := 0;
- dctxPtr.dStage := cardinal(dstage_getHeader);
- doAnotherStage := 0;
- end;
- end;
- end;
- // preserve dictionary within tmp if necessary
- if (dctxPtr.frameInfo.blockMode = blockLinked)
- and (dctxPtr.dict <> dctxPtr.tmpOutBuffer)
- and (decompressOptionsPtr.stableDst = 0)
- and (cardinal(dctxPtr.dStage - 1) < cardinal(cardinal(dstage_getSuffix) - 1)) then
- begin
- if dctxPtr.dStage = cardinal(dstage_flushOut) then
- begin
- preserveSize := dctxPtr.tmpOut - dctxPtr.tmpOutBuffer;
- copySize := 65536 - dctxPtr.tmpOutSize;
- oldDictEnd := dctxPtr.dict + dctxPtr.dictSize - dctxPtr.tmpOutStart;
- if dctxPtr.tmpOutSize > 65536 then
- copySize := 0;
- if copySize > preserveSize then
- copySize := preserveSize;
- move((oldDictEnd - copySize)^, (dctxPtr.tmpOutBuffer + preserveSize - copySize)^, copySize);
-
- dctxPtr.dict := dctxPtr.tmpOutBuffer;
- dctxPtr.dictSize := preserveSize + dctxPtr.tmpOutStart;
- end
- else
- begin
- newDictSize := dctxPtr.dictSize;
- oldDictEnd := dctxPtr.dict + dctxPtr.dictSize;
- if newDictSize > 65536 then
- newDictSize := 65536;
-
- move((oldDictEnd - newDictSize)^, (dctxPtr.tmpOutBuffer)^, newDictSize);
-
- dctxPtr.dict := dctxPtr.tmpOutBuffer;
- dctxPtr.dictSize := newDictSize;
- dctxPtr.tmpOut := dctxPtr.tmpOutBuffer + newDictSize;
- end;
- end;
- if (srcPtr < srcEnd) then // function must be called again with following source data
- dctxPtr.srcExpect := srcPtr
- else
- dctxPtr.srcExpect := Nil;
- srcSizePtr^ := (srcPtr - srcStart);
- dstSizePtr^ := (dstPtr - dstStart);
- result := nextSrcSizeHint;
-end;
-
-function LZ4F_createCompressionContext(var LZ4F_compressionContextPtr: PLZ4F_compressionContext_t; version: cardinal): LZ4F_errorCode_t;
-var
- cctxPtr: PLZ4F_cctx_internal_t;
-begin
- cctxPtr := allocmem(sizeof(LZ4F_cctx_internal_t));
- if cctxPtr = Nil then
- exit(LZ4F_errorCode_t(-integer(ERROR_allocation_failed)));
-
- cctxPtr.version := version;
- cctxPtr.cStage := 0; // Next stage : write header
-
- LZ4F_compressionContextPtr := PLZ4F_compressionContext_t(cctxPtr);
- result := cardinal(OK_NoError);
-end;
-
-function LZ4F_freeCompressionContext(LZ4F_compressionContext: PLZ4F_compressionContext_t): LZ4F_errorCode_t;
-var
- cctxPtr: PLZ4F_cctx_internal_t;
-begin
- cctxPtr := PLZ4F_cctx_internal_t(LZ4F_compressionContext);
- freemem(cctxPtr.lz4CtxPtr);
- freemem(cctxPtr.tmpBuff);
- freemem(LZ4F_compressionContext);
- result := cardinal(OK_NoError);
-end;
-
-function LZ4F_getFrameInfo(decompressionContext: PLZ4F_decompressionContext_t; frameInfoPtr: PLZ4F_frameInfo_t; const srcBuffer: pointer;
- srcSizePtr: psize_t): LZ4F_errorCode_t;
-var
- dctxPtr: PLZ4F_dctx_internal_t;
- errorCode: LZ4F_errorCode_t;
-begin
- dctxPtr := PLZ4F_dctx_internal_t(decompressionContext);
- if dctxPtr.dStage = cardinal(dstage_getHeader) then
- begin
- errorCode := LZ4F_decodeHeader(dctxPtr, srcBuffer, srcSizePtr^);
- if LZ4F_isError(errorCode) then
- exit(errorCode);
- srcSizePtr^ := errorCode;
- frameInfoPtr^ := dctxPtr.frameInfo;
- dctxPtr.srcExpect := Nil;
- dctxPtr.dStage := cardinal(dstage_getCBlockSize);
- exit(4);
- end;
- srcSizePtr^ := 0;
- frameInfoPtr^ := dctxPtr.frameInfo;
- result := 0;
-end;
-
-function LZ4F_freeDecompressionContext(LZ4F_decompressionContext: PLZ4F_decompressionContext_t): LZ4F_errorCode_t;
-var
- dctxPtr: PLZ4F_dctx_internal_t;
-begin
- dctxPtr := PLZ4F_dctx_internal_t(LZ4F_decompressionContext);
- freemem(dctxPtr.tmpIn);
- freemem(dctxPtr.tmpOutBuffer);
- freemem(dctxPtr);
- result := cardinal(OK_NoError);
-end;
-
-end.
diff --git a/lib/xedit/lz4/lz4frame_static.pas b/lib/xedit/lz4/lz4frame_static.pas
deleted file mode 100644
index 1259560..0000000
--- a/lib/xedit/lz4/lz4frame_static.pas
+++ /dev/null
@@ -1,81 +0,0 @@
-(*
- LZ4Delphi
- Copyright (C) 2015, Jose Pascoa (atelierwebgm@gmail.com)
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- *************************************************************************
- LZ4 - Fast LZ compression algorithm
- xxHash - Fast Hash algorithm
- LZ4 source repository : http://code.google.com/p/lz4/
- xxHash source repository : http://code.google.com/p/xxhash/
- Copyright (c) 2011-2014, Yann Collet
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************
-*)
-
-unit lz4frame_static;
-{$POINTERMATH ON}
-
-interface
-
-uses Windows;
-
-type
- LZ4F_LIST_ERRORS = (
- OK_NoError = 0,
- ERROR_GENERIC,
- ERROR_maxBlockSize_invalid,
- ERROR_blockMode_invalid,
- ERROR_contentChecksumFlag_invalid,
- ERROR_compressionLevel_invalid,
- ERROR_allocation_failed,
- ERROR_srcSize_tooLarge,
- ERROR_dstMaxSize_tooSmall,
- ERROR_decompressionFailed,
- ERROR_checksum_invalid,
- ERROR_maxCode);
-
-const
- LZ4F_errorStrings : array[0..11] of AnsiString =
- (
- 'OK_NoError',
- 'ERROR_GENERIC',
- 'ERROR_maxBlockSize_invalid',
- 'ERROR_blockMode_invalid',
- 'ERROR_contentChecksumFlag_invalid',
- 'ERROR_compressionLevel_invalid',
- 'ERROR_allocation_failed',
- 'ERROR_srcSize_tooLarge',
- 'ERROR_dstMaxSize_tooSmall',
- 'ERROR_decompressionFailed',
- 'ERROR_checksum_invalid',
- 'ERROR_maxCode'
- );
-
-implementation
-
-end.
diff --git a/lib/xedit/lz4/lz4io.pas b/lib/xedit/lz4/lz4io.pas
deleted file mode 100644
index fcbd8f3..0000000
--- a/lib/xedit/lz4/lz4io.pas
+++ /dev/null
@@ -1,488 +0,0 @@
-(*
- LZ4Delphi
- Copyright (C) 2015, Jose Pascoa (atelierwebgm@gmail.com)
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- *************************************************************************
- LZ4 - Fast LZ compression algorithm
- xxHash - Fast Hash algorithm
- LZ4 source repository : http://code.google.com/p/lz4/
- xxHash source repository : http://code.google.com/p/xxhash/
- Copyright (c) 2011-2014, Yann Collet
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************
-*)
-
-
-unit lz4io;
-{$POINTERMATH ON}
-
-interface
-
-uses Windows, Classes, SysUtils, Math, lz4frame_static, xxHash, lz4, lz4common, lz4frame, lz4HC;
-
-
-const
- LZ4_BLOCKSIZEID_DEFAULT = 7;
- ENDOFSTREAM = uint64(-1);
- LZ4S_MAGICNUMBER = $184D2204;
- LZ4S_SKIPPABLE0 = $184D2A50;
- LZ4S_SKIPPABLEMASK = $FFFFFFF0;
- LEGACY_MAGICNUMBER = $184C2102;
- MAGICNUMBER_SIZE = 4;
- LEGACY_BLOCKSIZE = 8388608;
- MIN_STREAM_BUFSIZE = 196608;
-
-var
- lz4_overwrite_file: boolean = true;
- globalblockSizeID: integer = LZ4_BLOCKSIZEID_DEFAULT;
- blockIndependence: integer = 1;
- streamChecksum: integer = 1;
-
-function LZ4IO_compressFilename_Legacy(input_filename: string; output_filename: string; compressionLevel: integer): integer;
-function LZ4IO_compressFilename(input_filename: string; output_filename: string; compressionLevel: integer): integer;
-function LZ4IO_decompressFilename(input_filename: string; output_filename: string): integer;
-procedure lz4DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
- const OutBuf: Pointer; BufSize: Integer);
-
-implementation
-
-const
- minBlockSizeID: integer = 4;
- maxBlockSizeID: integer = 7;
-
-function reportError(err: string): integer;
-begin
- //LZ4Client.Memo.Lines.Add(err);
- result := 0;
-end;
-
-procedure LZ4IO_writeLE32(p: pointer; value32: cardinal);
-var
- dstPtr: pByte;
-begin
- dstPtr := p;
- dstPtr[0] := byte(value32);
- dstPtr[1] := byte(value32 shr 8);
- dstPtr[2] := byte(value32 shr 16);
- dstPtr[3] := byte(value32 shr 24);
-end;
-
-function LZ4IO_compressFilename_Legacy(input_filename: string; output_filename: string; compressionLevel: integer): integer;
-type
- TCompressionFunction =
- function(c1: pAnsiChar; c2: pAnsiChar; c3: integer): integer;
-var
- compressionFunction: TCompressionFunction;
- filesize: uint64;
- compressedfilesize: uint64;
- in_buff: pAnsiChar;
- out_buff: pAnsiChar;
- fileIn: TFileSTream;
- fileOut: TFileSTream;
- sizeCheck: size_t;
- outSize, inSize: cardinal;
-begin
- filesize := 0;
- compressedfilesize := MAGICNUMBER_SIZE;
-
- if (compressionLevel < 3) then
- compressionFunction := LZ4_compress
- else
- compressionFunction := LZ4_compressHC;
- fileIn := TFileSTream.Create(input_filename, fmOpenRead);
- fileOut := TFileSTream.Create(output_filename, fmCreate);
-
- in_buff := allocmem(LEGACY_BLOCKSIZE);
- out_buff := allocmem(LZ4_compressBound(LEGACY_BLOCKSIZE));
- try
- if (in_buff = nil) or (out_buff = nil) then
- exit(reportError('Allocation error : not enough memory'));
- LZ4IO_writeLE32(out_buff, LEGACY_MAGICNUMBER);
- sizeCheck := fileOut.Write(out_buff^, MAGICNUMBER_SIZE);
- if sizeCheck <> MAGICNUMBER_SIZE then
- exit(reportError('Write error : cannot write header'));
- while true do
- begin
- inSize := fileIn.Read(in_buff^, LEGACY_BLOCKSIZE);
- if inSize <= 0 then
- break;
- inc(filesize, inSize);
- outSize := compressionFunction(in_buff, out_buff + 4, inSize);
- inc(compressedfilesize, outSize + 4);
- LZ4IO_writeLE32(out_buff, outSize);
- sizeCheck := fileOut.Write(out_buff^, outSize + 4);
- if sizeCheck <> size_t(outSize + 4) then
- exit(reportError('Write error : cannot write compressed block'));
- end;
- finally
- if in_buff <> nil then
- freemem(in_buff);
- if out_buff <> nil then
- freemem(out_buff);
- fileIn.Free;
- fileOut.Free;
- result := 0;
- end;
-end;
-
-function LZ4IO_setBlockSizeID(bsid: integer): integer;
-const
- blockSizeTable: array [0 .. 3] of integer = (65536, 262144, 1048576, 4194304);
-begin
- if (bsid < minBlockSizeID) or (bsid > maxBlockSizeID) then
- exit(-1);
- globalblockSizeID := bsid;
- result := blockSizeTable[globalblockSizeID - minBlockSizeID];
-end;
-
-function LZ4IO_compressFilename(input_filename: string; output_filename: string; compressionLevel: integer): integer;
-var
- filesize: uint64;
- errorCode: LZ4F_errorCode_t;
- ctx: PLZ4F_compressionContext_t;
- blockSize: integer;
- fileIn: TFileSTream;
- fileOut: TFileSTream;
- prefs: LZ4F_preferences_t;
- in_buff: pAnsiChar;
- out_buff: pAnsiChar;
- outBuffSize: size_t;
- headerSize: size_t;
- sizeCheck: size_t;
- readSize: size_t;
- outSize: size_t;
-begin
- result := 0;
- filesize := 0;
- errorCode := LZ4F_createCompressionContext(ctx, LZ4F_VERSION);
- if (LZ4F_isError(errorCode)) then
- exit(reportError(format('Allocation error : can''t create LZ4F context: %s', [LZ4F_getErrorName(errorCode)])));
- fileIn := TFileSTream.Create(input_filename, fmOpenRead);
- fileOut := TFileSTream.Create(output_filename, fmCreate);
- blockSize := 1 shl (8 + 2 * globalblockSizeID);
- fillchar(prefs, sizeof(LZ4F_preferences_t), 0);
-
- prefs.autoFlush := 1;
- prefs.compressionLevel := compressionLevel;
- prefs.frameInfo.blockMode := blockMode_t(blockIndependence);
- prefs.frameInfo.blockSizeID := blockSizeID_t(globalblockSizeID);
- prefs.frameInfo.contentChecksumFlag := contentChecksum_t(streamChecksum);
-
- // Allocate Memory
- in_buff := allocmem(blockSize);
- outBuffSize := LZ4F_compressBound(blockSize, @prefs);
- out_buff := allocmem(outBuffSize);
- try
- if (in_buff = nil) or (out_buff = nil) then
- exit(reportError('Allocation error : not enough memory'));
- // Write Archive Header
- headerSize := LZ4F_compressBegin(ctx, out_buff, outBuffSize, @prefs);
- if (LZ4F_isError(headerSize)) then
- exit(reportError(format('File header generation failed: %s', [LZ4F_getErrorName(errorCode)])));
- sizeCheck := fileOut.Write(out_buff^, headerSize);
- if sizeCheck <> headerSize then
- exit(reportError('Write error : cannot write header'));
-
- readSize := fileIn.Read(in_buff^, blockSize);
- inc(filesize, readSize);
- while readSize > 0 do
- begin
- outSize := LZ4F_compressUpdate(ctx, out_buff, outBuffSize, in_buff, readSize, Nil);
- if (LZ4F_isError(outSize)) then
- exit(reportError(format('Compression failed: %s', [LZ4F_getErrorName(errorCode)])));
- sizeCheck := fileOut.Write(out_buff^, outSize);
- if sizeCheck <> outSize then
- exit(reportError('Write error : cannot write compressed block'));
- readSize := fileIn.Read(in_buff^, blockSize);
- inc(filesize, readSize);
- end;
- // End of Stream mark
- headerSize := LZ4F_compressEnd(ctx, out_buff, outBuffSize, Nil);
- if LZ4F_isError(headerSize) then
- exit(reportError(format('End of file generation failed: %s', [LZ4F_getErrorName(errorCode)])));
- sizeCheck := fileOut.Write(out_buff^, headerSize);
- if sizeCheck <> headerSize then
- exit(reportError('Write error : cannot write end of stream'));
- errorCode := LZ4F_freeCompressionContext(ctx);
- if LZ4F_isError(errorCode) then
- exit(reportError(format('Error : can''t free LZ4F context resource: %s', [LZ4F_getErrorName(errorCode)])));
- finally
- if in_buff <> nil then
- freemem(in_buff);
- if out_buff <> nil then
- freemem(out_buff);
- fileIn.Free;;
- fileOut.Free;
- end;
-end;
-
-function LZ4IO_readLE32(s: pointer): cardinal;
-var
- srcPtr: pByte;
- value32: cardinal;
-begin
- srcPtr := s;
- value32 := srcPtr[0];
- inc(value32, (srcPtr[1] shl 8));
- inc(value32, (srcPtr[2] shl 16));
- inc(value32, (srcPtr[3] shl 24));
- result := value32;
-end;
-
-function LZ4S_isSkippableMagicNumber(magic: cardinal): boolean;
-begin
- result := (magic and LZ4S_SKIPPABLEMASK) = LZ4S_SKIPPABLE0;
-end;
-
-function decodeLZ4S(finput, foutput: TSTream): uint64;
-const
- HEADERMAX = 20;
-var
- filesize: uint64;
- inBuff: pAnsiChar;
- outBuff: pAnsiChar;
- headerBuff: array [0 .. HEADERMAX - 1] of ansiChar;
- sizeCheck, nextToRead, outBuffSize, inBuffSize: size_t;
- ctx: PLZ4F_decompressionContext_t;
- errorCode: LZ4F_errorCode_t;
- frameInfo: LZ4F_frameInfo_t;
- decodedBytes: size_t;
-begin
- filesize := 0;
- errorCode := LZ4F_createDecompressionContext(ctx, LZ4F_VERSION);
- if LZ4F_isError(errorCode) then
- exit(reportError(format('Allocation error : can''t create context: %s', [LZ4F_getErrorName(errorCode)])));
- LZ4IO_writeLE32(@headerBuff, LZ4S_MAGICNUMBER);
- outBuffSize := 0;
- inBuffSize := 0;
- sizeCheck := MAGICNUMBER_SIZE;
- nextToRead := LZ4F_decompress(ctx, Nil, @outBuffSize, @headerBuff, @sizeCheck, Nil);
- if LZ4F_isError(nextToRead) then
- exit(reportError(format('Decompression error: %s', [LZ4F_getErrorName(errorCode)])));
- if nextToRead > HEADERMAX then
- exit(reportError(format('Header too large (%d>%d)', [integer(nextToRead), HEADERMAX])));
- sizeCheck := finput.Read(headerBuff, nextToRead);
- if sizeCheck <> nextToRead then
- exit(reportError('Read error'));
- nextToRead := LZ4F_decompress(ctx, Nil, @outBuffSize, @headerBuff, @sizeCheck, Nil);
- errorCode := LZ4F_getFrameInfo(ctx, @frameInfo, Nil, @inBuffSize);
- if LZ4F_isError(errorCode) then
- exit(reportError(format('can''t decode frame header: %s', [LZ4F_getErrorName(errorCode)])));
- outBuffSize := LZ4IO_setBlockSizeID(integer(frameInfo.blockSizeID));
- inBuffSize := outBuffSize + 4;
- inBuff := allocmem(inBuffSize);
- outBuff := allocmem(outBuffSize);
- try
- if (inBuff = nil) or (outBuff = nil) then
- exit(reportError('Allocation error : not enough memory'));
- while (nextToRead <> 0) do
- begin
- decodedBytes := outBuffSize;
- sizeCheck := finput.Read(inBuff^, nextToRead);
- if sizeCheck <> nextToRead then
- exit(reportError('Read error'));
- errorCode := LZ4F_decompress(ctx, outBuff, @decodedBytes, inBuff, @sizeCheck, Nil);
- if LZ4F_isError(errorCode) then
- exit(reportError(format('Decompression error: %s', [LZ4F_getErrorName(errorCode)])));
- if sizeCheck <> nextToRead then
- exit(reportError('Synchronization error'));
- nextToRead := errorCode;
- inc(filesize, decodedBytes);
- sizeCheck := foutput.Write(outBuff^, decodedBytes);
- if sizeCheck <> decodedBytes then
- exit(reportError('Write error : cannot write decoded block'));
- end;
- errorCode := LZ4F_freeDecompressionContext(ctx);
- if LZ4F_isError(errorCode) then
- exit(reportError(format('Error : can''t free LZ4F context resource: %s', [LZ4F_getErrorName(errorCode)])));
- finally
- if inBuff <> nil then
- freemem(inBuff);
- if outBuff <> nil then
- freemem(outBuff);
- result := filesize;
- end;
-end;
-
-function decodeLegacyStream(finput, foutput: TSTream): uint64;
-var
- filesize: uint64;
- in_buff: pAnsiChar;
- out_buff: pAnsiChar;
- decodeSize: integer;
- sizeCheck: size_t;
- blockSize: cardinal;
-begin
- filesize := 0;
- in_buff := allocmem(LZ4_compressBound(LEGACY_BLOCKSIZE));
- out_buff := allocmem(LEGACY_BLOCKSIZE);
- try
- if (in_buff = nil) or (out_buff = nil) then
- exit(reportError('Allocation error : not enough memory'));
- while true do
- begin
- sizeCheck := finput.Read(in_buff^, 4);
- if sizeCheck = 0 then
- break;
- blockSize := LZ4IO_readLE32(in_buff);
- if blockSize > LZ4_compressBound(LEGACY_BLOCKSIZE) then
- begin
- finput.Seek(-4, soFromCurrent);
- break;
- end;
- sizeCheck := finput.Read(in_buff^, blockSize);
- if sizeCheck <> blockSize then
- exit(reportError('Error reading input file'));
- decodeSize := LZ4_decompress_safe(in_buff, out_buff, blockSize, LEGACY_BLOCKSIZE);
- if (decodeSize < 0) then
- exit(reportError('Decoding Failed ! Corrupted input detected'));
- inc(filesize, decodeSize);
- sizeCheck := foutput.Write(out_buff^, decodeSize);
- if sizeCheck <> size_t(decodeSize) then
- exit(reportError('Write error : cannot write decoded block into output'));
- end;
- finally
- if in_buff <> nil then
- freemem(in_buff);
- if out_buff <> nil then
- freemem(out_buff);
- result := filesize;
- end;
-end;
-
-function selectDecoder(finput, foutput: TSTream): uint64;
-var
- nbReadBytes: size_t;
- U32Store: array [0 .. MAGICNUMBER_SIZE - 1] of byte;
- magicNumber, Size: cardinal;
- newPos: uint64;
-begin
- nbReadBytes := finput.Read(U32Store, MAGICNUMBER_SIZE);
- if nbReadBytes = 0 then
- exit(ENDOFSTREAM);
- if nbReadBytes <> MAGICNUMBER_SIZE then
- exit(reportError('Unrecognized header : Magic Number unreadable'));
- magicNumber := LZ4IO_readLE32(@U32Store);
- if LZ4S_isSkippableMagicNumber(magicNumber) then
- magicNumber := LZ4S_SKIPPABLE0;
-
- case magicNumber of
- LZ4S_MAGICNUMBER: result := decodeLZ4S(finput, foutput);
- LEGACY_MAGICNUMBER:
- begin
- result := decodeLegacyStream(finput, foutput);
- end;
- LZ4S_SKIPPABLE0:
- begin
- nbReadBytes := finput.Read(U32Store, 4);
- if (nbReadBytes <> 4) then
- exit(reportError('Stream error : skippable size unreadable'));
- Size := LZ4IO_readLE32(@U32Store);
- newPos := finput.Seek(Size, soFromCurrent);
- if newPos <> finput.Position then
- exit(reportError('Stream error : cannot skip skippable area'));
- result := selectDecoder(finput, foutput);
- end;
- else
- begin
- if finput.Position = MAGICNUMBER_SIZE then
- exit(reportError('Unrecognized header : file cannot be decoded'));
- reportError('Stream followed by unrecognized data');
- result := ENDOFSTREAM;
- end;
- end;
-end;
-
-function LZ4IO_decompressFilename(input_filename: string; output_filename: string): integer;
-var
- fileIn: TFileSTream;
- fileOut: TFileSTream;
- decodedSize: int64;
- filesize: int64;
-begin
- result := 0;
- filesize := 0;
- fileIn := TFileSTream.Create(input_filename, fmOpenRead);
- fileOut := TFileSTream.Create(output_filename, fmCreate);
- repeat
- decodedSize := selectDecoder(fileIn, fileOut);
- if decodedSize <> ENDOFSTREAM then
- inc(filesize, decodedSize);
- until decodedSize = ENDOFSTREAM;
- fileIn.Free;;
- fileOut.Free;
-end;
-
-type
- TPreallocatedMemoryStream = class(TCustomMemoryStream)
- public
- constructor Create(Ptr: Pointer; Size: Int64);
- function Write(const Buffer; Count: Longint): Longint; override;
- end;
-
-constructor TPreallocatedMemoryStream.Create(Ptr: Pointer; Size: Int64);
-begin
- inherited Create;
- SetPointer(Ptr, Size);
-end;
-
-function TPreallocatedMemoryStream.Write(const Buffer; Count: Integer): Longint;
-begin
- Result := Min(Count, Size-Position);
- System.Move(Buffer, Pointer(PByte(Memory) + Position)^, Result);
- Seek(Result, soCurrent);
-end;
-
-procedure lz4DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
- const OutBuf: Pointer; BufSize: Integer);
-var
- stin, stout: TPreallocatedMemoryStream;
- decodedSize: int64;
- decompressedSize: int64;
-begin
- stin := TPreallocatedMemoryStream.Create(InBuf, InBytes);
- stout := TPreallocatedMemoryStream.Create(OutBuf, BufSize);
- try
- decompressedSize := 0;
- repeat
- decodedSize := selectDecoder(stin, stout);
- if decodedSize <> ENDOFSTREAM then
- Inc(decompressedSize, decodedSize);
- until decodedSize = ENDOFSTREAM;
-
- if decompressedSize <> BufSize then
- Exception.Create('lz4 decompression size mismatch');
-
- //Move(stout.Memory^, OutBuf^, BufSize);
- finally
- stin.Free;
- stout.Free;
- end;
-end;
-
-end.
diff --git a/lib/xedit/lz4/xxHash.pas b/lib/xedit/lz4/xxHash.pas
deleted file mode 100644
index 2f17485..0000000
--- a/lib/xedit/lz4/xxHash.pas
+++ /dev/null
@@ -1,637 +0,0 @@
-(*
- LZ4Delphi
- Copyright (C) 2015, Jose Pascoa (atelierwebgm@gmail.com)
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
- *************************************************************************
- LZ4 - Fast LZ compression algorithm
- xxHash - Fast Hash algorithm
- LZ4 source repository : http://code.google.com/p/lz4/
- xxHash source repository : http://code.google.com/p/xxhash/
- Copyright (c) 2011-2014, Yann Collet
- BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
-
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************
-*)
-
-unit xxHash;
-{$POINTERMATH ON}
-
-interface
-
-uses Windows, lz4common;
-
-const
- PRIME32_1: cardinal = 2654435761;
- PRIME32_2: cardinal = 2246822519;
- PRIME32_3: cardinal = 3266489917;
- PRIME32_4: cardinal = 668265263;
- PRIME32_5: cardinal = 374761393;
- PRIME64_1: uint64 = 11400714785074694791;
- PRIME64_2: uint64 = 14029467366897019727;
- PRIME64_3: uint64 = 1609587929392839161;
- PRIME64_4: uint64 = 9650029242287828579;
- PRIME64_5: uint64 = 2870177450012600261;
-
-type
- XXH_errorcode = (XXH_OK = 0, XXH_ERROR);
- XXH_endianess = (XXH_bigEndian = 0, XXH_littleEndian = 1);
- XXH_alignment = (XXH_aligned, XXH_unaligned);
-
- PXXH32_state_t = ^XXH32_state_t;
-
- XXH32_state_t = record
- ll: array [0 .. 5] of int64;
- end;
-
- PXXH_istate32_t = ^XXH_istate32_t;
-
- XXH_istate32_t = record
- total_len: uint64;
- seed: cardinal;
- v1: cardinal;
- v2: cardinal;
- v3: cardinal;
- v4: cardinal;
- mem32: array [0 .. 3] of cardinal;
- memsize: cardinal;
- end;
-
- PXXH64_state_t = ^XXH64_state_t;
-
- XXH64_state_t = record
- ll: array [0 .. 10] of int64;
- end;
-
- PXXH_istate64_t = ^XXH_istate64_t;
-
- XXH_istate64_t = record
- total_len: uint64;
- seed: uint64;
- v1: uint64;
- v2: uint64;
- v3: uint64;
- v4: uint64;
- mem64: array [0 .. 3] of uint64;
- memsize: cardinal;
- end;
-
-function XXH32(input: pointer; len: size_t; seed: cardinal): cardinal;
-
-function XXH32_reset(statePtr: PXXH32_state_t; seed: cardinal): XXH_errorcode;
-function XXH32_update(statePtr: PXXH32_state_t; Ainput: pointer; ALength: size_t): XXH_errorcode;
-function XXH32_digest(statePtr: PXXH32_state_t): cardinal;
-function XXH32_createState: PXXH32_state_t;
-procedure XXH32_freeState(statePtr: PXXH32_state_t);
-// Obsolet in recent release
-function XXH32_init(seed: cardinal): PXXH32_state_t;
-
-function XXH64_reset(statePtr: PXXH64_state_t; seed: uint64): XXH_errorcode;
-function XXH64_update(statePtr: PXXH64_state_t; Ainput: pointer; ALength: size_t): XXH_errorcode;
-function XXH64_digest(statePtr: PXXH64_state_t): uint64;
-function XXH64_createState: PXXH64_state_t;
-procedure XXH64_freeState(statePtr: PXXH64_state_t);
-// Obsolet in recent release
-function XXH64_init(seed: uint64): PXXH64_state_t;
-
-implementation
-
-type
- PU32_S = ^U32_S;
-
- U32_S = packed record
- v: cardinal;
- end;
-
- PU64_S = ^U64_S;
-
- U64_S = packed record
- v: uint64;
- end;
-
-function XXH_rotl32(x, r: cardinal): cardinal;
-asm
- mov eax, x
- mov ecx, r
- rol eax, cl
-end;
-
-(* Alternative
-function XXH_rotl32(x, r: cardinal): cardinal; inline;
-var
- temp: cardinal;
-begin
- temp := x;
- result := (x shl r) or (temp shr (32 - r));
-end;
-*)
-{$IFDEF CPUX64}
-
-function XXH_rotl64(x: uint64; r: cardinal): uint64;
-asm
- mov rax, x
- mov ecx, r
- rol rax, cl
-end;
-{$ELSE}
-
-function XXH_rotl64(x: uint64; r: cardinal): uint64; inline
-var
- temp: uint64;
-begin
- temp := x;
- result := (x shl r) or (temp shr (64 - r));
-end;
-
-{$ENDIF}
-
-function A32(x: pointer): cardinal; inline;
-begin
- result := PU32_S(x).v;
-end;
-
-function A64(x: pointer): uint64; inline;
-begin
- result := PU64_S(x).v;
-end;
-
-function XXH_readLE32_align(ptr: pointer; endian: XXH_endianess; align: XXH_alignment): cardinal; inline;
-begin
- if align = XXH_unaligned then
- result := A32(ptr)
- else
- result := pcardinal(ptr)^;
-end;
-
-function XXH_readLE32(ptr: pointer): cardinal; inline;
-begin
- result := XXH_readLE32_align(ptr, XXH_littleEndian, XXH_unaligned);
-end;
-
-function XXH_readLE64_align(ptr: pointer; endian: XXH_endianess; align: XXH_alignment): uint64; inline;
-begin
- if align = XXH_unaligned then
- result := A64(ptr)
- else
- result := puint64(ptr)^;
-end;
-
-function XXH_readLE64(ptr: pointer): uint64; inline;
-begin
- result := XXH_readLE64_align(ptr, XXH_littleEndian, XXH_unaligned);
-end;
-
-function XXH32_reset(statePtr: PXXH32_state_t; seed: cardinal): XXH_errorcode;
-var
- state: PXXH_istate32_t;
-begin
- state := PXXH_istate32_t(statePtr);
- state.seed := seed;
- state.v1 := seed + PRIME32_1 + PRIME32_2;
- state.v2 := seed + PRIME32_2;
- state.v3 := seed + 0;
- state.v4 := seed - PRIME32_1;
- state.total_len := 0;
- state.memsize := 0;
- result := XXH_OK;
-end;
-
-function XXH64_reset(statePtr: PXXH64_state_t; seed: uint64): XXH_errorcode;
-var
- state: PXXH_istate64_t;
-begin
- state := PXXH_istate64_t(statePtr);
- state.seed := seed;
- state.v1 := seed + PRIME64_1 + PRIME64_2;
- state.v2 := seed + PRIME64_2;
- state.v3 := seed + 0;
- state.v4 := seed - PRIME64_1;
- state.total_len := 0;
- state.memsize := 0;
- result := XXH_OK;
-end;
-
-function XXH32_update(statePtr: PXXH32_state_t; Ainput: pointer; ALength: size_t): XXH_errorcode;
-var
- state: PXXH_istate32_t;
- p: pByte;
- bEnd: pByte;
- p32: pcardinal;
- limit: pByte;
- v1, v2, v3, v4: cardinal;
-begin
- state := PXXH_istate32_t(statePtr);
- p := Ainput;
- bEnd := p + ALength;
- inc(state.total_len, ALength);
-
- if (state.memsize + ALength < 16) then
- begin
- move(Ainput^, (pByte(@state.mem32) + state.memsize)^, ALength);
- inc(state.memsize, cardinal(ALength));
- exit(XXH_OK);
- end;
- if state.memsize > 0 then
- begin
- move(Ainput^, (pByte(@state.mem32) + state.memsize)^, 16 - state.memsize);
- p32 := @state.mem32;
- inc(state.v1, XXH_readLE32(p32) * PRIME32_2);
- state.v1 := XXH_rotl32(state.v1, 13);
- state.v1 := state.v1 * PRIME32_1;
- inc(p32);
- inc(state.v2, XXH_readLE32(p32) * PRIME32_2);
- state.v2 := XXH_rotl32(state.v2, 13);
- state.v2 := state.v2 * PRIME32_1;
- inc(p32);
- inc(state.v3, XXH_readLE32(p32) * PRIME32_2);
- state.v3 := XXH_rotl32(state.v3, 13);
- state.v3 := state.v3 * PRIME32_1;
- inc(p32);
- inc(state.v4, XXH_readLE32(p32) * PRIME32_2);
- state.v4 := XXH_rotl32(state.v4, 13);
- state.v4 := state.v4 * PRIME32_1;
-// inc(p32);
- inc(p, 16 - state.memsize);
- state.memsize := 0;
- end;
-
- if p <= (bEnd - 16) then
- begin
- limit := bEnd - 16;
- v1 := state.v1;
- v2 := state.v2;
- v3 := state.v3;
- v4 := state.v4;
- repeat
- inc(v1, XXH_readLE32(p) * PRIME32_2);
- v1 := XXH_rotl32(v1, 13);
- v1 := v1 * PRIME32_1;
- inc(p, 4);
- inc(v2, XXH_readLE32(p) * PRIME32_2);
- v2 := XXH_rotl32(v2, 13);
- v2 := v2 * PRIME32_1;
- inc(p, 4);
- inc(v3, XXH_readLE32(p) * PRIME32_2);
- v3 := XXH_rotl32(v3, 13);
- v3 := v3 * PRIME32_1;
- inc(p, 4);
- inc(v4, XXH_readLE32(p) * PRIME32_2);
- v4 := XXH_rotl32(v4, 13);
- v4 := v4 * PRIME32_1;
- inc(p, 4);
- until p > limit;
- state.v1 := v1;
- state.v2 := v2;
- state.v3 := v3;
- state.v4 := v4;
- end;
-
- if p < bEnd then
- begin
- move(p^, state.mem32, bEnd - p);
- state.memsize := integer(bEnd - p);
- end;
- result := XXH_OK;
-end;
-
-function XXH64_update(statePtr: PXXH64_state_t; Ainput: pointer; ALength: size_t): XXH_errorcode;
-var
- state: PXXH_istate64_t;
- p: pByte;
- bEnd: pByte;
- p64: puint64;
- limit: pByte;
- v1, v2, v3, v4: uint64;
-begin
- state := PXXH_istate64_t(statePtr);
- p := Ainput;
- bEnd := p + ALength;
- inc(state.total_len, ALength);
-
- if (state.memsize + ALength < 32) then
- begin
- move(Ainput^, (pByte(@state.mem64) + state.memsize)^, ALength);
- inc(state.memsize, cardinal(ALength));
- exit(XXH_OK);
- end;
-
- if state.memsize > 0 then
- begin
- move(Ainput^, (pByte(@state.mem64) + state.memsize)^, 32 - state.memsize);
- p64 := @state.mem64;
- inc(state.v1, XXH_readLE64(p64) * PRIME64_2);
- state.v1 := XXH_rotl64(state.v1, 31);
- state.v1 := state.v1 * PRIME64_1;
- inc(p64);
- inc(state.v2, XXH_readLE64(p64) * PRIME64_2);
- state.v2 := XXH_rotl64(state.v2, 31);
- state.v2 := state.v2 * PRIME64_1;
- inc(p64);
- inc(state.v3, XXH_readLE64(p64) * PRIME64_2);
- state.v3 := XXH_rotl64(state.v3, 31);
- state.v3 := state.v3 * PRIME64_1;
- inc(p64);
- inc(state.v4, XXH_readLE64(p64) * PRIME64_2);
- state.v4 := XXH_rotl64(state.v4, 31);
- state.v4 := state.v4 * PRIME64_1;
- inc(p, 32 - state.memsize);
- state.memsize := 0;
- end;
-
- if (p + 32) <= bEnd then
- begin
- limit := bEnd - 32;
- v1 := state.v1;
- v2 := state.v2;
- v3 := state.v3;
- v4 := state.v4;
- repeat
- inc(v1, XXH_readLE64(p) * PRIME64_2);
- v1 := XXH_rotl64(v1, 31);
- v1 := v1 * PRIME64_1;
- inc(p, 8);
- inc(v2, XXH_readLE64(p) * PRIME64_2);
- v2 := XXH_rotl64(v2, 31);
- v2 := v2 * PRIME64_1;
- inc(p, 8);
- inc(v3, XXH_readLE64(p) * PRIME64_2);
- v3 := XXH_rotl64(v3, 31);
- v3 := v3 * PRIME64_1;
- inc(p, 8);
- inc(v4, XXH_readLE64(p) * PRIME64_2);
- v4 := XXH_rotl64(v4, 31);
- v4 := v4 * PRIME64_1;
- inc(p, 8);
- until p > limit;
- state.v1 := v1;
- state.v2 := v2;
- state.v3 := v3;
- state.v4 := v4;
- end;
-
- if p < bEnd then
- begin
- move(p^, state.mem64, bEnd - p);
- state.memsize := integer(bEnd - p);
- end;
- result := XXH_OK;
-end;
-
-function XXH32_digest(statePtr: PXXH32_state_t): cardinal;
-var
- state: PXXH_istate32_t;
- p: pByte;
- bEnd: pByte;
- h32: cardinal;
-begin
- state := PXXH_istate32_t(statePtr);
- p := @state.mem32;
- bEnd := pByte(@state.mem32) + state.memsize;
-
- if (state.total_len >= 16) then
- h32 := XXH_rotl32(state.v1, 1) + XXH_rotl32(state.v2, 7) + XXH_rotl32(state.v3, 12) + XXH_rotl32(state.v4, 18)
- else
- h32 := state.seed + PRIME32_5;
-
- inc(h32, state.total_len);
-
- while (p + 4) <= bEnd do
- begin
- inc(h32, XXH_readLE32(p) * PRIME32_3);
- h32 := XXH_rotl32(h32, 17) * PRIME32_4;
- inc(p, 4);
- end;
-
- while p < bEnd do
- begin
- inc(h32, p^ * PRIME32_5);
- h32 := XXH_rotl32(h32, 11) * PRIME32_1;
- inc(p);
- end;
- h32 := h32 xor (h32 shr 15);
- h32 := h32 * PRIME32_2;
- h32 := h32 xor (h32 shr 13);
- h32 := h32 * PRIME32_3;
- h32 := h32 xor (h32 shr 16);
- result := h32;
-end;
-
-function XXH64_digest(statePtr: PXXH64_state_t): uint64;
-var
- state: PXXH_istate64_t;
- p: pByte;
- bEnd: pByte;
- h64: uint64;
- v1, v2, v3, v4: uint64;
- k1: uint64;
-begin
- state := PXXH_istate64_t(statePtr);
- p := @state.mem64;
- bEnd := pByte(@state.mem64) + state.memsize;
-
- if state.total_len >= 32 then
- begin
- v1 := state.v1;
- v2 := state.v2;
- v3 := state.v3;
- v4 := state.v4;
- h64 := XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18);
- v1 := v1 * PRIME64_2;
- v1 := XXH_rotl64(v1, 31);
- v1 := v1 * PRIME64_1;
- h64 := h64 xor v1;
- h64 := h64 * PRIME64_1 + PRIME64_4;
-
- v2 := v2 * PRIME64_2;
- v2 := XXH_rotl64(v2, 31);
- v2 := v2 * PRIME64_1;
- h64 := h64 xor v2;
- h64 := h64 * PRIME64_1 + PRIME64_4;
-
- v3 := v3 * PRIME64_2;
- v3 := XXH_rotl64(v3, 31);
- v3 := v3 * PRIME64_1;
- h64 := h64 xor v3;
- h64 := h64 * PRIME64_1 + PRIME64_4;
-
- v4 := v4 * PRIME64_2;
- v4 := XXH_rotl64(v4, 31);
- v4 := v4 * PRIME64_1;
- h64 := h64 xor v4;
- h64 := h64 * PRIME64_1 + PRIME64_4;
- end
- else
- h64 := state.seed + PRIME64_5;
- inc(h64, state.total_len);
-
- while (p + 8) <= bEnd do
- begin
- k1 := XXH_readLE64(p);
- k1 := k1 * PRIME64_2;
- k1 := XXH_rotl64(k1, 31);
- k1 := k1 * PRIME64_1;
- h64 := h64 xor k1;
- h64 := XXH_rotl64(h64, 27) * PRIME64_1 + PRIME64_4;
- inc(p, 8);
- end;
- if (p + 4) <= bEnd then
- begin
- h64 := h64 xor (uint64(XXH_readLE32(p)) * PRIME64_1);
- h64 := XXH_rotl64(h64, 23) * PRIME64_2 + PRIME64_3;
- inc(p, 4);
- end;
-
- while (p < bEnd) do
- begin
- h64 := h64 xor (p^ * PRIME64_5);
- h64 := XXH_rotl64(h64, 11) * PRIME64_1;
- inc(p);
- end;
-
- h64 := h64 xor (h64 shr 33);
- h64 := h64 * PRIME64_2;
- h64 := h64 xor (h64 shr 29);
- h64 := h64 * PRIME64_3;
- h64 := h64 xor (h64 shr 32);
-
- result := h64;
-end;
-
-function XXH32_createState: PXXH32_state_t;
-begin
- result := allocmem(sizeof(XXH32_state_t));
-end;
-
-function XXH64_createState: PXXH64_state_t;
-begin
- result := allocmem(sizeof(XXH64_state_t));
-end;
-
-procedure XXH32_freeState(statePtr: PXXH32_state_t);
-begin
- freemem(statePtr);
-end;
-
-procedure XXH64_freeState(statePtr: PXXH64_state_t);
-begin
- freemem(statePtr);
-end;
-
-function XXH32_init(seed: cardinal): PXXH32_state_t;
-begin
- result := XXH32_createState;
- XXH32_reset(result, seed);
-end;
-
-function XXH64_init(seed: uint64): PXXH64_state_t;
-begin
- result := XXH64_createState;
- XXH64_reset(result, seed);
-end;
-
-function XXH32_endian_align(input: pointer; len: size_t; seed: cardinal; endian: XXH_endianess; align: XXH_alignment): cardinal;
- function XXH_get32bits(p: pByte): cardinal;
- begin
- result := XXH_readLE32_align(p, endian, align);
- end;
-
-var
- p: pByte;
- bEnd: pByte;
- h32: cardinal;
- limit: pByte;
- v1, v2, v3, v4: cardinal;
-begin
- p := input;
- bEnd := p + len;
- if (len >= 16) then
- begin
- limit := bEnd - 16;
- v1 := seed + PRIME32_1 + PRIME32_2;
- v2 := seed + PRIME32_2;
- v3 := seed + 0;
- v4 := seed - PRIME32_1;
- while true do
- begin
- inc(v1, XXH_get32bits(p) * PRIME32_2);
- v1 := XXH_rotl32(v1, 13);
- v1 := v1 * PRIME32_1;
- inc(p, 4);
-
- inc(v2, XXH_get32bits(p) * PRIME32_2);
- v2 := XXH_rotl32(v2, 13);
- v2 := v2 * PRIME32_1;
- inc(p, 4);
-
- inc(v3, XXH_get32bits(p) * PRIME32_2);
- v3 := XXH_rotl32(v3, 13);
- v3 := v3 * PRIME32_1;
- inc(p, 4);
-
- inc(v4, XXH_get32bits(p) * PRIME32_2);
- v4 := XXH_rotl32(v4, 13);
- v4 := v4 * PRIME32_1;
- inc(p, 4);
- if p > limit then
- break;
- end;
- h32 := XXH_rotl32(v1, 1) + XXH_rotl32(v2, 7) + XXH_rotl32(v3, 12) + XXH_rotl32(v4, 18);
- end
- else
- h32 := seed + PRIME32_5;
-
- inc(h32, cardinal(len));
- while (p + 4 <= bEnd) do
- begin
- inc(h32, XXH_get32bits(p) * PRIME32_3);
- h32 := XXH_rotl32(h32, 17) * PRIME32_4;
- inc(p, 4);
- end;
-
- while (p < bEnd) do
- begin
- inc(h32, p^ * PRIME32_5);
- h32 := XXH_rotl32(h32, 11) * PRIME32_1;
- inc(p);
- end;
-
- h32 := h32 xor (h32 shr 15);
- h32 := h32 * PRIME32_2;
- h32 := h32 xor (h32 shr 13);
- h32 := h32 * PRIME32_3;
- h32 := h32 xor (h32 shr 16);
-
- result := h32;
-end;
-
-function XXH32(input: pointer; len: size_t; seed: cardinal): cardinal;
-begin
- result := XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned);
-end;
-
-end.
-
diff --git a/lib/xedit/wbBSA.pas b/lib/xedit/wbBSA.pas
deleted file mode 100644
index 7a2e5af..0000000
--- a/lib/xedit/wbBSA.pas
+++ /dev/null
@@ -1,974 +0,0 @@
-{*******************************************************************************
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
-*******************************************************************************}
-
-unit wbBSA;
-
-{$I wbDefines.inc}
-
-interface
-
-uses
- Classes, SysUtils, IOUtils,
- wbInterface,
- ImagingDds;
-
-function wbCreateContainerHandler: IwbContainerHandler;
-
-implementation
-
-uses
- wbStreams,
- zlibEx,
- lz4io;
-
-const
- { https://github.com/Ethatron/bsaopt/blob/master/io/bsa.C }
- BSAHEADER_VERSION_OB = $67; // Oblivion
- BSAHEADER_VERSION_SK = $68; // Fallout3, Skyrim
- BSAHEADER_VERSION_SSE = $69; // Skyrim Special Edition
- BSAARCHIVE_COMPRESSFILES = $0004; // Whether the files are compressed in archive (invert file's compression flag)
- BSAARCHIVE_PREFIXFULLFILENAMES = $0100; // Whether the name is prefixed to the data?
- BSAFILE_COMPRESS = $40000000; // Whether the file is compressed
- { https://github.com/jonwd7/bae/blob/master/src/bsa.h }
- BA2HEADER_VERSION_FO4 = $01; // Fallout 4
-
-type
- TwbContainerHandler = class(TInterfacedObject, IwbContainerHandler)
- private
- chContainers: array of IwbResourceContainer;
- protected
- procedure AddContainer(const aContainer: IwbResourceContainer);
-
- {---IwbContainerHandler---}
- procedure AddFolder(const aPath: string);
- procedure AddBSA(const aFileName: string);
- procedure AddBA2(const aFileName: string);
-
- function OpenResource(const aFileName: string): TDynResources;
- function OpenResourceData(const aContainerName, aFileName: string): TBytes;
- function ContainerExists(aContainerName: string): Boolean;
- procedure ContainerList(const aList: TStrings);
- procedure ContainerResourceList(const aContainerName: string; const aList: TStrings;
- const aFolder: string = '');
- function ResourceExists(const aFileName: string): Boolean;
- function ResolveHash(const aHash: Int64): TDynStrings;
- function ResourceCount(const aFileName: string; aContainers: TStrings = nil): Integer;
- procedure ResourceCopy(const aContainerName, aFileName, aPathOut: string);
- end;
-
- TwbBSAFileRec = record
- Name : string;
- Hash : Int64;
- Size : Cardinal;
- Offset : Cardinal;
- end;
-
- TwbBSAFolderRec = record
- Name : string;
- Hash : Int64;
- Files : array of TwbBSAFileRec;
- Map : TStringList;
- end;
-
- IwbBSAFileInternal = interface(IwbBSAFile)
- ['{A360B348-8F6B-4FC1-A869-9D5B833DCA5F}']
- function GetData(aOffset, aSize: Cardinal): TBytes;
- end;
-
- TwbBSAFile = class(TInterfacedObject, IwbResourceContainer, IwbBSAFile, IwbBSAFileInternal)
- private
- bfStream : TwbReadOnlyCachedFileStream;
- bfFileName : string;
- bfVersion : Cardinal;
- bfOffset : Cardinal;
- bfFlags : Cardinal;
- bfFileFlags : Cardinal;
- bfFolders : array of TwbBSAFolderRec;
- bfFolderMap : TStringList;
-
- procedure ReadDirectory;
- protected
- {---IwbResourceContainer---}
- function GetName: string;
- function OpenResource(const aFileName: string): IwbResource;
- function ResourceExists(const aFileName: string): Boolean;
- procedure ResourceList(const aList: TStrings; const aFolder: string = '');
- procedure ResolveHash(const aHash: Int64; var Results: TDynStrings);
-
- {---IwbBSAFile---}
- function GetFileName: string;
-
- {---IwbBSAFileInternal---}
- function GetData(aOffset, aSize: Cardinal):TBytes;
- public
- constructor Create(const aFileName: string);
- destructor Destroy; override;
- end;
-
- TwbBSAResource = class(TInterfacedObject, IwbResource)
- brFile : IwbBSAFileInternal;
- brOffset : Cardinal;
- brSize : Cardinal;
- protected
- {---IwbResource---}
- function GetContainer: IwbResourceContainer;
- function GetData: TBytes;
- public
- constructor Create(aFile: TwbBSAFile; aSize, aOffset: Cardinal);
- end;
-
-
- TwbBA2TexChunkRec = record
- Size : Cardinal;
- PackedSize : Cardinal;
- Offset : Int64;
- StartMip : Word;
- EndMip : Word;
- end;
-
- TwbBA2FileRec = record
- Name : string;
- NameHash : Cardinal;
- DirHash : Cardinal;
- Size : Cardinal;
- PackedSize : Cardinal;
- Offset : Int64;
- Height : Word;
- Width : Word;
- NumMips : Byte;
- DXGIFormat : Byte;
- CubeMaps : Word;
- TexChunks : array of TwbBA2TexChunkRec;
- end;
-
- IwbBA2FileInternal = interface(IwbBA2File)
- ['{87D66150-746E-4B37-B295-45C4221CDCBE}']
- procedure ReadData(var Buffer; Offset: Int64; Count: Longint);
- end;
-
- TwbBA2File = class(TInterfacedObject, IwbResourceContainer, IwbBA2File, IwbBA2FileInternal)
- private
- bfStream : TwbReadOnlyCachedFileStream;
- bfFileName : string;
- bfVersion : Cardinal;
- bfType : TwbSignature;
- bfFiles : array of TwbBA2FileRec;
- bfFolderMap : TStringList;
-
- procedure ReadDirectory;
- protected
- {---IwbResourceContainer---}
- function GetName: string;
- function OpenResource(const aFileName: string): IwbResource;
- function ResourceExists(const aFileName: string): Boolean;
- procedure ResourceList(const aList: TStrings; const aFolder: string = '');
- procedure ResolveHash(const aHash: Int64; var Results: TDynStrings);
-
- {---IwbBA2File---}
- function GetFileName: string;
-
- {---IwbBA2FileInternal---}
- procedure ReadData(var Buffer; Offset: Int64; Count: Longint);
- public
- constructor Create(const aFileName: string);
- destructor Destroy; override;
- end;
-
- TwbBA2Resource = class(TInterfacedObject, IwbResource)
- brFile : IwbBA2FileInternal;
- brFileRec : TwbBA2FileRec;
- protected
- {---IwbResource---}
- function GetContainer: IwbResourceContainer;
- function GetData: TBytes;
- public
- constructor Create(aFile: TwbBA2File; var aFileRec: TwbBA2FileRec);
- end;
-
-
- IwbFolderInternal = interface(IwbFolder)
- ['{6DF2B964-5AF7-4732-BD28-CD7600407A83}']
- end;
-
- TwbFolder = class(TInterfacedObject, IwbResourceContainer, IwbFolder, IwbFolderInternal)
- private
- fPath : string;
- protected
- {---IwbResourceContainer---}
- function GetName: string;
- function OpenResource(const aFileName: string): IwbResource;
- function ResourceExists(const aFileName: string): Boolean;
- procedure ResourceList(const aList: TStrings; const aFolder: string = '');
- procedure ResolveHash(const aHash: Int64; var Results: TDynStrings);
-
- {---IwbFolder---}
- function GetPathName: string;
- public
- constructor Create(const aPath: string);
- destructor Destroy; override;
- end;
-
- TwbFolderResource = class(TInterfacedObject, IwbResource)
- frFolder : IwbFolderInternal;
- frFileName : string;
- protected
- {---IwbResource---}
- function GetContainer: IwbResourceContainer;
- function GetData: TBytes;
- public
- constructor Create(aFolder: IwbFolderInternal; const aFileName: string);
- destructor Destroy; override;
- end;
-
-
-function wbCreateContainerHandler: IwbContainerHandler;
-begin
- Result := TwbContainerHandler.Create;
-end;
-
-{ TwbContainerHandler }
-
-procedure TwbContainerHandler.AddContainer(const aContainer: IwbResourceContainer);
-begin
- SetLength(chContainers, Succ(Length(chContainers)));
- chContainers[High(chContainers)] := aContainer;
-end;
-
-function TwbContainerHandler.ContainerExists(aContainerName: string): Boolean;
-var
- i: Integer;
-begin
- Result := True;
- for i := Low(chContainers) to High(chContainers) do
- if SameText(chContainers[i].Name, aContainerName) then
- Exit;
- Result := False;
-end;
-
-procedure TwbContainerHandler.AddBSA(const aFileName: string);
-begin
- if not ContainerExists(aFileName) then
- AddContainer(TwbBSAFile.Create(aFileName));
-end;
-
-procedure TwbContainerHandler.AddBA2(const aFileName: string);
-begin
- if not ContainerExists(aFileName) then
- AddContainer(TwbBA2File.Create(aFileName));
-end;
-
-procedure TwbContainerHandler.AddFolder(const aPath: string);
-begin
- if not ContainerExists(aPath) then
- AddContainer(TwbFolder.Create(aPath));
-end;
-
-function TwbContainerHandler.OpenResource(const aFileName: string): TDynResources;
-var
- i, j: Integer;
-begin
- SetLength(Result, Length(chContainers));
- j := 0;
- for i := Low(chContainers) to High(chContainers) do begin
- Result[j] := chContainers[i].OpenResource(aFileName);
- if Assigned(Result[j]) then
- Inc(j);
- end;
- SetLength(Result, j);
-end;
-
-function TwbContainerHandler.OpenResourceData(const aContainerName, aFileName: string): TBytes;
-var
- Res : TDynResources;
- i : Integer;
-begin
- Res := OpenResource(aFileName);
-
- if Length(Res) = 0 then
- Exit;
-
- for i := High(Res) downto Low(Res) do
- if (aContainerName = '') or SameText(Res[i].Container.Name, aContainerName) then begin
- Result := Res[i].GetData;
- Break;
- end;
-end;
-
-procedure TwbContainerHandler.ContainerList(const aList: TStrings);
-var
- i: Integer;
-begin
- if not Assigned(aList) then
- Exit;
-
- for i := Low(chContainers) to High(chContainers) do
- aList.Add(chContainers[i].Name);
-end;
-
-procedure TwbContainerHandler.ContainerResourceList(const aContainerName: string; const aList: TStrings;
- const aFolder: string = '');
-var
- i: Integer;
-begin
- for i := Low(chContainers) to High(chContainers) do
- if SameText(chContainers[i].Name, aContainerName) then begin
- chContainers[i].ResourceList(aList, aFolder);
- Break;
- end;
-end;
-
-function TwbContainerHandler.ResourceExists(const aFileName: string): Boolean;
-var
- i: Integer;
-begin
- Result := False;
- for i := Low(chContainers) to High(chContainers) do
- if chContainers[i].ResourceExists(aFileName) then begin
- Result := True;
- Exit;
- end;
-end;
-
-function TwbContainerHandler.ResolveHash(const aHash: Int64): TDynStrings;
-var
- i: Integer;
-begin
- Result := nil;
- for i := Low(chContainers) to High(chContainers) do
- chContainers[i].ResolveHash(aHash, Result);
-end;
-
-function TwbContainerHandler.ResourceCount(const aFileName: string; aContainers: TStrings = nil): Integer;
-var
- i: Integer;
-begin
- Result := 0;
- for i := Low(chContainers) to High(chContainers) do
- if chContainers[i].ResourceExists(aFileName) then begin
- Inc(Result);
- if Assigned(aContainers) then
- aContainers.Add(chContainers[i].Name);
- end;
-end;
-
-procedure TwbContainerHandler.ResourceCopy(const aContainerName, aFileName, aPathOut: string);
-var
- fn, dir : string;
- aData : TBytes;
- res : TDynResources;
- i, residx : integer;
-begin
- if aPathOut = '' then
- raise Exception.Create('Destination path is not specified');
-
- res := OpenResource(aFileName);
-
- if Length(res) = 0 then
- raise Exception.Create('Resource doesn''t exist');
-
- residx := High(res);
- for i := High(res) to Low(res) do
- if (aContainerName = '') or SameText(res[i].Container.Name, aContainerName) then begin
- residx := i;
- Break;
- end;
-
- // file name is provided instead of path
- if TPath.HasExtension(aPathOut) then
- fn := aPathOut
- // destination path is provided
- else
- fn := IncludeTrailingPathDelimiter(aPathOut) + aFileName;
-
- // create distination directory
- dir := ExtractFilePath(fn);
- if not DirectoryExists(dir) then
- if not ForceDirectories(dir) then
- raise Exception.Create('Unable to create destination directory ' + dir);
-
- // direct copy if file is loose, with overwriting
- if ExtractFileExt(res[residx].Container.Name) = '' then begin
- TFile.Copy(res[residx].Container.Name + aFileName, fn, True);
- end
- // otherwise extract from BSA
- else begin
- aData := res[residx].GetData;
- // exception handled outside
- with TFileStream.Create(fn, fmCreate) do try
- WriteBuffer(aData[0], Length(aData));
- finally
- Free;
- end;
- end;
-end;
-
-
-{ TwbBSAFile }
-
-constructor TwbBSAFile.Create(const aFileName: string);
-begin
- bfFileName := aFileName;
- bfStream := TwbReadOnlyCachedFileStream.Create(aFileName);
- ReadDirectory;
-end;
-
-destructor TwbBSAFile.Destroy;
-var
- i: Integer;
-begin
- FreeAndNil(bfStream);
- for i := Low(bfFolders) to High(bfFolders) do with bfFolders[i] do
- FreeAndNil(Map);
- FreeAndNil(bfFolderMap);
- inherited;
-end;
-
-function TwbBSAFile.GetData(aOffset, aSize: Cardinal): TBytes;
-var
- IsCompressed : Boolean;
- Buffer : TBytes;
-begin
- IsCompressed := (aSize and BSAFILE_COMPRESS) <> 0;
- if IsCompressed then
- aSize := aSize and not BSAFILE_COMPRESS;
- if (bfFlags and BSAARCHIVE_COMPRESSFILES) <> 0 then
- IsCompressed := not IsCompressed;
- bfStream.Position := aOffset;
- if (bfVersion >= BSAHEADER_VERSION_SK) and ((bfFlags and BSAARCHIVE_PREFIXFULLFILENAMES) <> 0) then
- // size - file name length (no terminator) - string length prefix
- aSize := aSize - Length(bfStream.ReadStringLen(False)) - 1;
- if IsCompressed then begin
- SetLength(Result, bfStream.ReadCardinal);
- aSize := aSize - 4;
- if (Length(Result) > 0) and (aSize > 0) then begin
- SetLength(Buffer, aSize);
- bfStream.ReadBuffer(Buffer[0], Length(Buffer));
- if bfVersion = BSAHEADER_VERSION_SSE then
- lz4DecompressToUserBuf(@Buffer[0], Length(Buffer), @Result[0], Length(Result))
- else
- DecompressToUserBuf(@Buffer[0], Length(Buffer), @Result[0], Length(Result));
- end;
- end else begin
- SetLength(Result, aSize);
- if aSize > 0 then
- bfStream.ReadBuffer(Result[0], aSize);
- end;
-end;
-
-function TwbBSAFile.GetFileName: string;
-begin
- Result := bfFileName;
-end;
-
-function TwbBSAFile.GetName: string;
-begin
- Result := GetFileName;
-end;
-
-function TwbBSAFile.OpenResource(const aFileName: string): IwbResource;
-var
- lPath, lName: string;
- i, j: Integer;
-begin
- Result := nil;
- lPath := ExtractFilePath(aFileName);
- SetLength(lPath, Pred(Length(lPath)));
- lName := ExtractFileName(aFileName);
- if bfFolderMap.Find(lPath, i) then
- with bfFolders[Integer(bfFolderMap.Objects[i])] do
- if Map.Find(lName, j) then
- with Files[Integer(Map.Objects[j])] do
- Result := TwbBSAResource.Create(Self, Size, Offset);
-end;
-
-function TwbBSAFile.ResourceExists(const aFileName: string): Boolean;
-var
- lPath, lName: string;
- i: Integer;
-begin
- Result := False;
- lPath := ExtractFilePath(aFileName);
- SetLength(lPath, Pred(Length(lPath)));
- lName := ExtractFileName(aFileName);
- if bfFolderMap.Find(lPath, i) then
- Result := bfFolders[Integer(bfFolderMap.Objects[i])].Map.IndexOf(lName) <> -1;
-end;
-
-procedure TwbBSAFile.ResourceList(const aList: TStrings; const aFolder: string = '');
-var
- i, j: Integer;
- Folder: string;
-begin
- if not Assigned(aList) then
- Exit;
- Folder := ExcludeTrailingPathDelimiter(aFolder);
- for i := Low(bfFolders) to High(bfFolders) do with bfFolders[i] do
- if (aFolder = '') or SameText(Folder, Name) then
- for j := Low(Files) to High(Files) do
- aList.Add(Name + '\' + Files[j].Name);
-end;
-
-procedure TwbBSAFile.ReadDirectory;
-var
- i, j : Integer;
- OldPos : Int64;
- NewPos : Int64;
-// FileCount : Cardinal;
-// totalFolderNameLength : Cardinal;
- totalFileNameLength : Cardinal;
-begin
- if bfStream.ReadSignature <> 'BSA' then
- raise Exception.Create(bfFileName + ' is not a valid BSA file');
- bfVersion := bfStream.ReadCardinal;
- if not (bfVersion in [BSAHEADER_VERSION_OB, BSAHEADER_VERSION_SK, BSAHEADER_VERSION_SSE]) then
- raise Exception.Create(bfFileName + ' has unknown version: ' + IntToStr(bfVersion) );
- bfOffset := bfStream.ReadCardinal;
- if bfOffset <> $24 then
- raise Exception.Create(bfFileName + ' has unexpected Offset: ' + IntToStr(bfOffset) );
- bfFlags := bfStream.ReadCardinal;
- SetLength(bfFolders, bfStream.ReadCardinal);
- {FileCount := } bfStream.ReadCardinal; //skip file count
- {totalFolderNameLength := } bfStream.ReadCardinal; //skip totalFolderNameLength
- totalFileNameLength := bfStream.ReadCardinal; //skip totalFileNameLength
- bfFileFlags := bfStream.ReadCardinal;
- OldPos := bfStream.Position;
- for i := Low(bfFolders) to High(bfFolders) do with bfFolders[i] do begin
- bfStream.Position := OldPos;
- Hash := bfStream.ReadInt64; // skip hash
- SetLength(Files, bfStream.ReadCardinal);
- if bfVersion = BSAHEADER_VERSION_SSE then begin
- bfStream.ReadCardinal; // skip unk32
- NewPos := bfStream.ReadInt64;
- end else
- NewPos := bfStream.ReadCardinal;
- OldPos := bfStream.Position;
- bfStream.Position := NewPos - totalFileNameLength;
- Name := bfStream.ReadStringLen;
- for j := Low(Files) to High(Files) do with Files[j] do begin
- Hash := bfStream.ReadInt64; // skip hash
- Size := bfStream.ReadCardinal;
- Offset := bfStream.ReadCardinal;
- end;
- end;
- bfFolderMap := TwbFastStringList.Create;
- for i := Low(bfFolders) to High(bfFolders) do with bfFolders[i] do begin
- bfFolderMap.AddObject(Name, TObject(i));
- Map := TwbFastStringList.Create;
- for j := Low(Files) to High(Files) do with Files[j] do begin
- Name := bfStream.ReadStringTerm;
- Map.AddObject(Name, TObject(j));
- end;
- Map.Sorted := True;
- end;
- bfFolderMap.Sorted := True;
-end;
-
-procedure TwbBSAFile.ResolveHash(const aHash: Int64; var Results: TDynStrings);
-var
- i, j: Integer;
-begin
- for i := Low(bfFolders) to High(bfFolders) do with bfFolders[i] do begin
- if Hash = aHash then begin
- SetLength(Results, Succ(Length(Results)));
- Results[High(Results)] := Name;
- end;
- for j := Low(Files) to High(Files) do with Files[j] do begin
- if Hash = aHash then begin
- SetLength(Results, Succ(Length(Results)));
- Results[High(Results)] := Name;
- end;
- end;
- end;
-end;
-
-{ TwbBSAResource }
-
-constructor TwbBSAResource.Create(aFile: TwbBSAFile; aSize, aOffset: Cardinal);
-begin
- brFile := aFile;
- brOffset := aOffset;
- brSize := aSize;
-end;
-
-function TwbBSAResource.GetContainer: IwbResourceContainer;
-begin
- Result := brFile;
-end;
-
-function TwbBSAResource.GetData: TBytes;
-begin
- Result := brFile.GetData(brOffset, brSize);
-end;
-
-
-{ TwbBA2File }
-
-constructor TwbBA2File.Create(const aFileName: string);
-begin
- bfFileName := aFileName;
- bfStream := TwbReadOnlyCachedFileStream.Create(aFileName);
- ReadDirectory;
-end;
-
-destructor TwbBA2File.Destroy;
-var
- i: integer;
-begin
- FreeAndNil(bfStream);
- for i := 0 to Pred(bfFolderMap.Count) do
- TStringList(bfFolderMap.Objects[i]).Free;
- FreeAndNil(bfFolderMap);
- inherited;
-end;
-
-procedure TwbBA2File.ReadDirectory;
-var
- i, j : Integer;
- OldPos : Int64;
- FileCount : Cardinal;
- FileTablePosition: Int64;
- NumChunks: Byte;
- folder: string;
-begin
- if bfStream.ReadSignature <> 'BTDX' then
- raise Exception.Create(bfFileName + ' is not a valid BA2 file');
- bfVersion := bfStream.ReadCardinal;
- if bfVersion <> BA2HEADER_VERSION_FO4 then
- raise Exception.Create(bfFileName + ' has unknown version: ' + IntToStr(bfVersion) );
- bfType := bfStream.ReadSignature;
- if (bfType <> 'GNRL') and (bfType <> 'DX10') then
- raise Exception.Create(bfFileName + ' has unknown type: ' + String(bfType));
- FileCount := bfStream.ReadCardinal;
- FileTablePosition := bfStream.ReadInt64;
- OldPos := bfStream.Position;
- bfStream.Position := FileTablePosition;
- SetLength(bfFiles, FileCount);
- for i := Low(bfFiles) to High(bfFiles) do begin
- bfFiles[i].Name := bfStream.ReadStringLen16;
- end;
- bfStream.Position := OldPos;
-
- if bfType = 'GNRL' then begin
- for i := Low(bfFiles) to High(bfFiles) do begin
- bfFiles[i].NameHash := bfStream.ReadCardinal;
- bfStream.ReadCardinal; // skip ext
- bfFiles[i].DirHash := bfStream.ReadCardinal;
- bfStream.ReadCardinal; // skip unk0C
- bfFiles[i].Offset := bfStream.ReadInt64;
- bfFiles[i].PackedSize := bfStream.ReadCardinal;
- bfFiles[i].Size := bfStream.ReadCardinal;
- bfStream.ReadCardinal; // skip BAADF00D
- end;
- end
- else if bfType = 'DX10' then begin
- for i := Low(bfFiles) to High(bfFiles) do begin
- bfFiles[i].NameHash := bfStream.ReadCardinal;
- bfStream.ReadCardinal; // skip ext
- bfFiles[i].DirHash := bfStream.ReadCardinal;
- bfStream.ReadByte; // skip unk0C
- NumChunks := bfStream.ReadByte;
- bfStream.ReadWord; // skip chunkHeaderSize
- bfFiles[i].Height := bfStream.ReadWord;
- bfFiles[i].Width := bfStream.ReadWord;
- bfFiles[i].NumMips := bfStream.ReadByte;
- bfFiles[i].DXGIFormat := bfStream.ReadByte;
- bfFiles[i].CubeMaps := bfStream.ReadWord;
- SetLength(bfFiles[i].TexChunks, NumChunks);
- for j := Low(bfFiles[i].TexChunks) to High(bfFiles[i].TexChunks) do
- with bfFiles[i].TexChunks[j] do begin
- Offset := bfStream.ReadInt64;
- PackedSize := bfStream.ReadCardinal;
- Size := bfStream.ReadCardinal;
- StartMip := bfStream.ReadWord;
- EndMip := bfStream.ReadWord;
- bfStream.ReadCardinal; // skip BAADF00D
- end;
- end;
- end;
-
- bfFolderMap := TwbFastStringList.Create;
- bfFolderMap.Sorted := True;
- for i := Low(bfFiles) to High(bfFiles) do begin
- folder := LowerCase(ExtractFilePath(bfFiles[i].Name));
- SetLength(folder, Pred(Length(folder)));
- j := bfFolderMap.IndexOf(folder);
- if not bfFolderMap.Find(folder, j) then begin
- bfFolderMap.AddObject(folder, TwbFastStringList.Create);
- if not bfFolderMap.Find(folder, j) then
- raise Exception.Create('Indexing error');
- end;
- TStringList(bfFolderMap.Objects[j]).AddObject(LowerCase(ExtractFileName(bfFiles[i].Name)), TObject(i));
- end;
- for i := 0 to Pred(bfFolderMap.Count) do
- TStringList(bfFolderMap.Objects[i]).Sorted := True;
-end;
-
-function TwbBA2File.GetFileName: string;
-begin
- Result := bfFileName;
-end;
-
-function TwbBA2File.GetName: string;
-begin
- Result := GetFileName;
-end;
-
-procedure TwbBA2File.ReadData(var Buffer; Offset: Int64; Count: Longint);
-begin
- bfStream.Position := Offset;
- bfStream.ReadBuffer(Buffer, Count);
-end;
-
-function TwbBA2File.OpenResource(const aFileName: string): IwbResource;
-var
- lPath, lName: string;
- i, j: Integer;
-begin
- lPath := LowerCase(ExtractFilePath(aFileName));
- SetLength(lPath, Pred(Length(lPath)));
- lName := LowerCase(ExtractFileName(aFileName));
- if bfFolderMap.Find(lPath, i) then with TStringList(bfFolderMap.Objects[i]) do
- if Find(lName, j) then
- Result := TwbBA2Resource.Create(Self, bfFiles[Integer(Objects[j])]);
-end;
-
-procedure TwbBA2File.ResolveHash(const aHash: Int64; var Results: TDynStrings);
-begin
- // ...
-end;
-
-function TwbBA2File.ResourceExists(const aFileName: string): Boolean;
-var
- lPath, lName: string;
- i: Integer;
-begin
- Result := False;
- lPath := LowerCase(ExtractFilePath(aFileName));
- SetLength(lPath, Pred(Length(lPath)));
- lName := LowerCase(ExtractFileName(aFileName));
- if bfFolderMap.Find(lPath, i) then
- Result := TStringList(bfFolderMap.Objects[i]).IndexOf(lName) <> -1;
-end;
-
-procedure TwbBA2File.ResourceList(const aList: TStrings; const aFolder: string = '');
-var
- i: Integer;
-begin
- if not Assigned(aList) then
- Exit;
- for i := Low(bfFiles) to High(bfFiles) do
- aList.Add(LowerCase(bfFiles[i].Name));
-end;
-
-
-{ TwbBA2Resource }
-
-constructor TwbBA2Resource.Create(aFile: TwbBA2File; var aFileRec: TwbBA2FileRec);
-begin
- brFile := aFile;
- brFileRec := aFileRec;
-end;
-
-function TwbBA2Resource.GetContainer: IwbResourceContainer;
-begin
- Result := brFile;
-end;
-
-function TwbBA2Resource.GetData: TBytes;
-const
- FOURCC_BC7 = LongWord(Byte('B') or (Byte('C') shl 8) or (Byte('7') shl 16) or
- (Byte(0) shl 24));
-var
- Buffer : TBytes;
- Hdr: ^TDDSFileHeader;
- TexSize, i: integer;
-begin
- // GNRL resource
- if (brFileRec.Size <> 0) and (Length(brFileRec.TexChunks) = 0) then begin
- if brFileRec.PackedSize <> 0 then begin
- SetLength(Buffer, brFileRec.PackedSize);
- brFile.ReadData(Buffer[0], brFileRec.Offset, Length(Buffer));
- SetLength(Result, brFileRec.Size);
- DecompressToUserBuf(@Buffer[0], Length(Buffer), @Result[0], Length(Result));
- end
- else begin
- SetLength(Result, brFileRec.Size);
- brFile.ReadData(Result[0], brFileRec.Offset, Length(Result));
- end;
- end
- // DX10 texture
- else if Length(brFileRec.TexChunks) <> 0 then begin
- // calculate texture size including header
- TexSize := SizeOf(TDDSFileHeader);
- for i := Low(brFileRec.TexChunks) to High(brFileRec.TexChunks) do
- Inc(TexSize, brFileRec.TexChunks[i].Size);
- SetLength(Result, TexSize);
- // fill DDS header
- Hdr := @Result[0];
- hdr.Magic := DDSMagic;
- hdr.Desc.Size := SizeOf(hdr.Desc);
- hdr.Desc.Width := brFileRec.Width;
- hdr.Desc.Height := brFileRec.Height;
- hdr.Desc.Flags := DDS_SAVE_FLAGS or DDSD_MIPMAPCOUNT;
- hdr.Desc.Caps.Caps1 := DDSCAPS_TEXTURE or DDSCAPS_MIPMAP;
- hdr.Desc.MipMaps := brFileRec.NumMips;
- if brFileRec.CubeMaps = 2049 then
- hdr.Desc.Caps.Caps2 := DDSCAPS2_POSITIVEX or DDSCAPS2_NEGATIVEX
- or DDSCAPS2_POSITIVEY or DDSCAPS2_NEGATIVEY
- or DDSCAPS2_POSITIVEZ or DDSCAPS2_NEGATIVEZ
- or DDSCAPS2_CUBEMAP;
- hdr.Desc.PixelFormat.Size := SizeOf(hdr.Desc.PixelFormat);
- case TDXGIFormat(brFileRec.DXGIFormat) of
- DXGI_FORMAT_BC1_UNORM: begin
- hdr.Desc.PixelFormat.Flags := DDPF_FOURCC;
- hdr.Desc.PixelFormat.FourCC := FOURCC_DXT1;
- hdr.Desc.PitchOrLinearSize := brFileRec.Width * brFileRec.Height div 4;
- end;
- DXGI_FORMAT_BC2_UNORM: begin
- hdr.Desc.PixelFormat.Flags := DDPF_FOURCC;
- hdr.Desc.PixelFormat.FourCC := FOURCC_DXT3;
- hdr.Desc.PitchOrLinearSize := brFileRec.Width * brFileRec.Height;
- end;
- DXGI_FORMAT_BC3_UNORM: begin
- hdr.Desc.PixelFormat.Flags := DDPF_FOURCC;
- hdr.Desc.PixelFormat.FourCC := FOURCC_DXT5;
- hdr.Desc.PitchOrLinearSize := brFileRec.Width * brFileRec.Height;
- end;
- DXGI_FORMAT_BC5_UNORM: begin
- hdr.Desc.PixelFormat.Flags := DDPF_FOURCC;
- hdr.Desc.PixelFormat.FourCC := FOURCC_ATI2;
- hdr.Desc.PitchOrLinearSize := brFileRec.Width * brFileRec.Height;
- end;
- DXGI_FORMAT_BC7_UNORM: begin
- hdr.Desc.PixelFormat.Flags := DDPF_FOURCC;
- hdr.Desc.PixelFormat.FourCC := FOURCC_BC7;
- hdr.Desc.PitchOrLinearSize := brFileRec.Width * brFileRec.Height;
- end;
- DXGI_FORMAT_B8G8R8A8_UNORM: begin
- hdr.Desc.PixelFormat.Flags := DDPF_RGB;
- hdr.Desc.PixelFormat.BitCount := 32;
- hdr.Desc.PixelFormat.RedMask := $00FF0000;
- hdr.Desc.PixelFormat.GreenMask := $0000FF00;
- hdr.Desc.PixelFormat.BlueMask := $000000FF;
- hdr.Desc.PitchOrLinearSize := brFileRec.Width * brFileRec.Height * 4;
- end;
- DXGI_FORMAT_R8_UNORM: begin
- hdr.Desc.PixelFormat.Flags := DDPF_RGB;
- hdr.Desc.PixelFormat.BitCount := 8;
- hdr.Desc.PixelFormat.RedMask := $FF;
- hdr.Desc.PitchOrLinearSize := brFileRec.Width * brFileRec.Height;
- end;
- end;
- // append chunks
- TexSize := SizeOf(TDDSFileHeader);
- for i := Low(brFileRec.TexChunks) to High(brFileRec.TexChunks) do with brFileRec.TexChunks[i] do begin
- // compressed chunk
- if PackedSize <> 0 then begin
- SetLength(Buffer, PackedSize);
- brFile.ReadData(Buffer[0], Offset, Length(Buffer));
- DecompressToUserBuf(@Buffer[0], Length(Buffer), @Result[TexSize], Size);
- end
- // uncompressed chunk
- else
- brFile.ReadData(Result[TexSize], Offset, Size);
- Inc(TexSize, Size);
- end;
- end;
-end;
-
-
-{ TwbFolder }
-
-constructor TwbFolder.Create(const aPath: string);
-begin
- fPath := IncludeTrailingPathDelimiter(aPath);
-end;
-
-destructor TwbFolder.Destroy;
-begin
-
- inherited;
-end;
-
-function TwbFolder.GetPathName: string;
-begin
- Result := fPath;
-end;
-
-function TwbFolder.GetName: string;
-begin
- Result := GetPathName;
-end;
-
-function TwbFolder.OpenResource(const aFileName: string): IwbResource;
-var
- s: string;
-begin
- s := fPath + aFileName;
- if FileExists(s) then
- Result := TwbFolderResource.Create(Self, s);
-end;
-
-function TwbFolder.ResourceExists(const aFileName: string): Boolean;
-begin
- Result := FileExists(fPath + aFileName);
-end;
-
-procedure TwbFolder.ResourceList(const aList: TStrings; const aFolder: string = '');
-var
- FileName: string;
-begin
- if not Assigned(aList) then
- Exit;
- if TDirectory.Exists(fPath + aFolder) then
- for FileName in TDirectory.GetFiles(fPath + aFolder, '*.*', TSearchOption.soAllDirectories) do
- aList.Add(LowerCase(Copy(FileName, Length(fPath) + 1, Length(FileName))));
-end;
-
-procedure TwbFolder.ResolveHash(const aHash: Int64; var Results: TDynStrings);
-begin
- //...
-end;
-
-{ TwbFolderResource }
-
-constructor TwbFolderResource.Create(aFolder: IwbFolderInternal; const aFileName: string);
-begin
- frFolder := aFolder;
- frFileName := aFileName;
-end;
-
-destructor TwbFolderResource.Destroy;
-begin
-
- inherited;
-end;
-
-function TwbFolderResource.GetContainer: IwbResourceContainer;
-begin
- Result := frFolder;
-end;
-
-function TwbFolderResource.GetData: TBytes;
-begin
- with TFileStream.Create(frFileName, fmOpenRead or fmShareDenyWrite) do try
- SetLength(Result, Size);
- if Length(Result) > 0 then
- ReadBuffer(Result[0], Length(Result));
- finally
- Free;
- end;
-end;
-
-end.
diff --git a/lib/xedit/wbDefines.inc b/lib/xedit/wbDefines.inc
deleted file mode 100644
index 492fe49..0000000
--- a/lib/xedit/wbDefines.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-{*******************************************************************************
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
-*******************************************************************************}
-
-{.$DEFINE USE_CODESITE}
\ No newline at end of file
diff --git a/lib/xedit/wbDefinitionsFNV.pas b/lib/xedit/wbDefinitionsFNV.pas
deleted file mode 100644
index 913580b..0000000
--- a/lib/xedit/wbDefinitionsFNV.pas
+++ /dev/null
@@ -1,11803 +0,0 @@
-{*******************************************************************************
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
-*******************************************************************************}
-
-unit wbDefinitionsFNV;
-
-{$I wbDefines.inc}
-
-interface
-
-uses
- wbInterface;
-
-var
- wbAggroRadiusFlags: IwbFlagsDef;
- wbPKDTFlags: IwbFlagsDef;
- wbRecordFlagsFlags: IwbFlagsDef;
- wbServiceFlags: IwbFlagsDef;
- wbTemplateFlags: IwbFlagsDef;
-
- wbAgressionEnum: IwbEnumDef;
- wbAlignmentEnum: IwbEnumDef;
- wbArchtypeEnum: IwbEnumDef;
- wbAssistanceEnum: IwbEnumDef;
- wbAttackAnimationEnum: IwbEnumDef;
- wbAxisEnum: IwbEnumDef;
- wbBlendModeEnum: IwbEnumDef;
- wbBlendOpEnum: IwbEnumDef;
- wbBodyLocationEnum: IwbEnumDef;
- wbBodyPartIndexEnum: IwbEnumDef;
- wbConfidenceEnum: IwbEnumDef;
- wbCreatureTypeEnum: IwbEnumDef;
- wbCrimeTypeEnum: IwbEnumDef;
- wbCriticalStageEnum: IwbEnumDef;
- wbEquipTypeEnum: IwbEnumDef;
- wbFormTypeEnum: IwbEnumDef;
- wbFunctionsEnum: IwbEnumDef;
- wbHeadPartIndexEnum: IwbEnumDef;
- wbImpactMaterialTypeEnum: IwbEnumDef;
- wbMenuModeEnum: IwbEnumDef;
- wbMiscStatEnum: IwbEnumDef;
- wbModEffectEnum: IwbEnumDef;
- wbMoodEnum: IwbEnumDef;
- wbMusicEnum: IwbEnumDef;
- wbObjectTypeEnum: IwbEnumDef;
- wbPKDTType: IwbEnumDef;
- wbPlayerActionEnum: IwbEnumDef;
- wbQuadrantEnum: IwbEnumDef;
- wbReloadAnimEnum: IwbEnumDef;
- wbSexEnum: IwbEnumDef;
- wbSkillEnum: IwbEnumDef;
- wbSoundLevelEnum: IwbEnumDef;
- wbSpecializationEnum: IwbEnumDef;
- wbVatsValueFunctionEnum: IwbEnumDef;
- wbWeaponAnimTypeEnum: IwbEnumDef;
- wbZTestFuncEnum: IwbEnumDef;
-
-function wbCreaLevelDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-
-procedure DefineFNV;
-
-implementation
-
-uses
- Types,
- Classes,
- SysUtils,
- Math,
- Variants,
- wbHelpers;
-
-const
- _00_IAD: TwbSignature = #$00'IAD';
- _40_IAD: TwbSignature = #$40'IAD';
- _01_IAD: TwbSignature = #$01'IAD';
- _41_IAD: TwbSignature = #$41'IAD';
- _02_IAD: TwbSignature = #$02'IAD';
- _42_IAD: TwbSignature = #$42'IAD';
- _03_IAD: TwbSignature = #$03'IAD';
- _43_IAD: TwbSignature = #$43'IAD';
- _04_IAD: TwbSignature = #$04'IAD';
- _44_IAD: TwbSignature = #$44'IAD';
- _05_IAD: TwbSignature = #$05'IAD';
- _45_IAD: TwbSignature = #$45'IAD';
- _06_IAD: TwbSignature = #$06'IAD';
- _46_IAD: TwbSignature = #$46'IAD';
- _07_IAD: TwbSignature = #$07'IAD';
- _47_IAD: TwbSignature = #$47'IAD';
- _08_IAD: TwbSignature = #$08'IAD';
- _48_IAD: TwbSignature = #$48'IAD';
- _09_IAD: TwbSignature = #$09'IAD';
- _49_IAD: TwbSignature = #$49'IAD';
- _0A_IAD: TwbSignature = #$0A'IAD';
- _4A_IAD: TwbSignature = #$4A'IAD';
- _0B_IAD: TwbSignature = #$0B'IAD';
- _4B_IAD: TwbSignature = #$4B'IAD';
- _0C_IAD: TwbSignature = #$0C'IAD';
- _4C_IAD: TwbSignature = #$4C'IAD';
- _0D_IAD: TwbSignature = #$0D'IAD';
- _4D_IAD: TwbSignature = #$4D'IAD';
- _0E_IAD: TwbSignature = #$0E'IAD';
- _4E_IAD: TwbSignature = #$4E'IAD';
- _0F_IAD: TwbSignature = #$0F'IAD';
- _4F_IAD: TwbSignature = #$4F'IAD';
- _10_IAD: TwbSignature = #$10'IAD';
- _50_IAD: TwbSignature = #$50'IAD';
- _11_IAD: TwbSignature = #$11'IAD';
- _51_IAD: TwbSignature = #$51'IAD';
- _12_IAD: TwbSignature = #$12'IAD';
- _52_IAD: TwbSignature = #$52'IAD';
- _13_IAD: TwbSignature = #$13'IAD';
- _53_IAD: TwbSignature = #$53'IAD';
- _14_IAD: TwbSignature = #$14'IAD';
- _54_IAD: TwbSignature = #$54'IAD';
-
- _0_IAD : TwbSignature = #0'IAD';
- _1_IAD : TwbSignature = #1'IAD';
- _2_IAD : TwbSignature = #2'IAD';
- _3_IAD : TwbSignature = #3'IAD';
- _4_IAD : TwbSignature = #4'IAD';
- _5_IAD : TwbSignature = #5'IAD';
- ACBS : TwbSignature = 'ACBS';
- ACHR : TwbSignature = 'ACHR';
- ACRE : TwbSignature = 'ACRE';
- ACTI : TwbSignature = 'ACTI';
- ADDN : TwbSignature = 'ADDN';
- AIDT : TwbSignature = 'AIDT';
- ALCH : TwbSignature = 'ALCH';
- AMMO : TwbSignature = 'AMMO';
- ANAM : TwbSignature = 'ANAM';
- ANIO : TwbSignature = 'ANIO';
- ARMA : TwbSignature = 'ARMA';
- ARMO : TwbSignature = 'ARMO';
- ASPC : TwbSignature = 'ASPC';
- ATTR : TwbSignature = 'ATTR';
- ATXT : TwbSignature = 'ATXT';
- AVIF : TwbSignature = 'AVIF';
- BIPL : TwbSignature = 'BIPL';
- BMCT : TwbSignature = 'BMCT';
- BMDT : TwbSignature = 'BMDT';
- BNAM : TwbSignature = 'BNAM';
- BOOK : TwbSignature = 'BOOK';
- BPND : TwbSignature = 'BPND';
- BPNI : TwbSignature = 'BPNI';
- BPNN : TwbSignature = 'BPNN';
- BPNT : TwbSignature = 'BPNT';
- BPTD : TwbSignature = 'BPTD';
- BPTN : TwbSignature = 'BPTN';
- BTXT : TwbSignature = 'BTXT';
- CAMS : TwbSignature = 'CAMS';
- CELL : TwbSignature = 'CELL';
- CLAS : TwbSignature = 'CLAS';
- CLMT : TwbSignature = 'CLMT';
- CNAM : TwbSignature = 'CNAM';
- MMRK : TwbSignature = 'MMRK';
- CNTO : TwbSignature = 'CNTO';
- COBJ : TwbSignature = 'COBJ';
- COED : TwbSignature = 'COED';
- CONT : TwbSignature = 'CONT';
- CPTH : TwbSignature = 'CPTH';
- CRDT : TwbSignature = 'CRDT';
- CREA : TwbSignature = 'CREA';
- CSAD : TwbSignature = 'CSAD';
- CSCR : TwbSignature = 'CSCR';
- CSDC : TwbSignature = 'CSDC';
- CSDI : TwbSignature = 'CSDI';
- CSDT : TwbSignature = 'CSDT';
- CSSD : TwbSignature = 'CSSD';
- CSTD : TwbSignature = 'CSTD';
- CSTY : TwbSignature = 'CSTY';
- CTDA : TwbSignature = 'CTDA';
- DATA : TwbSignature = 'DATA';
- DAT2 : TwbSignature = 'DAT2';
- DEBR : TwbSignature = 'DEBR';
- DELE : TwbSignature = 'DELE';
- DESC : TwbSignature = 'DESC';
- DEST : TwbSignature = 'DEST';
- DIAL : TwbSignature = 'DIAL';
- DMDL : TwbSignature = 'DMDL';
- DMDT : TwbSignature = 'DMDT';
- DNAM : TwbSignature = 'DNAM';
- DOBJ : TwbSignature = 'DOBJ';
- DODT : TwbSignature = 'DODT';
- DOOR : TwbSignature = 'DOOR';
- DSTD : TwbSignature = 'DSTD';
- DSTF : TwbSignature = 'DSTF';
- EAMT : TwbSignature = 'EAMT';
- ECZN : TwbSignature = 'ECZN';
- EDID : TwbSignature = 'EDID';
- EFID : TwbSignature = 'EFID';
- EFIT : TwbSignature = 'EFIT';
- EFSD : TwbSignature = 'EFSD';
- EFSH : TwbSignature = 'EFSH';
- EITM : TwbSignature = 'EITM';
- ENAM : TwbSignature = 'ENAM';
- ENCH : TwbSignature = 'ENCH';
- ENIT : TwbSignature = 'ENIT';
- EPF2 : TwbSignature = 'EPF2';
- EPF3 : TwbSignature = 'EPF3';
- EPFD : TwbSignature = 'EPFD';
- EPFT : TwbSignature = 'EPFT';
- ESCE : TwbSignature = 'ESCE';
- ETYP : TwbSignature = 'ETYP';
- EXPL : TwbSignature = 'EXPL';
- EYES : TwbSignature = 'EYES';
- FACT : TwbSignature = 'FACT';
- FGGA : TwbSignature = 'FGGA';
- FGGS : TwbSignature = 'FGGS';
- FGTS : TwbSignature = 'FGTS';
- FLST : TwbSignature = 'FLST';
- FLTV : TwbSignature = 'FLTV';
- FNAM : TwbSignature = 'FNAM';
- FULL : TwbSignature = 'FULL';
- FURN : TwbSignature = 'FURN';
- GLOB : TwbSignature = 'GLOB';
- RDID : TwbSignature = 'RDID';
- RDSI : TwbSignature = 'RDSI';
- RDSB : TwbSignature = 'RDSB';
- GMST : TwbSignature = 'GMST';
- GNAM : TwbSignature = 'GNAM';
- GRAS : TwbSignature = 'GRAS';
- HAIR : TwbSignature = 'HAIR';
- HCLR : TwbSignature = 'HCLR';
- HDPT : TwbSignature = 'HDPT';
- HEDR : TwbSignature = 'HEDR';
- HNAM : TwbSignature = 'HNAM';
- ICO2 : TwbSignature = 'ICO2';
- ICON : TwbSignature = 'ICON';
- IDLA : TwbSignature = 'IDLA';
- IDLB : TwbSignature = 'IDLB';
- IDLC : TwbSignature = 'IDLC';
- IDLE : TwbSignature = 'IDLE';
- IDLF : TwbSignature = 'IDLF';
- IDLM : TwbSignature = 'IDLM';
- IDLT : TwbSignature = 'IDLT';
- IMAD : TwbSignature = 'IMAD';
- IMGS : TwbSignature = 'IMGS';
- INAM : TwbSignature = 'INAM';
- INDX : TwbSignature = 'INDX';
- INFO : TwbSignature = 'INFO';
- INGR : TwbSignature = 'INGR';
- IPCT : TwbSignature = 'IPCT';
- IPDS : TwbSignature = 'IPDS';
- ITXT : TwbSignature = 'ITXT';
- JNAM : TwbSignature = 'JNAM';
- KEYM : TwbSignature = 'KEYM';
- KFFZ : TwbSignature = 'KFFZ';
- KNAM : TwbSignature = 'KNAM';
- LAND : TwbSignature = 'LAND';
- LGTM : TwbSignature = 'LGTM';
- LIGH : TwbSignature = 'LIGH';
- LNAM : TwbSignature = 'LNAM';
- LSCR : TwbSignature = 'LSCR';
- LTEX : TwbSignature = 'LTEX';
- LTMP : TwbSignature = 'LTMP';
- LVLC : TwbSignature = 'LVLC';
- LVLD : TwbSignature = 'LVLD';
- LVLF : TwbSignature = 'LVLF';
- LVLG : TwbSignature = 'LVLG';
- LVLI : TwbSignature = 'LVLI';
- LVLN : TwbSignature = 'LVLN';
- LVLO : TwbSignature = 'LVLO';
- MAST : TwbSignature = 'MAST';
- MESG : TwbSignature = 'MESG';
- MGEF : TwbSignature = 'MGEF';
- MICN : TwbSignature = 'MICN';
- MICO : TwbSignature = 'MICO';
- MIC2 : TwbSignature = 'MIC2';
- MISC : TwbSignature = 'MISC';
- MNAM : TwbSignature = 'MNAM';
- MO2B : TwbSignature = 'MO2B';
- MO2S : TwbSignature = 'MO2S';
- MO2T : TwbSignature = 'MO2T';
- MO3B : TwbSignature = 'MO3B';
- MO3S : TwbSignature = 'MO3S';
- MO3T : TwbSignature = 'MO3T';
- MO4B : TwbSignature = 'MO4B';
- MO4S : TwbSignature = 'MO4S';
- MO4T : TwbSignature = 'MO4T';
- MOD2 : TwbSignature = 'MOD2';
- VANM : TwbSignature = 'VANM';
- MOD3 : TwbSignature = 'MOD3';
- MOD4 : TwbSignature = 'MOD4';
- MODB : TwbSignature = 'MODB';
- MODD : TwbSignature = 'MODD';
- MODL : TwbSignature = 'MODL';
- MODS : TwbSignature = 'MODS';
- MODT : TwbSignature = 'MODT';
- MOSD : TwbSignature = 'MOSD';
- MSTT : TwbSignature = 'MSTT';
- MUSC : TwbSignature = 'MUSC';
- IMPS : TwbSignature = 'IMPS';
- IMPF : TwbSignature = 'IMPF';
- NAM0 : TwbSignature = 'NAM0';
- NAM1 : TwbSignature = 'NAM1';
- NAM2 : TwbSignature = 'NAM2';
- NAM3 : TwbSignature = 'NAM3';
- NAM4 : TwbSignature = 'NAM4';
- NAM5 : TwbSignature = 'NAM5';
- NAM6 : TwbSignature = 'NAM6';
- NAM7 : TwbSignature = 'NAM7';
- NAM8 : TwbSignature = 'NAM8';
- NAM9 : TwbSignature = 'NAM9';
- NAME : TwbSignature = 'NAME';
- NAVI : TwbSignature = 'NAVI';
- NAVM : TwbSignature = 'NAVM';
- NEXT : TwbSignature = 'NEXT';
- NIFT : TwbSignature = 'NIFT';
- NIFZ : TwbSignature = 'NIFZ';
- NNAM : TwbSignature = 'NNAM';
- XSRF : TwbSignature = 'XSRF';
- XSRD : TwbSignature = 'XSRD';
- MWD1 : TwbSignature = 'MWD1';
- MWD2 : TwbSignature = 'MWD2';
- MWD3 : TwbSignature = 'MWD3';
- MWD4 : TwbSignature = 'MWD4';
- MWD5 : TwbSignature = 'MWD5';
- MWD6 : TwbSignature = 'MWD6';
- MWD7 : TwbSignature = 'MWD7';
- WNM1 : TwbSignature = 'WNM1';
- WNM2 : TwbSignature = 'WNM2';
- WNM3 : TwbSignature = 'WNM3';
- WNM4 : TwbSignature = 'WNM4';
- WNM5 : TwbSignature = 'WNM5';
- WNM6 : TwbSignature = 'WNM6';
- WNM7 : TwbSignature = 'WNM7';
- WMI1 : TwbSignature = 'WMI1';
- WMI2 : TwbSignature = 'WMI2';
- WMI3 : TwbSignature = 'WMI3';
- WMS1 : TwbSignature = 'WMS1';
- WMS2 : TwbSignature = 'WMS2';
- NOTE : TwbSignature = 'NOTE';
- NPC_ : TwbSignature = 'NPC_';
- NULL : TwbSignature = 'NULL';
- NVCA : TwbSignature = 'NVCA';
- NVCI : TwbSignature = 'NVCI';
- NVDP : TwbSignature = 'NVDP';
- NVER : TwbSignature = 'NVER';
- NVEX : TwbSignature = 'NVEX';
- NVGD : TwbSignature = 'NVGD';
- NVMI : TwbSignature = 'NVMI';
- NVTR : TwbSignature = 'NVTR';
- NVVX : TwbSignature = 'NVVX';
- OBND : TwbSignature = 'OBND';
- OFST : TwbSignature = 'OFST';
- ONAM : TwbSignature = 'ONAM';
- PACK : TwbSignature = 'PACK';
- PBEA : TwbSignature = 'PBEA';
- PERK : TwbSignature = 'PERK';
- PFIG : TwbSignature = 'PFIG';
- PFPC : TwbSignature = 'PFPC';
- PGAG : TwbSignature = 'PGAG';
- PGRE : TwbSignature = 'PGRE';
- PMIS : TwbSignature = 'PMIS';
- TRGT : TwbSignature = 'TRGT';
- PGRI : TwbSignature = 'PGRI';
- PGRL : TwbSignature = 'PGRL';
- PGRP : TwbSignature = 'PGRP';
- PGRR : TwbSignature = 'PGRR';
- PKAM : TwbSignature = 'PKAM';
- PKDD : TwbSignature = 'PKDD';
- PKDT : TwbSignature = 'PKDT';
- PKE2 : TwbSignature = 'PKE2';
- PKED : TwbSignature = 'PKED';
- PKFD : TwbSignature = 'PKFD';
- PKID : TwbSignature = 'PKID';
- PKPT : TwbSignature = 'PKPT';
- PKW3 : TwbSignature = 'PKW3';
- PLD2 : TwbSignature = 'PLD2';
- PLDT : TwbSignature = 'PLDT';
- PLYR : TwbSignature = 'PLYR';
- PNAM : TwbSignature = 'PNAM';
- TDUM : TwbSignature = 'TDUM';
- POBA : TwbSignature = 'POBA';
- POCA : TwbSignature = 'POCA';
- POEA : TwbSignature = 'POEA';
- PRKC : TwbSignature = 'PRKC';
- PRKE : TwbSignature = 'PRKE';
- PRKF : TwbSignature = 'PRKF';
- PROJ : TwbSignature = 'PROJ';
- PSDT : TwbSignature = 'PSDT';
- PTD2 : TwbSignature = 'PTD2';
- PTDT : TwbSignature = 'PTDT';
- PUID : TwbSignature = 'PUID';
- PWAT : TwbSignature = 'PWAT';
- QNAM : TwbSignature = 'QNAM';
- RCIL : TwbSignature = 'RCIL';
- RCQY : TwbSignature = 'RCQY';
- RCOD : TwbSignature = 'RCOD';
- QOBJ : TwbSignature = 'QOBJ';
- QSDT : TwbSignature = 'QSDT';
- QSTA : TwbSignature = 'QSTA';
- QSTI : TwbSignature = 'QSTI';
- TPIC : TwbSignature = 'TPIC';
- QSTR : TwbSignature = 'QSTR';
- INFC : TwbSignature = 'INFC';
- INFX : TwbSignature = 'INFX';
- QUST : TwbSignature = 'QUST';
- RACE : TwbSignature = 'RACE';
- RADS : TwbSignature = 'RADS';
- RAFB : TwbSignature = 'RAFB';
- RAFD : TwbSignature = 'RAFD';
- RAGA : TwbSignature = 'RAGA';
- RAPS : TwbSignature = 'RAPS';
- RCLR : TwbSignature = 'RCLR';
- RDAT : TwbSignature = 'RDAT';
- RDMD : TwbSignature = 'RDMD';
- RDMO : TwbSignature = 'RDMO';
- RDMP : TwbSignature = 'RDMP';
- RDGS : TwbSignature = 'RDGS';
- RDOT : TwbSignature = 'RDOT';
- RDSD : TwbSignature = 'RDSD';
- RDWT : TwbSignature = 'RDWT';
- REFR : TwbSignature = 'REFR';
- REGN : TwbSignature = 'REGN';
- REPL : TwbSignature = 'REPL';
- RGDL : TwbSignature = 'RGDL';
- RNAM : TwbSignature = 'RNAM';
- RPLD : TwbSignature = 'RPLD';
- RPLI : TwbSignature = 'RPLI';
- SCDA : TwbSignature = 'SCDA';
- SCHR : TwbSignature = 'SCHR';
- SCOL : TwbSignature = 'SCOL';
- SCPT : TwbSignature = 'SCPT';
- SCRI : TwbSignature = 'SCRI';
- SCRN : TwbSignature = 'SCRN';
- SCRO : TwbSignature = 'SCRO';
- SCRV : TwbSignature = 'SCRV';
- SCTX : TwbSignature = 'SCTX';
- SCVR : TwbSignature = 'SCVR';
- SLCP : TwbSignature = 'SLCP';
- SLSD : TwbSignature = 'SLSD';
- SNAM : TwbSignature = 'SNAM';
- SNDD : TwbSignature = 'SNDD';
- SNDX : TwbSignature = 'SNDX';
- SOUL : TwbSignature = 'SOUL';
- SOUN : TwbSignature = 'SOUN';
- SPEL : TwbSignature = 'SPEL';
- SPIT : TwbSignature = 'SPIT';
- SPLO : TwbSignature = 'SPLO';
- STAT : TwbSignature = 'STAT';
- BRUS : TwbSignature = 'BRUS';
- TACT : TwbSignature = 'TACT';
- TCLF : TwbSignature = 'TCLF';
- TCFU : TwbSignature = 'TCFU';
- TCLT : TwbSignature = 'TCLT';
- TERM : TwbSignature = 'TERM';
- TES4 : TwbSignature = 'TES4';
- TNAM : TwbSignature = 'TNAM';
- TPLT : TwbSignature = 'TPLT';
- TRDT : TwbSignature = 'TRDT';
- TREE : TwbSignature = 'TREE';
- TX00 : TwbSignature = 'TX00';
- TX01 : TwbSignature = 'TX01';
- INTV : TwbSignature = 'INTV';
- TX02 : TwbSignature = 'TX02';
- TX03 : TwbSignature = 'TX03';
- TX04 : TwbSignature = 'TX04';
- TX05 : TwbSignature = 'TX05';
- TXST : TwbSignature = 'TXST';
- UNAM : TwbSignature = 'UNAM';
- VATS : TwbSignature = 'VATS';
- VCLR : TwbSignature = 'VCLR';
- VHGT : TwbSignature = 'VHGT';
- VNAM : TwbSignature = 'VNAM';
- VNML : TwbSignature = 'VNML';
- VTCK : TwbSignature = 'VTCK';
- VTEX : TwbSignature = 'VTEX';
- VTXT : TwbSignature = 'VTXT';
- VTYP : TwbSignature = 'VTYP';
- WATR : TwbSignature = 'WATR';
- WEAP : TwbSignature = 'WEAP';
- WLST : TwbSignature = 'WLST';
- WNAM : TwbSignature = 'WNAM';
- XATO : TwbSignature = 'XATO';
- WRLD : TwbSignature = 'WRLD';
- WTHR : TwbSignature = 'WTHR';
- XACT : TwbSignature = 'XACT';
- XAMC : TwbSignature = 'XAMC';
- XAMT : TwbSignature = 'XAMT';
- XAPD : TwbSignature = 'XAPD';
- XAPR : TwbSignature = 'XAPR';
- XCAS : TwbSignature = 'XCAS';
- XCCM : TwbSignature = 'XCCM';
- XCET : TwbSignature = 'XCET';
- XCHG : TwbSignature = 'XCHG';
- XCIM : TwbSignature = 'XCIM';
- XCLC : TwbSignature = 'XCLC';
- XCLL : TwbSignature = 'XCLL';
- XCLP : TwbSignature = 'XCLP';
- XCLR : TwbSignature = 'XCLR';
- XCLW : TwbSignature = 'XCLW';
- XCMO : TwbSignature = 'XCMO';
- XCMT : TwbSignature = 'XCMT';
- XCNT : TwbSignature = 'XCNT';
- XCWT : TwbSignature = 'XCWT';
- XEMI : TwbSignature = 'XEMI';
- XESP : TwbSignature = 'XESP';
- XEZN : TwbSignature = 'XEZN';
- XGLB : TwbSignature = 'XGLB';
- XHLP : TwbSignature = 'XHLP';
- XDCR : TwbSignature = 'XDCR';
- XHLT : TwbSignature = 'XHLT';
- XIBS : TwbSignature = 'XIBS';
- XLCM : TwbSignature = 'XLCM';
- XLKR : TwbSignature = 'XLKR';
- XLOC : TwbSignature = 'XLOC';
- XLOD : TwbSignature = 'XLOD';
- XLRM : TwbSignature = 'XLRM';
- XLTW : TwbSignature = 'XLTW';
- XMBO : TwbSignature = 'XMBO';
- XMBP : TwbSignature = 'XMBP';
- XMBR : TwbSignature = 'XMBR';
- XMRC : TwbSignature = 'XMRC';
- XMRK : TwbSignature = 'XMRK';
- XNAM : TwbSignature = 'XNAM';
- XNDP : TwbSignature = 'XNDP';
- XOCP : TwbSignature = 'XOCP';
- XORD : TwbSignature = 'XORD';
- XOWN : TwbSignature = 'XOWN';
- XPOD : TwbSignature = 'XPOD';
- XPTL : TwbSignature = 'XPTL';
- XPPA : TwbSignature = 'XPPA';
- XPRD : TwbSignature = 'XPRD';
- XPRM : TwbSignature = 'XPRM';
- XPWR : TwbSignature = 'XPWR';
- XRAD : TwbSignature = 'XRAD';
- XRDO : TwbSignature = 'XRDO';
- XRDS : TwbSignature = 'XRDS';
- XRGB : TwbSignature = 'XRGB';
- XRGD : TwbSignature = 'XRGD';
- XRMR : TwbSignature = 'XRMR';
- XRNK : TwbSignature = 'XRNK';
- XRTM : TwbSignature = 'XRTM';
- XSCL : TwbSignature = 'XSCL';
- XSED : TwbSignature = 'XSED';
- XTEL : TwbSignature = 'XTEL';
- XTRG : TwbSignature = 'XTRG';
- XTRI : TwbSignature = 'XTRI';
- XXXX : TwbSignature = 'XXXX';
- YNAM : TwbSignature = 'YNAM';
- ZNAM : TwbSignature = 'ZNAM';
- IMOD : TwbSignature = 'IMOD';
- REPU : TwbSignature = 'REPU';
- RCPE : TwbSignature = 'RCPE';
- RCCT : TwbSignature = 'RCCT';
- CHIP : TwbSignature = 'CHIP';
- CSNO : TwbSignature = 'CSNO';
- LSCT : TwbSignature = 'LSCT';
- MSET : TwbSignature = 'MSET';
- ALOC : TwbSignature = 'ALOC';
- CHAL : TwbSignature = 'CHAL';
- AMEF : TwbSignature = 'AMEF';
- CCRD : TwbSignature = 'CCRD';
- CARD : TwbSignature = 'CARD';
- CMNY : TwbSignature = 'CMNY';
- CDCK : TwbSignature = 'CDCK';
- DEHY : TwbSignature = 'DEHY';
- HUNG : TwbSignature = 'HUNG';
- SLPD : TwbSignature = 'SLPD';
-
-var
- wbPKDTSpecificFlagsUnused : Boolean;
- wbEDID: IwbSubRecordDef;
- wbEDIDReq: IwbSubRecordDef;
- wbBMDT: IwbSubRecordDef;
- wbYNAM: IwbSubRecordDef;
- wbZNAM: IwbSubRecordDef;
- wbCOED: IwbSubRecordDef;
- wbXLCM: IwbSubRecordDef;
- wbEITM: IwbSubRecordDef;
- wbREPL: IwbSubRecordDef;
- wbBIPL: IwbSubRecordDef;
- wbOBND: IwbSubRecordDef;
- wbOBNDReq: IwbSubRecordDef;
- wbDEST: IwbSubRecordStructDef;
- wbDESTActor: IwbSubRecordStructDef;
- wbDODT: IwbSubRecordDef;
- wbXOWN: IwbSubRecordDef;
- wbXGLB: IwbSubRecordDef;
- wbXRGD: IwbSubRecordDef;
- wbXRGB: IwbSubRecordDef;
- wbSLSD: IwbSubRecordDef;
- wbSPLO: IwbSubRecordDef;
- wbSPLOs: IwbSubRecordArrayDef;
- wbCNTO: IwbSubRecordStructDef;
- wbCNTOs: IwbSubRecordArrayDef;
- wbAIDT: IwbSubRecordDef;
- wbCSDT: IwbSubRecordStructDef;
- wbCSDTs: IwbSubRecordArrayDef;
- wbFULL: IwbSubRecordDef;
- wbFULLActor: IwbSubRecordDef;
- wbFULLReq: IwbSubRecordDef;
- wbXNAM: IwbSubRecordDef;
- wbXNAMs: IwbSubRecordArrayDef;
- wbDESC: IwbSubRecordDef;
- wbDESCReq: IwbSubRecordDef;
- wbXSCL: IwbSubRecordDef;
- wbDATAPosRot : IwbSubRecordDef;
- wbPosRot : IwbStructDef;
- wbMODD: IwbSubRecordDef;
- wbMOSD: IwbSubRecordDef;
- wbMODL: IwbSubRecordStructDef;
- wbMODS: IwbSubRecordDef;
- wbMO2S: IwbSubRecordDef;
- wbMO3S: IwbSubRecordDef;
- wbMO4S: IwbSubRecordDef;
- wbMODLActor: IwbSubRecordStructDef;
- wbMODLReq: IwbSubRecordStructDef;
- wbCTDA: IwbSubRecordDef;
- wbSCHRReq: IwbSubRecordDef;
- wbCTDAs: IwbSubRecordArrayDef;
- wbCTDAsReq: IwbSubRecordArrayDef;
- wbSCROs: IwbSubRecordArrayDef;
- wbPGRP: IwbSubRecordDef;
- wbEmbeddedScript: IwbSubRecordStructDef;
- wbEmbeddedScriptPerk: IwbSubRecordStructDef;
- wbEmbeddedScriptReq: IwbSubRecordStructDef;
- wbSCRI: IwbSubRecordDef;
- wbSCRIActor: IwbSubRecordDef;
- wbFaceGen: IwbSubRecordStructDef;
- wbFaceGenNPC: IwbSubRecordStructDef;
- wbENAM: IwbSubRecordDef;
- wbFGGS: IwbSubRecordDef;
- wbXLOD: IwbSubRecordDef;
- wbXESP: IwbSubRecordDef;
- wbICON: IwbSubRecordStructDef;
- wbICONReq: IwbSubRecordStructDef;
- wbActorValue: IwbIntegerDef;
- wbETYP: IwbSubRecordDef;
- wbETYPReq: IwbSubRecordDef;
- wbEFID: IwbSubRecordDef;
- wbEFIT: IwbSubRecordDef;
- wbEffects: IwbSubRecordArrayDef;
- wbEffectsReq: IwbSubRecordArrayDef;
- wbBPNDStruct: IwbSubRecordDef;
- wbTimeInterpolator: IwbStructDef;
- wbColorInterpolator: IwbStructDef;
-
-function wbNVTREdgeToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Index : Integer;
- Flags : Cardinal;
- IsExternal : Boolean;
- Container : IwbContainerElementRef;
-begin
- Result := '';
- IsExternal := False;
- if Supports(aElement, IwbContainerElementRef, Container) then begin
- Index := StrToIntDef(Copy(Container.Name, 11, 1), -1);
- if (Index >= 0) and (Index <= 2) then begin
- Flags := Container.ElementNativeValues['..\..\Flags'];
- IsExternal := Flags and (Cardinal(1) shl Index) <> 0;
- end;
- end;
-
- if IsExternal then begin
- case aType of
- ctToStr: begin
- Result := IntToStr(aInt);
- if Container.ElementExists['..\..\..\..\NVEX\Connection #' + IntToStr(aInt)] then
- Result := Result + ' (Triangle #' +
- Container.ElementValues['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Triangle'] + ' in ' +
- Container.ElementValues['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Navigation Mesh'] + ')'
- else
- Result := Result + ' ';
- end;
- ctToSortKey:
- if Container.ElementExists['..\..\..\..\NVEX\Connection #' + IntToStr(aInt)] then
- Result :=
- Container.ElementSortKeys['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Navigation Mesh', True] + '|' +
- Container.ElementSortKeys['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Triangle', True];
- ctCheck:
- if Container.ElementExists['..\..\..\..\NVEX\Connection #' + IntToStr(aInt)] then
- Result := ''
- else
- Result := 'NVEX\Connection #' + IntToStr(aInt) + ' is missing';
- end
- end else
- case aType of
- ctToStr: Result := IntToStr(aInt);
- end;
-end;
-
-function wbNVTREdgeToInt(const aString: string; const aElement: IwbElement): Int64;
-begin
- Result := StrToInt64(aString);
-end;
-
-
-function wbEPFDActorValueToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- AsCardinal : Cardinal;
- AsFloat : Single;
-begin
- AsCardinal := aInt;
- AsFloat := PSingle(@AsCardinal)^;
- aInt := Round(AsFloat);
- case aType of
- ctToStr: Result := wbActorValueEnum.ToString(aInt, aElement);
- ctToSortKey: Result := wbActorValueEnum.ToSortKey(aInt, aElement);
- ctCheck: Result := wbActorValueEnum.Check(aInt, aElement);
- ctToEditValue: Result := wbActorValueEnum.ToEditValue(aInt, aElement);
- ctEditType: Result := 'ComboBox';
- ctEditInfo: Result := wbActorValueEnum.EditInfo[aInt, aElement];
- end;
-end;
-
-function wbEPFDActorValueToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- AsCardinal : Cardinal;
- AsFloat : Single;
-begin
- AsFloat := wbActorValueEnum.FromEditValue(aString, aElement);
- PSingle(@AsCardinal)^ := AsFloat;
- Result := AsCardinal;
-end;
-
-function wbCTDAParam2VariableNameToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- //Container2 : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
- ScriptRef : IwbElement;
- Script : IwbMainRecord;
- Variables : TStringList;
- LocalVars : IwbContainerElementRef;
- LocalVar : IwbContainerElementRef;
- i, j : Integer;
- s : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- MainRecord := nil;
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-{ if Param1.NativeValue = 0 then
- if Supports(Container.Container, IwbContainerElementRef, Container) then
- for i := 0 to Pred(Container.ElementCount) do
- if Supports(Container.Elements[i], IwbContainerElementRef, Container2) then
- if SameText(Container2.ElementValues['Function'], 'GetIsID') then begin
- Param1 := Container2.ElementByName['Parameter #1'];
- if Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Break;
- end;}
-
- if not Assigned(MainRecord) then
- Exit;
-
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) then
- MainRecord := BaseRecord;
-
- ScriptRef := MainRecord.RecordBySignature['SCRI'];
-
- if not Assigned(ScriptRef) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- if not Supports(ScriptRef.LinksTo, IwbMainRecord, Script) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- Script := Script.HighestOverrideOrSelf[aElement._File.LoadOrder];
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- Variables := TStringList.Create;
- else
- Variables := nil;
- end;
- try
- if Supports(Script.ElementByName['Local Variables'], IwbContainerElementRef, LocalVars) then begin
- for i := 0 to Pred(LocalVars.ElementCount) do
- if Supports(LocalVars.Elements[i], IwbContainerElementRef, LocalVar) then begin
- j := LocalVar.ElementNativeValues['SLSD\Index'];
- s := LocalVar.ElementNativeValues['SCVR'];
- if Assigned(Variables) then
- Variables.AddObject(s, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := s;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- Variables.Sort;
- Result := Variables.CommaText;
- end;
- end;
- finally
- FreeAndNil(Variables);
- end;
-end;
-
-function wbCTDAParam2VariableNameToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
- ScriptRef : IwbElement;
- Script : IwbMainRecord;
- LocalVars : IwbContainerElementRef;
- LocalVar : IwbContainerElementRef;
- i, j : Integer;
- s : string;
-begin
- Result := StrToInt64Def(aString, Low(Cardinal));
- if Result <> Low(Cardinal) then
- Exit;
-
- if not Assigned(aElement) then
- raise Exception.Create('aElement not specified');
-
- Container := GetContainerRefFromUnionOrValue(aElement);
-
- if not Assigned(Container) then
- raise Exception.Create('Container not assigned');
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- raise Exception.Create('Could not find "Parameter #1"');
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- raise Exception.Create('"Parameter #1" does not reference a valid main record');
-
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) then
- MainRecord := BaseRecord;
-
- ScriptRef := MainRecord.RecordBySignature['SCRI'];
-
- if not Assigned(ScriptRef) then
- raise Exception.Create('"'+MainRecord.ShortName+'" does not contain a SCRI subrecord');
-
- if not Supports(ScriptRef.LinksTo, IwbMainRecord, Script) then
- raise Exception.Create('"'+MainRecord.ShortName+'" does not have a valid script');
-
- Script := Script.HighestOverrideOrSelf[aElement._File.LoadOrder];
-
- if Supports(Script.ElementByName['Local Variables'], IwbContainerElementRef, LocalVars) then begin
- for i := 0 to Pred(LocalVars.ElementCount) do
- if Supports(LocalVars.Elements[i], IwbContainerElementRef, LocalVar) then begin
- j := LocalVar.ElementNativeValues['SLSD\Index'];
- s := LocalVar.ElementNativeValues['SCVR'];
- if SameText(s, Trim(aString)) then begin
- Result := j;
- Exit;
- end;
- end;
- end;
-
- raise Exception.Create('Variable "'+aString+'" was not found in "'+MainRecord.ShortName+'"');
-end;
-
-function wbCTDAParam2QuestStageToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Stages : IwbContainerElementRef;
- Stage : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Stages'], IwbContainerElementRef, Stages) then begin
- for i := 0 to Pred(Stages.ElementCount) do
- if Supports(Stages.Elements[i], IwbContainerElementRef, Stage) then begin
- j := Stage.ElementNativeValues['INDX'];
- s := Trim(Stage.ElementValues['Log Entries\Log Entry\CNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbPerkDATAQuestStageToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Stages : IwbContainerElementRef;
- Stage : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Quest'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Stages'], IwbContainerElementRef, Stages) then begin
- for i := 0 to Pred(Stages.ElementCount) do
- if Supports(Stages.Elements[i], IwbContainerElementRef, Stage) then begin
- j := Stage.ElementNativeValues['INDX'];
- s := Trim(Stage.ElementValues['Log Entries\Log Entry\CNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbCTDAParam2QuestObjectiveToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Objectives : IwbContainerElementRef;
- Objective : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Objectives'], IwbContainerElementRef, Objectives) then begin
- for i := 0 to Pred(Objectives.ElementCount) do
- if Supports(Objectives.Elements[i], IwbContainerElementRef, Objective) then begin
- j := Objective.ElementNativeValues['QOBJ'];
- s := Trim(Objective.ElementValues['NNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbCTDAParam2QuestStageToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i : Integer;
- s : string;
-begin
- i := 1;
- s := Trim(aString);
- while (i <= Length(s)) and (s[i] in ['0'..'9']) do
- Inc(i);
- s := Copy(s, 1, Pred(i));
-
- Result := StrToInt(s);
-end;
-
-function wbCTDAParam2QuestObjectiveToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i : Integer;
- s : string;
-begin
- i := 1;
- s := Trim(aString);
- while (i <= Length(s)) and (s[i] in ['0'..'9']) do
- Inc(i);
- s := Copy(s, 1, Pred(i));
-
- Result := StrToInt(s);
-end;
-
-
-function wbClmtMoonsPhaseLength(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- PhaseLength : Byte;
- Masser : Boolean;
- Secunda : Boolean;
-begin
- Result := '';
- if aType = ctToSortKey then begin
- Result := IntToHex64(aInt, 2);
- end else if aType = ctToStr then begin
- PhaseLength := aInt mod 64;
- Masser := (aInt and 64) <> 0;
- Secunda := (aInt and 128) <> 0;
- if Masser then
- if Secunda then
- Result := 'Masser, Secunda / '
- else
- Result := 'Masser / '
- else
- if Secunda then
- Result := 'Secunda / '
- else
- Result := 'No Moon / ';
- Result := Result + IntToStr(PhaseLength);
- end;
-end;
-
-function wbClmtTime(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- Result := TimeToStr( EncodeTime(aInt div 6, (aInt mod 6) * 10, 0, 0) )
- else
- Result := '';
-end;
-
-function wbAlocTime(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- Result := TimeToStr( aInt / 256 )
- else
- Result := '';
-end;
-
-function wbREFRNavmeshTriangleToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Navmesh : IwbElement;
- MainRecord : IwbMainRecord;
- Triangles : IwbContainerElementRef;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt);
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Navmesh := Container.Elements[0];
-
- if not Assigned(Navmesh) then
- Exit;
-
- if not Supports(Navmesh.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> NAVM then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- if not wbSimpleRecords and (aType = ctCheck) and Supports(MainRecord.ElementByPath['NVTR'], IwbContainerElementRef, Triangles) then
- if aInt >= Triangles.ElementCount then
- Result := '';
-end;
-
-function wbStringToInt(const aString: string; const aElement: IwbElement): Int64;
-begin
- Result := StrToIntDef(aString, 0);
-end;
-
-
-var
- wbCtdaTypeFlags : IwbFlagsDef;
-
-function wbCtdaTypeToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- s: string;
-begin
- Result := '';
- case aType of
- ctEditType:
- Result := 'CheckComboBox';
- ctEditInfo:
- Result := 'Equal,Greater,Lesser,Or,"Use Global","Run on Target"';
- ctToEditValue: begin
- Result := '000000';
- case aInt and $F0 of
- $00 : Result[1] := '1';
- $40 : Result[2] := '1';
- $60 : begin
- Result[1] := '1';
- Result[2] := '1';
- end;
- $80 : Result[3] := '1';
- $A0 : begin
- Result[1] := '1';
- Result[3] := '1';
- end;
- end;
- if (aInt and $01) <> 0 then
- Result[4] := '1';
- if (aInt and $02) <> 0 then
- Result[6] := '1';
- if (aInt and $04) <> 0 then
- Result[5] := '1';
- end;
- ctToStr: begin
- case aInt and $F0 of
- $00 : Result := 'Equal to';
- $20 : Result := 'Not equal to';
- $40 : Result := 'Greater than';
- $60 : Result := 'Greater than or equal to';
- $80 : Result := 'Less than';
- $A0 : Result := 'Less than or equal to';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.ToString(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: begin
- case aInt and $F0 of
- $00, $20, $40, $60, $80, $A0 : Result := '';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.Check(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- end;
-end;
-
-function wbCtdaTypeToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- s: string;
-begin
- s := aString + '000000';
-// Result := 0;
- if s[1] = '1' then begin
- if s[2] = '1' then begin
- if s[3] = '1' then begin
- Result := $00;
- end else begin
- Result := $60;
- end;
- end else begin
- if s[3] = '1' then begin
- Result := $A0;
- end else begin
- Result := $00;
- end;
- end;
- end else begin
- if s[2] = '1' then begin
- if s[3] = '1' then begin
- Result := $20;
- end else begin
- Result := $40;
- end;
- end else begin
- if s[3] = '1' then begin
- Result := $80;
- end else begin
- Result := $20;
- end;
- end;
- end;
- if s[4] = '1' then
- Result := Result or $01;
- if s[6] = '1' then
- Result := Result or $02;
- if s[5] = '1' then
- Result := Result or $04;
-end;
-
-procedure wbHeadPartsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainerElementRef;
-begin
- if wbBeginInternalEdit then try
- if Supports(aElement, IwbContainerElementRef, Container) then
- if (Container.Elements[0].NativeValue = 1) and (Container.ElementCount > 2) then
- Container.RemoveElement(1);
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMESGDNAMAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : Integer;
- Container : IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := Integer(aOldValue) and 1;
- NewValue := Integer(aNewValue) and 1;
- if NewValue = OldValue then
- Exit;
- if NewValue = 1 then
- Container.RemoveElement('TNAM')
- else
- Container.Add('TNAM', True);
- end;
-end;
-
-procedure wbGMSTEDIDAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : string;
- Container : IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := aOldValue;
- NewValue := aNewValue;
- if (Length(OldValue) < 1) or (Length(OldValue) < 1) or (OldValue[1] <> NewValue[1]) then begin
- Container.RemoveElement('DATA');
- Container.Add('DATA', True);
- end;
- end;
-end;
-
-procedure wbFLSTEDIDAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : string;
- OldOrdered, NewOrdered : Boolean;
- Container : IwbContainerElementRef;
-const
- OrderedList = 'OrderedList';
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := aOldValue;
- NewValue := aNewValue;
-
- if Length(OldValue) > Length(OrderedList) then
- Delete(OldValue, 1, Length(OldValue)-Length(OrderedList));
- if Length(NewValue) > Length(OrderedList) then
- Delete(NewValue, 1, Length(NewValue)-Length(OrderedList));
-
- OldOrdered := SameText(OldValue, OrderedList);
- NewOrdered := SameText(NewValue, OrderedList);
-
- if OldOrdered <> NewOrdered then
- Container.RemoveElement('FormIDs');
- end;
-end;
-
-procedure wbCtdaTypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue: Integer;
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- OldValue := aOldValue and $04;
- NewValue := aNewValue and $04;
- if OldValue <> NewValue then
- Container.ElementNativeValues['..\Comparison Value'] := 0;
-
- if aNewValue and $02 then begin
- Container.ElementNativeValues['..\Run On'] := 1;
- if Integer(Container.ElementNativeValues['..\Run On']) = 1 then
- aElement.NativeValue := Byte(aNewValue) and not $02;
- end;
-end;
-
-function wbMODTCallback(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Strings: TDynStrings;
- i: Integer;
-begin
- Result := '';
- if wbLoaderDone and (aType in [ctToStr, ctToSortKey] ) then begin
- Strings := wbContainerHandler.ResolveHash(aInt);
- for i := Low(Strings) to High(Strings) do
- Result := Result + Strings[i] + ', ';
- SetLength(Result, Length(Result) -2 );
- end;
-end;
-
-
-function wbIdleAnam(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not $C0 of
- 0: Result := 'Idle';
- 1: Result := 'Movement';
- 2: Result := 'Left Arm';
- 3: Result := 'Left Hand';
- 4: Result := 'Weapon';
- 5: Result := 'Weapon Up';
- 6: Result := 'Weapon Down';
- 7: Result := 'Special Idle';
- 20: Result := 'Whole Body';
- 21: Result := 'Upper Body';
- else
- Result := '';
- end;
-
- if (aInt and $80) = 0 then
- Result := Result + ', Must return a file';
- if (aInt and $40) = 1 then
- Result := Result + ', Unknown Flag';
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- end;
- ctCheck: begin
- case aInt and not $C0 of
- 0..7, 20, 21: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbScaledInt4ToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-const
- PlusMinus : array[Boolean] of string = ('+', '-');
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- ctToSortKey: begin
- Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- if Length(Result) < 22 then
- Result := StringOfChar('0', 22 - Length(Result)) + Result;
- Result := PlusMinus[aInt < 0] + Result;
- end;
- ctCheck: Result := '';
- end;
-end;
-
-function wbScaledInt4ToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- f: Extended;
-begin
- f := StrToFloat(aString);
- f := f * 10000;
- Result := Round(f);
-end;
-
-function wbHideFFFF(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- if aInt = $FFFF then
- Result := 'None'
- else
- Result := IntToStr(aInt);
-end;
-
-function wbAtxtPosition(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt div 17, 2) + IntToHex64(aInt mod 17, 2)
- else if aType = ctCheck then begin
- if (aInt < 0) or (aInt > 288) then
- Result := ''
- else
- Result := '';
- end else if aType = ctToStr then
- Result := IntToStr(aInt) + ' -> ' + IntToStr(aInt div 17) + ':' + IntToStr(aInt mod 17);
-end;
-
-function wbGLOBFNAM(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt of
- Ord('s'): Result := 'Short';
- Ord('l'): Result := 'Long';
- Ord('f'): Result := 'Float';
- else
- Result := '';
- end;
- end;
- ctToSortKey: Result := Chr(aInt);
- ctCheck: begin
- case aInt of
- Ord('s'), Ord('l'), Ord('f'): Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPlacedAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- s: string;
- Cell: IwbMainRecord;
- Position: TwbVector;
- Grid: TwbGridCell;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['NAME'];
- if Assigned(Rec) then begin
- s := Trim(Rec.Value);
- if s <> '' then
- Result := 'places ' + s;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
-
- // grid position of persistent reference in exterior persistent cell (interior cells are not persistent)
- if Supports(aMainRecord.Container, IwbGroupRecord, Container) then
- Cell := IwbGroupRecord(Container).ChildrenOf;
- if Assigned(Cell) and Cell.IsPersistent and (Cell.Signature = 'CELL') then
- if aMainRecord.GetPosition(Position) then begin
- Grid := wbPositionToGridCell(Position);
- Result := Result + ' at ' + IntToStr(Grid.x) + ',' + IntToStr(Grid.y);
- end;
- end;
- end;
-end;
-
-function wbINFOAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Container: IwbContainer;
- s: string;
-begin
- Result := Trim(aMainRecord.ElementValues['Responses\Response\NAM1']);
- if Result <> '' then
- Result := '''' + Result + '''';
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
- end;
- end;
-
- s := Trim(aMainRecord.ElementValues['QSTI']);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'for ' + s;
- end;
-end;
-
-function wbNAVMAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec : IwbRecord;
- Element : IwbElement;
- s : string;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['DATA'];
- if Assigned(Rec) then begin
- Element := Rec.ElementByName['Cell'];
- if Assigned(Element) then
- Element := Element.LinksTo;
- if Assigned(Element) then
- s := Trim(Element.Name);
- if s <> '' then
- Result := 'for ' + s;
- end;
-end;
-
-function wbCellAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- GroupRecord : IwbGroupRecord;
- s: string;
-begin
- Result := '';
-
- if not aMainRecord.IsPersistent then begin
- Rec := aMainRecord.RecordBySignature['XCLC'];
- if Assigned(Rec) then
- Result := 'at ' + Rec.Elements[0].Value + ',' + Rec.Elements[1].Value;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and not
- (Supports(Container, IwbGroupRecord, GroupRecord) and (GroupRecord.GroupType = 1)) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := wbFormID.ToString(GroupRecord.GroupLabel, aMainRecord);
- if s <> '' then begin
- if Result <> '' then
- s := s + ' ';
- Result := 'in ' + s + Result;
- end;
- end;
-end;
-
-function wbWthrDataClassification(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not 192 of
- 0: Result := 'None';
- 1: Result := 'Pleasant';
- 2: Result := 'Cloudy';
- 4: Result := 'Rainy';
- 8: Result := 'Snow';
- else
- Result := '';
- end;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2)
- end;
- ctCheck: begin
- case aInt and not 192 of
- 0, 1, 2, 4, 8: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbNOTETNAMDecide(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rDATA: IwbRecord;
-begin
- Result := 0;
- rDATA := aElement.Container.RecordBySignature[DATA];
- if Assigned(rDATA) then
- if rDATA.NativeValue = 3 then //Voice
- Result := 1;
-end;
-
-function wbNOTESNAMDecide(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rDATA: IwbRecord;
-begin
- Result := 0;
- rDATA := aElement.Container.RecordBySignature[DATA];
- if Assigned(rDATA) then
- if rDATA.NativeValue = 3 then //Voice
- Result := 1;
-end;
-
-function wbIPDSDATACount(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-begin
- if Assigned(aBasePtr) and Assigned(aEndPtr) then
- Result := (Cardinal(aBasePtr) - Cardinal(aBasePtr)) div 4
- else
- Result := 12;
-end;
-
-function wbNAVINAVMGetCount1(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- DataContainer : IwbDataContainer;
-begin
- Result := 0;
-
- if Supports(aElement, IwbDataContainer, DataContainer) then begin
- if DataContainer.ElementType = etArray then
- if not Supports(DataContainer.Container, IwbDataContainer, DataContainer) then
- Exit;
- Assert(DataContainer.Name = 'Data');
- Result := PWord(Cardinal(DataContainer.DataBasePtr) + 3*3*4)^;
- end;
-end;
-
-function wbNAVINAVMGetCount2(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- DataContainer : IwbDataContainer;
-begin
- Result := 0;
-
- if Supports(aElement, IwbDataContainer, DataContainer) then begin
- if DataContainer.ElementType = etArray then
- if not Supports(DataContainer.Container, IwbDataContainer, DataContainer) then
- Exit;
- Assert(DataContainer.Name = 'Data');
- Result := PWord(Cardinal(DataContainer.DataBasePtr) + 3*3*4 + 2)^;
- end;
-end;
-
-procedure wbCTDARunOnAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- if aOldValue <> aNewValue then
- if aNewValue <> 2 then
- aElement.Container.ElementNativeValues['Reference'] := 0;
-end;
-
-procedure wbPERKPRKETypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainerElementRef;
-// rDATA : IwbRecord;
-begin
- if aOldValue <> aNewValue then
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- if Supports(Container.Container, IwbContainerElementRef, Container) then begin
- Container.RemoveElement('DATA');
- Container.Add('DATA', True);
- Container.RemoveElement('Perk Conditions');
- Container.RemoveElement('Entry Point Function Parameters');
- if aNewValue = 2 then begin
- Container.Add('EPFT', True);
- Container.ElementNativeValues['DATA\Entry Point\Function'] := 2;
- end;
- end;
- end;
-end;
-
-function wbMGEFFAssocItemDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- Archtype : Variant;
- DataContainer : IwbDataContainer;
- Element : IwbElement;
-const
- OffsetArchtype = 56;
-
-begin
- Result := 1;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- VarClear(ArchType);
- Element := Container.ElementByName['Archtype'];
- if Assigned(Element) then
- ArchType := Element.NativeValue
- else if Supports(Container, IwbDataContainer, DataContainer) and
- DataContainer.IsValidOffset(aBasePtr, aEndPtr, OffsetArchtype) then
- begin // we are part of a proper structure
- aBasePtr := Pointer(Cardinal(aBasePtr) + OffsetArchtype);
- ArchType := PCardinal(aBasePtr)^;
- end;
-
- if not VarIsEmpty(ArchType) then
- case Integer(ArchType) of
- 01: Result := 2;//Script
- 18: Result := 3;//Bound Item
- 19: Result := 4;//Summon Creature
- else
- Result := 0;
- end;
-end;
-
-procedure wbMGEFFAssocItemAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainer;
- Element : IwbElement;
-begin
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if (aNewValue <> 0) then begin
- Element := Container.ElementByName['Archtype'];
- if Assigned(Element) and Element.NativeValue = 0 then
- Element.NativeValue := $FF; // Signals ArchType that it should not mess with us on the next change!
- end;
-end;
-
-procedure wbMGEFArchtypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if (aNewValue < $FF) and (aOldValue < $FF) then begin
- Container.ElementNativeValues['..\Assoc. Item'] := 0;
- case Integer(aNewValue) of
- 11: Container.ElementNativeValues['..\Actor Value'] := 48;//Invisibility
- 12: Container.ElementNativeValues['..\Actor Value'] := 49;//Chameleon
- 24: Container.ElementNativeValues['..\Actor Value'] := 47;//Paralysis
- 36: Container.ElementNativeValues['..\Actor Value'] := 51;//Turbo
- else
- Container.ElementNativeValues['..\Actor Value'] := -1;
- end;
- end;
-end;
-
-procedure wbCounterEffectsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterByPathAfterSet('DATA - Data\Counter effect count', aElement);
-end;
-
-procedure wbMGEFAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerByPathAfterSet('DATA - Data\Counter effect count', 'Counter Effects', aElement);
-end;
-
-function wbCTDAReferenceDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Integer(Container.ElementNativeValues['Run On']) = 2 then
- Result := 1;
-end;
-
-function wbNAVINVMIDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- case Integer(Container.ElementNativeValues['Type']) of
- $00: Result :=1;
- $20: Result :=2;
- $30: Result :=3;
- end;
-end;
-
-function wbIMGSSkinDimmerDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize in [132, 148] then
- Result := 1;
-end;
-
-function wbCOEDOwnerDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- LinksTo : IwbElement;
- MainRecord : IwbMainRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- LinksTo := Container.ElementByName['Owner'].LinksTo;
-
- if Supports(LinksTo, IwbMainRecord, MainRecord) then
- if MainRecord.Signature = 'NPC_' then
- Result := 1
- else if MainRecord.Signature = 'FACT' then
- Result := 2;
-end;
-
-function wbCreaLevelDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
- i: Int64;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- i := Container.ElementByName['Flags'].NativeValue;
- if i and $00000080 <> 0 then
- Result := 1;
-end;
-
-
-function wbGMSTUnionDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rEDID: IwbRecord;
- s: string;
-begin
- Result := 1;
- rEDID := aElement.Container.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > 0 then
- case s[1] of
- 's': Result := 0;
- 'f': Result := 2;
- end;
- end;
-end;
-
-function wbFLSTLNAMIsSorted(const aContainer: IwbContainer): Boolean;
-var
- rEDID : IwbRecord;
- s : string;
- _File : IwbFile;
- MainRecord : IwbMainRecord;
-const
- OrderedList = 'OrderedList';
-begin
- Result := wbSortFLST; {>>> Should not be sorted according to Arthmoor and JustinOther, left as sorted for compatibility <<<}
- rEDID := aContainer.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > Length(OrderedList) then
- Delete(s, 1, Length(s)-Length(OrderedList));
- if SameText(s, OrderedList) then
- Result := False;
- end;
- if Result then begin
- MainRecord := aContainer.ContainingMainRecord;
- if not Assigned(MainRecord) then
- Exit;
- MainRecord := MainRecord.MasterOrSelf;
- if not Assigned(MainRecord) then
- Exit;
- _File := MainRecord._File;
- if not Assigned(_File) then
- Exit;
- if not SameText(_File.FileName, 'WeaponModKits.esp') then
- Exit;
- case (MainRecord.FormID and $FFFFFF) of
- $0130EB, $0130ED, $01522D, $01522E, $0158D5, $0158D6, $0158D7, $0158D8, $0158D9, $0158DA, $0158DC, $0158DD, $018E20:
- Result := False;
- end;
- end;
-end;
-
-function wbPerkDATADecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rPRKE: IwbRecord;
- eType: IwbElement;
-begin
- Result := 0;
- rPRKE := aElement.Container.RecordBySignature[PRKE];
- if Assigned(rPRKE) then begin
- eType := rPRKE.ElementByName['Type'];
- if Assigned(eType) then begin
- Result := eType.NativeValue;
- end;
- end;
-end;
-
-function wbEPFDDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainerElementRef;
-begin
- Result := 0;
- if not Assigned(aElement) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, Container) then
- Exit;
- Result := Container.ElementNativeValues['EPFT'];
- if Result = 2 then
- if Integer(Container.ElementNativeValues['..\DATA\Entry Point\Function']) = 5 then
- Result := 5;
-end;
-
-type
- TCTDAFunctionParamType = (
- ptNone,
- ptInteger,
- ptVariableName, //Integer
- ptSex, //Enum: Male, Female
- ptActorValue, //Enum: wbActorValue
- ptCrimeType, //?? Enum
- ptAxis, //?? Char
- ptQuestStage, //?? Integer
- ptMiscStat, //?? Enum
- ptAlignment, //?? Enum
- ptEquipType, //?? Enum
- ptFormType, //?? Enum
- ptCriticalStage, //?? Enum
-
- ptObjectReference, //REFR, ACHR, ACRE, PGRE
- ptInventoryObject, //ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, ARMA
- ptActor, //ACHR, ACRE
- ptVoiceType, //VTYP
- ptIdleForm, //IDLE
- ptFormList, //FLST
- ptNote, //NOTE
- ptQuest, //QUST
- ptFaction, //FACT
- ptWeapon, //WEAP
- ptCell, //CELL
- ptClass, //CLAS
- ptRace, //RACE
- ptActorBase, //NPC_, CREA
- ptGlobal, //GLOB
- ptWeather, //WTHR
- ptPackage, //PACK
- ptEncounterZone, //ECZN
- ptPerk, //PERK
- ptOwner, //FACT, NPC_
- ptFurniture, //FURN
- ptMagicItem, //SPEL
- ptMagicEffect, //MGEF
- ptWorldspace, //WRLD
- ptVATSValueFunction,
- ptVATSValueParam,
- ptCreatureType,
- ptMenuMode,
- ptPlayerAction,
- ptBodyLocation,
- ptReferencableObject, //TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM
- ptQuestObjective, //?? Integer
- ptReputation, //REPU
- ptRegion, //REGN
- ptChallenge, //CHAL
- ptCasino, //CSNO
- ptAnyForm // Any form
- );
-
- PCTDAFunction = ^TCTDAFunction;
- TCTDAFunction = record
- Index: Integer;
- Name: string;
- ParamType1: TCTDAFunctionParamType;
- ParamType2: TCTDAFunctionParamType;
- end;
-
-const
- wbCTDAFunctions : array[0..288] of TCTDAFunction = (
- (Index: 1; Name: 'GetDistance'; ParamType1: ptObjectReference),
- (Index: 5; Name: 'GetLocked'),
- (Index: 6; Name: 'GetPos'; ParamType1: ptAxis),
- (Index: 8; Name: 'GetAngle'; ParamType1: ptAxis),
- (Index: 10; Name: 'GetStartingPos'; ParamType1: ptAxis),
- (Index: 11; Name: 'GetStartingAngle'; ParamType1: ptAxis),
- (Index: 12; Name: 'GetSecondsPassed'),
- (Index: 14; Name: 'GetActorValue'; ParamType1: ptActorValue),
- (Index: 18; Name: 'GetCurrentTime'),
- (Index: 24; Name: 'GetScale'),
- (Index: 25; Name: 'IsMoving'),
- (Index: 26; Name: 'IsTurning'),
- (Index: 27; Name: 'GetLineOfSight'; ParamType1: ptObjectReference),
- (Index: 32; Name: 'GetInSameCell'; ParamType1: ptObjectReference),
- (Index: 35; Name: 'GetDisabled'),
- (Index: 36; Name: 'MenuMode'; ParamType1: ptMenuMode),
- (Index: 39; Name: 'GetDisease'),
- (Index: 40; Name: 'GetVampire'),
- (Index: 41; Name: 'GetClothingValue'),
- (Index: 42; Name: 'SameFaction'; ParamType1: ptActor),
- (Index: 43; Name: 'SameRace'; ParamType1: ptActor),
- (Index: 44; Name: 'SameSex'; ParamType1: ptActor),
- (Index: 45; Name: 'GetDetected'; ParamType1: ptActor),
- (Index: 46; Name: 'GetDead'),
- (Index: 47; Name: 'GetItemCount'; ParamType1: ptInventoryObject),
- (Index: 48; Name: 'GetGold'),
- (Index: 49; Name: 'GetSleeping'),
- (Index: 50; Name: 'GetTalkedToPC'),
- (Index: 53; Name: 'GetScriptVariable'; ParamType1: ptObjectReference; ParamType2: ptVariableName),
- (Index: 56; Name: 'GetQuestRunning'; ParamType1: ptQuest),
- (Index: 58; Name: 'GetStage'; ParamType1: ptQuest),
- (Index: 59; Name: 'GetStageDone'; ParamType1: ptQuest; ParamType2: ptQuestStage),
- (Index: 60; Name: 'GetFactionRankDifference'; ParamType1: ptFaction; ParamType2: ptActor),
- (Index: 61; Name: 'GetAlarmed'),
- (Index: 62; Name: 'IsRaining'),
- (Index: 63; Name: 'GetAttacked'),
- (Index: 64; Name: 'GetIsCreature'),
- (Index: 65; Name: 'GetLockLevel'),
- (Index: 66; Name: 'GetShouldAttack'; ParamType1: ptActor),
- (Index: 67; Name: 'GetInCell'; ParamType1: ptCell),
- (Index: 68; Name: 'GetIsClass'; ParamType1: ptClass),
- (Index: 69; Name: 'GetIsRace'; ParamType1: ptRace),
- (Index: 70; Name: 'GetIsSex'; ParamType1: ptSex),
- (Index: 71; Name: 'GetInFaction'; ParamType1: ptFaction),
- (Index: 72; Name: 'GetIsID'; ParamType1: ptReferencableObject),
- (Index: 73; Name: 'GetFactionRank'; ParamType1: ptFaction),
- (Index: 74; Name: 'GetGlobalValue'; ParamType1: ptGlobal),
- (Index: 75; Name: 'IsSnowing'),
- (Index: 76; Name: 'GetDisposition'; ParamType1: ptActor),
- (Index: 77; Name: 'GetRandomPercent'),
- (Index: 79; Name: 'GetQuestVariable'; ParamType1: ptQuest; ParamType2: ptVariableName),
- (Index: 80; Name: 'GetLevel'),
- (Index: 81; Name: 'GetArmorRating'),
- (Index: 84; Name: 'GetDeadCount'; ParamType1: ptActorBase),
- (Index: 91; Name: 'GetIsAlerted'),
- (Index: 98; Name: 'GetPlayerControlsDisabled'; ParamType1: ptInteger; ParamType2: ptInteger{; ParamType3: ptInteger; ParamType4: ptInteger; ParamType5: ptInteger; ParamType6: ptInteger; ParamType7: ptInteger}),
- (Index: 99; Name: 'GetHeadingAngle'; ParamType1: ptObjectReference),
- (Index: 101; Name: 'IsWeaponOut'),
- (Index: 102; Name: 'IsTorchOut'),
- (Index: 103; Name: 'IsShieldOut'),
- (Index: 106; Name: 'IsFacingUp'),
- (Index: 107; Name: 'GetKnockedState'),
- (Index: 108; Name: 'GetWeaponAnimType'),
- (Index: 109; Name: 'IsWeaponSkillType'; ParamType1: ptActorValue),
- (Index: 110; Name: 'GetCurrentAIPackage'),
- (Index: 111; Name: 'IsWaiting'),
- (Index: 112; Name: 'IsIdlePlaying'),
- (Index: 116; Name: 'GetMinorCrimeCount'),
- (Index: 117; Name: 'GetMajorCrimeCount'),
- (Index: 118; Name: 'GetActorAggroRadiusViolated'),
- (Index: 122; Name: 'GetCrime'; ParamType1: ptActor; ParamType2: ptCrimeType),
- (Index: 123; Name: 'IsGreetingPlayer'),
- (Index: 125; Name: 'IsGuard'),
- (Index: 127; Name: 'HasBeenEaten'),
- (Index: 128; Name: 'GetFatiguePercentage'),
- (Index: 129; Name: 'GetPCIsClass'; ParamType1: ptClass),
- (Index: 130; Name: 'GetPCIsRace'; ParamType1: ptRace),
- (Index: 131; Name: 'GetPCIsSex'; ParamType1: ptSex),
- (Index: 132; Name: 'GetPCInFaction'; ParamType1: ptFaction),
- (Index: 133; Name: 'SameFactionAsPC'),
- (Index: 134; Name: 'SameRaceAsPC'),
- (Index: 135; Name: 'SameSexAsPC'),
- (Index: 136; Name: 'GetIsReference'; ParamType1: ptObjectReference),
- (Index: 141; Name: 'IsTalking'),
- (Index: 142; Name: 'GetWalkSpeed'),
- (Index: 143; Name: 'GetCurrentAIProcedure'),
- (Index: 144; Name: 'GetTrespassWarningLevel'),
- (Index: 145; Name: 'IsTrespassing'),
- (Index: 146; Name: 'IsInMyOwnedCell'),
- (Index: 147; Name: 'GetWindSpeed'),
- (Index: 148; Name: 'GetCurrentWeatherPercent'),
- (Index: 149; Name: 'GetIsCurrentWeather'; ParamType1: ptWeather),
- (Index: 150; Name: 'IsContinuingPackagePCNear'),
- (Index: 153; Name: 'CanHaveFlames'),
- (Index: 154; Name: 'HasFlames'),
- (Index: 157; Name: 'GetOpenState'),
- (Index: 159; Name: 'GetSitting'),
- (Index: 160; Name: 'GetFurnitureMarkerID'),
- (Index: 161; Name: 'GetIsCurrentPackage'; ParamType1: ptPackage),
- (Index: 162; Name: 'IsCurrentFurnitureRef'; ParamType1: ptObjectReference),
- (Index: 163; Name: 'IsCurrentFurnitureObj'; ParamType1: ptFurniture),
- (Index: 170; Name: 'GetDayOfWeek'),
- (Index: 172; Name: 'GetTalkedToPCParam'; ParamType1: ptActor),
- (Index: 175; Name: 'IsPCSleeping'),
- (Index: 176; Name: 'IsPCAMurderer'),
- (Index: 180; Name: 'GetDetectionLevel'; ParamType1: ptActor),
- (Index: 182; Name: 'GetEquipped'; ParamType1: ptInventoryObject),
- (Index: 185; Name: 'IsSwimming'),
- (Index: 190; Name: 'GetAmountSoldStolen'),
- (Index: 192; Name: 'GetIgnoreCrime'),
- (Index: 193; Name: 'GetPCExpelled'; ParamType1: ptFaction),
- (Index: 195; Name: 'GetPCFactionMurder'; ParamType1: ptFaction),
- (Index: 197; Name: 'GetPCEnemyofFaction'; ParamType1: ptFaction),
- (Index: 199; Name: 'GetPCFactionAttack'; ParamType1: ptFaction),
- (Index: 203; Name: 'GetDestroyed'),
- (Index: 214; Name: 'HasMagicEffect'; ParamType1: ptMagicEffect),
- (Index: 215; Name: 'GetDefaultOpen'),
- (Index: 219; Name: 'GetAnimAction'),
- (Index: 223; Name: 'IsSpellTarget'; ParamType1: ptMagicItem),
- (Index: 224; Name: 'GetVATSMode'),
- (Index: 225; Name: 'GetPersuasionNumber'),
- (Index: 226; Name: 'GetSandman'),
- (Index: 227; Name: 'GetCannibal'),
- (Index: 228; Name: 'GetIsClassDefault'; ParamType1: ptClass),
- (Index: 229; Name: 'GetClassDefaultMatch'),
- (Index: 230; Name: 'GetInCellParam'; ParamType1: ptCell; ParamType2: ptObjectReference),
- (Index: 235; Name: 'GetVatsTargetHeight'),
- (Index: 237; Name: 'GetIsGhost'),
- (Index: 242; Name: 'GetUnconscious'),
- (Index: 244; Name: 'GetRestrained'),
- (Index: 246; Name: 'GetIsUsedItem'; ParamType1: ptReferencableObject),
- (Index: 247; Name: 'GetIsUsedItemType'; ParamType1: ptFormType),
- (Index: 254; Name: 'GetIsPlayableRace'),
- (Index: 255; Name: 'GetOffersServicesNow'),
- (Index: 258; Name: 'GetUsedItemLevel'),
- (Index: 259; Name: 'GetUsedItemActivate'),
- (Index: 264; Name: 'GetBarterGold'),
- (Index: 265; Name: 'IsTimePassing'),
- (Index: 266; Name: 'IsPleasant'),
- (Index: 267; Name: 'IsCloudy'),
- (Index: 274; Name: 'GetArmorRatingUpperBody'),
- (Index: 277; Name: 'GetBaseActorValue'; ParamType1: ptActorValue),
- (Index: 278; Name: 'IsOwner'; ParamType1: ptOwner),
- (Index: 280; Name: 'IsCellOwner'; ParamType1: ptCell; ParamType2: ptOwner),
- (Index: 282; Name: 'IsHorseStolen'),
- (Index: 285; Name: 'IsLeftUp'),
- (Index: 286; Name: 'IsSneaking'),
- (Index: 287; Name: 'IsRunning'),
- (Index: 288; Name: 'GetFriendHit'),
- (Index: 289; Name: 'IsInCombat'),
- (Index: 300; Name: 'IsInInterior'),
- (Index: 304; Name: 'IsWaterObject'),
- (Index: 306; Name: 'IsActorUsingATorch'),
- (Index: 309; Name: 'IsXBox'),
- (Index: 310; Name: 'GetInWorldspace'; ParamType1: ptWorldSpace),
- (Index: 312; Name: 'GetPCMiscStat'; ParamType1: ptMiscStat),
- (Index: 313; Name: 'IsActorEvil'),
- (Index: 314; Name: 'IsActorAVictim'),
- (Index: 315; Name: 'GetTotalPersuasionNumber'),
- (Index: 318; Name: 'GetIdleDoneOnce'),
- (Index: 320; Name: 'GetNoRumors'),
- (Index: 323; Name: 'WhichServiceMenu'),
- (Index: 327; Name: 'IsRidingHorse'),
- (Index: 332; Name: 'IsInDangerousWater'),
- (Index: 338; Name: 'GetIgnoreFriendlyHits'),
- (Index: 339; Name: 'IsPlayersLastRiddenHorse'),
- (Index: 353; Name: 'IsActor'),
- (Index: 354; Name: 'IsEssential'),
- (Index: 358; Name: 'IsPlayerMovingIntoNewSpace'),
- (Index: 361; Name: 'GetTimeDead'),
- (Index: 362; Name: 'GetPlayerHasLastRiddenHorse'),
- (Index: 365; Name: 'IsChild'),
- (Index: 367; Name: 'GetLastPlayerAction'),
- (Index: 368; Name: 'IsPlayerActionActive'; ParamType1: ptPlayerAction),
- (Index: 370; Name: 'IsTalkingActivatorActor'; ParamType1: ptActor),
- (Index: 372; Name: 'IsInList'; ParamType1: ptFormList),
- (Index: 382; Name: 'GetHasNote'; ParamType1: ptNote),
- (Index: 391; Name: 'GetHitLocation'),
- (Index: 392; Name: 'IsPC1stPerson'),
- (Index: 397; Name: 'GetCauseofDeath'),
- (Index: 398; Name: 'IsLimbGone'; ParamType1: ptBodyLocation),
- (Index: 399; Name: 'IsWeaponInList'; ParamType1: ptFormList),
- (Index: 403; Name: 'HasFriendDisposition'),
- (Index: 408; Name: 'GetVATSValue'; ParamType1: ptVATSValueFunction; ParamType2: ptVATSValueParam),
- (Index: 409; Name: 'IsKiller'; ParamType1: ptActor),
- (Index: 410; Name: 'IsKillerObject'; ParamType1: ptFormList),
- (Index: 411; Name: 'GetFactionCombatReaction'; ParamType1: ptFaction; ParamType2: ptFaction),
- (Index: 415; Name: 'Exists'; ParamType1: ptObjectReference),
- (Index: 416; Name: 'GetGroupMemberCount'),
- (Index: 417; Name: 'GetGroupTargetCount'),
- (Index: 420; Name: 'GetObjectiveCompleted'; ParamType1: ptQuest; ParamType2: ptQuestObjective),
- (Index: 421; Name: 'GetObjectiveDisplayed'; ParamType1: ptQuest; ParamType2: ptQuestObjective),
- (Index: 427; Name: 'GetIsVoiceType'; ParamType1: ptVoiceType),
- (Index: 428; Name: 'GetPlantedExplosive'),
- (Index: 430; Name: 'IsActorTalkingThroughActivator'),
- (Index: 431; Name: 'GetHealthPercentage'),
- (Index: 433; Name: 'GetIsObjectType'; ParamType1: ptFormType),
- (Index: 435; Name: 'GetDialogueEmotion'),
- (Index: 436; Name: 'GetDialogueEmotionValue'),
- (Index: 438; Name: 'GetIsCreatureType'; ParamType1: ptCreatureType),
- (Index: 446; Name: 'GetInZone'; ParamType1: ptEncounterZone),
- (Index: 449; Name: 'HasPerk'; ParamType1: ptPerk; ParamType2: ptInteger {boolean Alt}), // PlayerCharacter has 2 lists of perks
- (Index: 450; Name: 'GetFactionRelation'; ParamType1: ptActor),
- (Index: 451; Name: 'IsLastIdlePlayed'; ParamType1: ptIdleForm),
- (Index: 454; Name: 'GetPlayerTeammate'),
- (Index: 455; Name: 'GetPlayerTeammateCount'),
- (Index: 459; Name: 'GetActorCrimePlayerEnemy'),
- (Index: 460; Name: 'GetActorFactionPlayerEnemy'),
- (Index: 462; Name: 'IsPlayerTagSkill'; ParamType1: ptActorValue),
- (Index: 464; Name: 'IsPlayerGrabbedRef'; ParamType1: ptObjectReference),
- (Index: 471; Name: 'GetDestructionStage'),
- (Index: 474; Name: 'GetIsAlignment'; ParamType1: ptAlignment),
- (Index: 478; Name: 'GetThreatRatio'; ParamType1: ptActor),
- (Index: 480; Name: 'GetIsUsedItemEquipType'; ParamType1: ptEquipType),
- (Index: 489; Name: 'GetConcussed'),
- (Index: 492; Name: 'GetMapMarkerVisible'),
- (Index: 495; Name: 'GetPermanentActorValue'; ParamType1: ptActorValue),
- (Index: 496; Name: 'GetKillingBlowLimb'),
- (Index: 500; Name: 'GetWeaponHealthPerc'),
- (Index: 503; Name: 'GetRadiationLevel'),
- (Index: 510; Name: 'GetLastHitCritical'),
- (Index: 515; Name: 'IsCombatTarget'; ParamType1: ptActor),
- (Index: 518; Name: 'GetVATSRightAreaFree'; ParamType1: ptObjectReference),
- (Index: 519; Name: 'GetVATSLeftAreaFree'; ParamType1: ptObjectReference),
- (Index: 520; Name: 'GetVATSBackAreaFree'; ParamType1: ptObjectReference),
- (Index: 521; Name: 'GetVATSFrontAreaFree'; ParamType1: ptObjectReference),
- (Index: 522; Name: 'GetIsLockBroken'),
- (Index: 523; Name: 'IsPS3'),
- (Index: 524; Name: 'IsWin32'),
- (Index: 525; Name: 'GetVATSRightTargetVisible'; ParamType1: ptObjectReference),
- (Index: 526; Name: 'GetVATSLeftTargetVisible'; ParamType1: ptObjectReference),
- (Index: 527; Name: 'GetVATSBackTargetVisible'; ParamType1: ptObjectReference),
- (Index: 528; Name: 'GetVATSFrontTargetVisible'; ParamType1: ptObjectReference),
- (Index: 531; Name: 'IsInCriticalStage'; ParamType1: ptCriticalStage),
- (Index: 533; Name: 'GetXPForNextLevel'),
- (Index: 546; Name: 'GetQuestCompleted'; ParamType1: ptQuest),
- (Index: 550; Name: 'IsGoreDisabled'),
- (Index: 555; Name: 'GetSpellUsageNum'; ParamType1: ptMagicItem),
- (Index: 557; Name: 'GetActorsInHigh'),
- (Index: 558; Name: 'HasLoaded3D'),
- (Index: 573; Name: 'GetReputation'; ParamType1: ptReputation; ParamType2: ptInteger),
- (Index: 574; Name: 'GetReputationPct'; ParamType1: ptReputation; ParamType2: ptInteger),
- (Index: 575; Name: 'GetReputationThreshold'; ParamType1: ptReputation; ParamType2: ptInteger),
- (Index: 586; Name: 'IsHardcore'),
- (Index: 601; Name: 'GetForceHitReaction'),
- (Index: 607; Name: 'ChallengeLocked'; ParamType1: ptChallenge),
- (Index: 610; Name: 'GetCasinoWinningStage'; ParamType1: ptCasino),
- (Index: 612; Name: 'PlayerInRegion'; ParamType1: ptRegion),
- (Index: 614; Name: 'GetChallengeCompleted'; ParamType1: ptChallenge),
- (Index: 619; Name: 'IsAlwaysHardcore'),
-
- // Added by NVSE
- (Index: 1024; Name: 'GetNVSEVersion'; ),
- (Index: 1025; Name: 'GetNVSERevision'; ),
- (Index: 1026; Name: 'GetNVSEBeta'; ),
- (Index: 1028; Name: 'GetWeight'; ParamType1: ptInventoryObject; ),
- (Index: 1076; Name: 'GetWeaponHasScope'; ParamType1: ptInventoryObject; ),
- (Index: 1089; Name: 'ListGetFormIndex'; ParamType1: ptFormList; ParamType2: ptFormType;),
- (Index: 1107; Name: 'IsKeyPressed'; ParamType1: ptInteger; ParamType2: ptInteger;),
- (Index: 1131; Name: 'IsControlPressed'; ParamType1: ptInteger; ),
- (Index: 1271; Name: 'HasOwnership'; ParamType1: ptObjectReference; ),
- (Index: 1272; Name: 'IsOwned'; ParamType1: ptActor ),
- (Index: 1274; Name: 'GetDialogueTarget'; ParamType1: ptActor; ),
- (Index: 1275; Name: 'GetDialogueSubject'; ParamType1: ptActor; ),
- (Index: 1276; Name: 'GetDialogueSpeaker'; ParamType1: ptActor; ),
- (Index: 1278; Name: 'GetAgeClass'; ParamType1: ptActorBase; ),
- (Index: 1286; Name: 'GetTokenValue'; ParamType1: ptFormType; ),
- (Index: 1288; Name: 'GetTokenRef'; ParamType1: ptFormType; ),
- (Index: 1291; Name: 'GetPaired'; ParamType1: ptInventoryObject; ParamType2: ptActorBase;),
- (Index: 1292; Name: 'GetRespawn'; ParamType1: ptACtorBase; ),
- (Index: 1294; Name: 'GetPermanent'; ParamType1: ptObjectReference; ),
- (Index: 1297; Name: 'IsRefInList'; ParamType1: ptFormList; ParamType2: ptFormType;),
- (Index: 1301; Name: 'GetPackageCount'; ParamType1: ptObjectReference; ),
- (Index: 1440; Name: 'IsPlayerSwimming'; ),
- (Index: 1441; Name: 'GetTFC'; ),
- (Index: 1475; Name: 'GetPerkRank'; ParamType1: ptPerk; ParamType2: ptActor;),
- (Index: 1476; Name: 'GetAltPerkRank'; ParamType1: ptPerk; ParamType2: ptActor;),
- (Index: 1541; Name: 'GetActorFIKstatus'; ),
-
- // Added by nvse_plugin_ExtendedActorVariable
- (Index: 4352; Name: 'GetExtendedActorVariable'; ParamType1: ptInventoryObject; ),
- (Index: 4353; Name: 'GetBaseExtendedActorVariable'; ParamType1: ptInventoryObject; ),
- (Index: 4355; Name: 'GetModExtendedActorVariable'; ParamType1: ptInventoryObject; ),
-
- // Added by nvse_extender
- (Index: 4420; Name: 'NX_GetEVFl'; ParamType1: ptNone; ), // Actually ptString, but it cannot be used in GECK
- (Index: 4426; Name: 'NX_GetQVEVFl'; ParamType1: ptQuest; ParamType2: ptInteger;),
-
- // Added by lutana_nvse
- (Index: 4708; Name: 'GetArmorClass'; ParamType1: ptAnyForm; ),
- (Index: 4709; Name: 'IsRaceInList'; ParamType1: ptFormList; ),
- (Index: 4822; Name: 'GetReferenceFlag'; ParamType1: ptInteger; ),
-
- // Added by JIP NVSE Plugin
- (Index: 5637; Name: 'GetIsPoisoned'; ),
- (Index: 5708; Name: 'IsEquippedWeaponSilenced'; ),
- (Index: 5709; Name: 'IsEquippedWeaponScoped'; ),
- (Index: 5953; Name: 'GetPCInRegion'; ParamType1: ptRegion; ),
- (Index: 5962; Name: 'GetPCDetectionState'; )
- );
-
-var
- wbCTDAFunctionEditInfo: string;
-
-function wbCTDAParamDescFromIndex(aIndex: Integer): PCTDAFunction;
-var
- L, H, I, C: Integer;
-begin
- Result := nil;
-
- L := Low(wbCTDAFunctions);
- H := High(wbCTDAFunctions);
- while L <= H do begin
- I := (L + H) shr 1;
- C := CmpW32(wbCTDAFunctions[I].Index, aIndex);
- if C < 0 then
- L := I + 1
- else begin
- H := I - 1;
- if C = 0 then begin
- L := I;
- Result := @wbCTDAFunctions[L];
- end;
- end;
- end;
-end;
-
-function wbCTDACompValueDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if Integer(Container.ElementByName['Type'].NativeValue) and $04 <> 0 then
- Result := 1;
-end;
-
-function wbCTDAParam1Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType1));
-end;
-
-function wbCTDAParam2VATSValueParam(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- Result := Container.ElementByName['Parameter #1'].NativeValue;
-end;
-
-function wbCTDAParam2Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType2));
-end;
-
-function wbCTDAFunctionToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Desc : PCTDAFunction;
- i : Integer;
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := Desc.Name
- else if aType = ctToEditValue then
- Result := IntToStr(aInt)
- else
- Result := '';
- end;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctCheck: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := ''
- else
- Result := '';
- end;
- ctEditType:
- Result := 'ComboBox';
- ctEditInfo: begin
- Result := wbCTDAFunctionEditInfo;
- if Result = '' then begin
- with TStringList.Create do try
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- Add(wbCTDAFunctions[i].Name);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- wbCTDAFunctionEditInfo := Result;
- end;
- end;
- end;
-end;
-
-function wbCTDAFunctionToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i: Integer;
-begin
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- with wbCTDAFunctions[i] do
- if SameText(Name, aString) then begin
- Result := Index;
- Exit;
- end;
- Result := StrToInt64(aString);
-end;
-
-type
- TPERKEntryPointConditionType = (
- epcDefault,
- epcItem,
- epcWeapon,
- epcWeaponTarget,
- epcTarget,
- epcAttacker,
- epcAttackerAttackee,
- epcAttackerAttackerWeapon
- );
-
- TPERKEntryPointFunctionType = (
- epfFloat,
- epfLeveledItem,
- epfScript,
- epfUnknown
- );
-
- TPERKEntryPointFunctionParamType = (
- epfpNone,
- epfpFloat,
- epfpFloatFloat,
- epfpLeveledItem,
- epfpScript
- );
-
- PPERKEntryPoint = ^TPERKEntryPoint;
- TPERKEntryPoint = record
- Name : string;
- Condition : TPERKEntryPointConditionType;
- FunctionType : TPERKEntryPointFunctionType;
- end;
-
- PPERKCondition = ^TPERKCondition;
- TPERKCondition = record
- Count : Integer;
- Caption1 : string;
- Caption2 : string;
- Caption3 : string;
- end;
-
- PPERKFunction = ^TPERKFunction;
- TPERKFunction = record
- Name : string;
- FunctionType : TPERKEntryPointFunctionType;
- ParamType : TPERKEntryPointFunctionParamType;
- end;
-
-const
- wbPERKCondition : array[TPERKEntryPointConditionType] of TPERKCondition = (
- (Count: 1; Caption1: 'Perk Owner'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Item'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Weapon'),
- (Count: 3; Caption1: 'Perk Owner'; Caption2: 'Weapon'; Caption3: 'Target'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Target'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Attacker'),
- (Count: 3; Caption1: 'Perk Owner'; Caption2: 'Attacker'; Caption3: 'Attackee'),
- (Count: 3; Caption1: 'Perk Owner'; Caption2: 'Attacker'; Caption3: 'Attacker Weapon')
- );
-
- wbPERKFunctions : array[0..9] of TPERKFunction = (
- (Name: ''; FunctionType: epfUnknown; ParamType: epfpNone),
- (Name: 'Set Value'; FunctionType: epfFloat; ParamType: epfpFloat),
- (Name: 'Add Value'; FunctionType: epfFloat; ParamType: epfpFloat),
- (Name: 'Multiply Value'; FunctionType: epfFloat; ParamType: epfpFloat),
- (Name: 'Add Range To Value'; FunctionType: epfFloat; ParamType: epfpFloatFloat),
- (Name: 'Add Actor Value Mult'; FunctionType: epfFloat; ParamType: epfpFloatFloat),
- (Name: 'Absolute Value'; FunctionType: epfFloat; ParamType: epfpNone),
- (Name: 'Negative Absolute Value'; FunctionType: epfFloat; ParamType: epfpNone),
- (Name: 'Add Leveled List'; FunctionType: epfLeveledItem; ParamType: epfpLeveledItem),
- (Name: 'Add Activate Choice'; FunctionType: epfScript; ParamType: epfpScript)
- );
-
- wbPERKEntryPoints : array[0..73] of TPERKEntryPoint = (
- (Name: 'Calculate Weapon Damage'; Condition: epcWeaponTarget),
- (Name: 'Calculate My Critical Hit Chance'; Condition: epcWeaponTarget),
- (Name: 'Calculate My Critical Hit Damage'; Condition: epcWeaponTarget),
- (Name: 'Calculate Weapon Attack AP Cost'; Condition: epcWeapon),
- (Name: 'Calculate Mine Explode Chance'; Condition: epcItem),
- (Name: 'Adjust Range Penalty'; Condition: epcWeapon),
- (Name: 'Adjust Limb Damage'; Condition: epcAttackerAttackerWeapon),
- (Name: 'Calculate Weapon Range'; Condition: epcWeapon),
- (Name: 'Calculate To Hit Chance'; Condition: epcWeaponTarget),
- (Name: 'Adjust Experience Points'),
- (Name: 'Adjust Gained Skill Points'),
- (Name: 'Adjust Book Skill Points'),
- (Name: 'Modify Recovered Health'),
- (Name: 'Calculate Inventory AP Cost'),
- (Name: 'Get Disposition'; Condition: epcTarget),
- (Name: 'Get Should Attack'; Condition: epcAttacker),
- (Name: 'Get Should Assist'; Condition: epcAttackerAttackee),
- (Name: 'Calculate Buy Price'; Condition: epcItem),
- (Name: 'Get Bad Karma'),
- (Name: 'Get Good Karma'),
- (Name: 'Ignore Locked Terminal'),
- (Name: 'Add Leveled List On Death'; Condition: epcTarget; FunctionType: epfLeveledItem),
- (Name: 'Get Max Carry Weight'),
- (Name: 'Modify Addiction Chance'),
- (Name: 'Modify Addiction Duration'),
- (Name: 'Modify Positive Chem Duration'),
- (Name: 'Adjust Drinking Radiation'),
- (Name: 'Activate'; Condition: epcTarget; FunctionType: epfScript),
- (Name: 'Mysterious Stranger'),
- (Name: 'Has Paralyzing Palm'),
- (Name: 'Hacking Science Bonus'),
- (Name: 'Ignore Running During Detection'),
- (Name: 'Ignore Broken Lock'),
- (Name: 'Has Concentrated Fire'),
- (Name: 'Calculate Gun Spread'; Condition: epcWeapon),
- (Name: 'Player Kill AP Reward'; Condition: epcWeaponTarget),
-{36}(Name: 'Modify Enemy Critical Hit Chance'; Condition: epcWeaponTarget),
-{37}(Name: 'Reload Speed'; Condition: epcWeapon),
-{38}(Name: 'Equip Speed'; Condition: epcWeapon),
-{39}(Name: 'Action Point Regen'; Condition: epcWeapon),
-{40}(Name: 'Action Point Cost'; Condition: epcWeapon),
-{41}(Name: 'Miss Fortune'; Condition: epcDefault),
-{42}(Name: 'Modify Run Speed'; Condition: epcDefault),
-{43}(Name: 'Modify Attack Speed'; Condition: epcWeapon),
-{44}(Name: 'Modify Radiation Consumed'; Condition: epcDefault),
-{45}(Name: 'Has Pip Hacker'; Condition: epcDefault),
-{46}(Name: 'Has Meltdown'; Condition: epcDefault),
-{47}(Name: 'See Enemy Health'; Condition: epcDefault),
-{48}(Name: 'Has Jury Rigging'; Condition: epcDefault),
-{49}(Name: 'Modify Threat Range'; Condition: epcWeapon),
-{50}(Name: 'Modify Thread'; Condition: epcWeapon),
-{51}(Name: 'Has Fast Travel Always'; Condition: epcDefault),
-{52}(Name: 'Knockdown Chance'; Condition: epcWeapon),
-{53}(Name: 'Modify Weapon Strength Req'; Condition: epcWeapon),
-{54}(Name: 'Modify Aiming Move Speed'; Condition: epcWeapon),
-{55}(Name: 'Modify Light Items'; Condition: epcDefault),
-{56}(Name: 'Modify Damage Threshold (defender)'; Condition: epcWeaponTarget),
-{57}(Name: 'Modify Chance for Ammo Item'; Condition: epcWeapon),
-{58}(Name: 'Modify Damage Threshold (attacker)'; Condition: epcWeaponTarget),
-{59}(Name: 'Modify Throwing Velocity'; Condition: epcWeapon),
-{60}(Name: 'Chance for Item on Fire'; Condition: epcWeapon),
-{61}(Name: 'Has Unarmed Forward Power Attack'; Condition: epcDefault),
-{62}(Name: 'Has Unarmed Back Power Attack'; Condition: epcWeaponTarget),
-{63}(Name: 'Has Unarmed Crouched Power Attack'; Condition: epcDefault),
-{64}(Name: 'Has Unarmed Counter Attack'; Condition: epcWeaponTarget),
-{65}(Name: 'Has Unarmed Left Power Attack'; Condition: epcDefault),
-{66}(Name: 'Has Unarmed Right Power Attack'; Condition: epcDefault),
-{67}(Name: 'VATS HelperChance'; Condition: epcDefault),
-{68}(Name: 'Modify Item Damage'; Condition: epcDefault),
-{69}(Name: 'Has Improved Detection'; Condition: epcDefault),
-{70}(Name: 'Has Improved Spotting'; Condition: epcDefault),
-{71}(Name: 'Has Improved Item Detection'; Condition: epcDefault),
-{72}(Name: 'Adjust Explosion Radius'; Condition: epcWeapon),
-{73}(Name: 'Reserved'; Condition: epcWeapon)
- );
-
- wbPERKFunctionParams: array[TPERKEntryPointFunctionParamType] of string = (
- 'None',
- 'Float',
- 'Float, Float',
- 'Leveled Item',
- 'Script'
- );
-
-procedure wbPERKEntryPointAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldEntryPoint : PPERKEntryPoint;
- NewEntryPoint : PPERKEntryPoint;
- OldCondition : PPERKCondition;
- NewCondition : PPERKCondition;
- OldFunction : PPERKFunction;
- EntryPoint : IwbContainerElementRef;
- Effect : IwbContainerElementRef;
- PerkConditions : IwbContainerElementRef;
- PerkCondition : IwbContainerElementRef;
- Container : IwbContainerElementRef;
- i : Integer;
-begin
- if aOldValue <> aNewValue then begin
- OldEntryPoint := @wbPERKEntryPoints[Integer(aOldValue)];
- NewEntryPoint := @wbPERKEntryPoints[Integer(aNewValue)];
- OldCondition := @wbPERKCondition[OldEntryPoint.Condition];
- NewCondition := @wbPERKCondition[NewEntryPoint.Condition];
- if not Assigned(aElement) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, EntryPoint) then
- Exit;
- i := EntryPoint.ElementNativeValues['Function'];
- if (i >= Low(wbPERKFunctions)) and (i <= High(wbPERKFunctions)) then
- OldFunction := @wbPERKFunctions[i]
- else
- OldFunction := nil;
- if not Assigned(OldFunction) or (OldFunction.FunctionType <> NewEntryPoint.FunctionType) then
- for i := Low(wbPERKFunctions) to High(wbPERKFunctions) do
- with wbPERKFunctions[i] do
- if FunctionType = NewEntryPoint.FunctionType then begin
- EntryPoint.ElementNativeValues['Function'] := i;
- Break;
- end;
- EntryPoint.ElementNativeValues['Perk Condition Tab Count'] := NewCondition.Count;
-
- if not Supports(EntryPoint.Container, IwbContainerElementRef, Container) then
- Exit;
- if not Supports(Container.Container, IwbContainerElementRef, Effect) then
- Exit;
-
- if not Supports(Effect.ElementByName['Perk Conditions'], IwbContainerElementRef, PerkConditions) then
- Exit;
-
- for i := Pred(PerkConditions.ElementCount) downto 0 do
- if Supports(PerkConditions.Elements[i], IwbContainerElementRef, PerkCondition) then
- if Integer(PerkCondition.ElementNativeValues['PRKC']) >= NewCondition.Count then
- PerkCondition.Remove
- else
- case Integer(PerkCondition.ElementNativeValues['PRKC']) of
- 2: if OldCondition.Caption2 <> NewCondition.Caption2 then
- PerkCondition.Remove;
- 3: if OldCondition.Caption3 <> NewCondition.Caption3 then
- PerkCondition.Remove;
- end;
- end;
-end;
-
-function wbPRKCToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- EntryPointVar := Container.ElementNativeValues['..\..\..\DATA\Entry Point\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- Exit;
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- with wbPERKEntryPoints[EntryPoint] do begin
- with wbPERKCondition[Condition] do begin
- case aType of
- ctEditType: Result := 'ComboBox';
- ctEditInfo: with TStringList.Create do try
- if Caption1 <> '' then
- Add(Caption1);
- if Caption2 <> '' then
- Add(Caption2);
- if Caption3 <> '' then
- Add(Caption3);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- else
- if (aInt < 0) or (aInt >= Count) then
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end
- else
- case aType of
- ctToStr, ctToEditValue: case Integer(aInt) of
- 0: Result := Caption1;
- 1: Result := Caption2;
- 2: Result := Caption3;
- end;
- ctCheck: Result := '';
- end;
- end;
- end;
- end;
-end;
-
-function wbPRKCToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
- s : string;
-begin
- s := Trim(aString);
-
- Result := StrToInt64Def(s, Low(Integer));
- if Result <> Low(Integer) then
- Exit;
- if s = '' then begin
- Result := 0;
- Exit;
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- raise Exception.Create('Could not resolve Entry Point');
- EntryPointVar := Container.ElementNativeValues['..\..\..\DATA\Entry Point\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- raise Exception.Create('Could not resolve Entry Point');
-
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then
- raise Exception.Create('Unknown Entry Point #'+IntToStr(EntryPoint));
-
- with wbPERKEntryPoints[EntryPoint] do
- with wbPERKCondition[Condition] do
- if SameText(aString, Caption1) then
- Result := 0
- else if SameText(aString, Caption2) then
- Result := 1
- else if SameText(aString, Caption3) then
- Result := 2
- else
- raise Exception.Create('"'+s+'" is not valid for this Entry Point');
-end;
-
-function wbNeverShow(const aElement: IwbElement): Boolean;
-begin
- Result := wbHideNeverShow;
-end;
-
-function GetREGNType(aElement: IwbElement): Integer;
-var
- Container: IwbContainerElementRef;
-begin
- Result := -1;
- if not Assigned(aElement) then
- Exit;
- while aElement.Name <> 'Region Data Entry' do begin
- aElement := aElement.Container;
- if not Assigned(aElement) then
- Exit;
- end;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- Result := Container.ElementNativeValues['RDAT\Type'];
-end;
-
-function wbREGNObjectsDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 2;
-end;
-
-function wbREGNWeatherDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 3;
-end;
-
-function wbREGNMapDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 4;
-end;
-
-function wbREGNLandDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 5;
-end;
-
-function wbREGNGrassDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 6;
-end;
-
-function wbREGNSoundDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 7;
-end;
-
-function wbREGNImposterDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 8;
-end;
-
-function wbMESGTNAMDontShow(const aElement: IwbElement): Boolean;
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- Result := False;
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if Integer(Container.ElementNativeValues['DNAM']) and 1 <> 0 then
- Result := True;
-end;
-
-function wbEPFDDontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Entry Point Function Parameters' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if not (Integer(Container.ElementNativeValues['EPFT']) in [1..3]) then
- Result := True;
-end;
-
-function wbTES4ONAMDontShow(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- Result := False;
- if not Assigned(aElement) then
- Exit;
- MainRecord := aElement.ContainingMainRecord;
- if not Assigned(MainRecord) then
- Exit;
- if not MainRecord.IsESM then
- Result := True;
-end;
-
-
-function wbEPF2DontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Entry Point Function Parameters' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if not (Integer(Container.ElementNativeValues['EPFT']) in [4]) then
- Result := True;
-end;
-
-function wbPERKPRKCDontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Effect' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if Integer(Container.ElementNativeValues['PRKE\Type']) <> 2 then
- Result := True;
-end;
-
-function wbPerkDATAFunctionToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
- i : Integer;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- EntryPointVar := Container.ElementNativeValues['..\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- Exit;
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- with wbPERKEntryPoints[EntryPoint] do begin
- case aType of
- ctEditType: Result := 'ComboBox';
- ctEditInfo: with TStringList.Create do try
- for i := Low(wbPERKFunctions) to High(wbPERKFunctions) do
- if wbPERKFunctions[i].FunctionType = FunctionType then
- if (wbPERKFunctions[i].Name <> '') then
- Add(wbPERKFunctions[i].Name);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- else
- if (aInt < Low(wbPERKFunctions)) or (aInt > High(wbPERKFunctions)) then
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end
- else
- case aType of
- ctToStr, ctToEditValue: begin
- Result := wbPERKFunctions[Integer(aInt)].Name;
- if (aType = ctToStr) and (wbPERKFunctions[Integer(aInt)].FunctionType <> FunctionType) then
- Result := Result + ' ';
- end;
- ctCheck:
- if wbPERKFunctions[Integer(aInt)].FunctionType <> FunctionType then
- Result := ''
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPerkDATAFunctionToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
- s : string;
- i : Integer;
-begin
- s := Trim(aString);
-
- Result := StrToInt64Def(s, Low(Integer));
- if Result <> Low(Integer) then
- Exit;
- if s = '' then
- raise Exception.Create('"" is not a valid value for this field');
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- raise Exception.Create('Could not resolve Entry Point');
- EntryPointVar := Container.ElementNativeValues['..\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- raise Exception.Create('Could not resolve Entry Point');
-
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then
- raise Exception.Create('Unknown Entry Point #'+IntToStr(EntryPoint));
-
- with wbPERKEntryPoints[EntryPoint] do
- for i := Low(wbPERKFunctions) to High(wbPERKFunctions) do
- if wbPERKFunctions[i].FunctionType = FunctionType then
- if SameText(s, wbPERKFunctions[i].Name) then begin
- Result := i;
- Exit;
- end;
-
- raise Exception.Create('"'+s+'" is not valid for this Entry Point');
-end;
-
-procedure wbPerkDATAFunctionAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- NewFunction : Integer;
- Container : IwbContainerElementRef;
- OldParamType: Integer;
- NewParamType: Integer;
-begin
- NewFunction := aNewValue;
- if (NewFunction < Low(wbPERKFunctions)) or (NewFunction > High(wbPERKFunctions)) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- OldParamType := Container.ElementNativeValues['..\..\..\Entry Point Function Parameters\EPFT'];
- NewParamType := Ord(wbPERKFunctions[NewFunction].ParamType);
- if (OldParamType = NewParamType) and not VarSameValue(aOldValue, aNewValue) and (NewFunction in [4,5]) then
- Container.ElementNativeValues['..\..\..\Entry Point Function Parameters\EPFT'] := 0;
- Container.ElementNativeValues['..\..\..\Entry Point Function Parameters\EPFT'] := NewParamType;
-end;
-
-function wbPerkEPFTToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- FunctionTypeVar : Variant;
- FunctionType : Integer;
-// i : Integer;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- FunctionTypeVar := Container.ElementNativeValues['..\..\DATA\Entry Point\Function'];
- if VarIsNull(FunctionTypeVar) or VarIsClear(FunctionTypeVar) then
- Exit;
- FunctionType := FunctionTypeVar;
- if (FunctionType < Low(wbPERKFunctions)) or (FunctionType > High(wbPERKFunctions)) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- with wbPERKFunctions[FunctionType] do begin
- case aType of
- ctEditType: Result := 'ComboBox';
- ctEditInfo: Result := '"' + wbPERKFunctionParams[ParamType] + '"';
- else
- if (aInt < Ord(Low(wbPERKFunctionParams))) or (aInt > Ord(High(wbPERKFunctionParams))) then
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end
- else
- case aType of
- ctToStr, ctToEditValue: begin
- Result := wbPERKFunctionParams[TPERKEntryPointFunctionParamType(aInt)];
- if (aType = ctToStr) and (TPERKEntryPointFunctionParamType(aInt) <> ParamType) then
- Result := Result + ' ';
- end;
- ctCheck:
- if TPERKEntryPointFunctionParamType(aInt) <> ParamType then
- Result := Result + ' '
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPerkEPFTToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- FunctionTypeVar : Variant;
- FunctionType : Integer;
- s : string;
-// i : Integer;
- j : TPERKEntryPointFunctionParamType;
-begin
- s := Trim(aString);
-
- Result := StrToInt64Def(s, Low(Integer));
- if Result <> Low(Integer) then
- Exit;
- if s = '' then
- raise Exception.Create('"" is not a valid value for this field');
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- raise Exception.Create('Could not resolve Function');
- FunctionTypeVar := Container.ElementNativeValues['..\..\DATA\Entry Point\Function'];
- if VarIsNull(FunctionTypeVar) or VarIsClear(FunctionTypeVar) then
- raise Exception.Create('Could not resolve Function');
-
- FunctionType := FunctionTypeVar;
- if (FunctionType < Low(wbPERKFunctions)) or (FunctionType > High(wbPERKFunctions)) then
- raise Exception.Create('Unknown Function #'+IntToStr(FunctionType));
-
- with wbPERKFunctions[FunctionType] do begin
- for j := Low(wbPERKFunctionParams) to High(wbPERKFunctionParams) do
- if SameText(s, wbPERKFunctionParams[j]) then begin
- if j <> ParamType then
- raise Exception.Create('"'+s+'" is not a valid Parameter Type for Function "'+Name+'"');
- Result := Ord(j);
- Exit;
- end;
- end;
-
- raise Exception.Create('"'+s+'" is not a valid Parameter Type');
-end;
-
-procedure wbPerkEPFTAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- i: Integer;
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- i := aNewValue;
- if (i < Ord(Low(wbPERKFunctionParams))) or (i> Ord(High(wbPERKFunctionParams))) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, Container) then
- Exit;
- Container.RemoveElement('EPFD');
- Container.RemoveElement('EPF2');
- Container.RemoveElement('EPF3');
- Container.RemoveElement('Embedded Script');
- case TPERKEntryPointFunctionParamType(i) of
- epfpFloat, epfpFloatFloat, epfpLeveledItem:
- Container.Add('EPFD', True);
- epfpScript: begin
- Container.Add('EPF2', True);
- Container.Add('EPF3', True);
- Container.Add('SCHR', True);
- end;
- end;
-end;
-
-procedure wbRemoveOFST(const aElement: IwbElement);
-var
- Container: IwbContainer;
- rOFST: IwbRecord;
-begin
- if not wbRemoveOffsetData then
- Exit;
-
- if Supports(aElement, IwbContainer, Container) then begin
- if wbBeginInternalEdit then try
- Container.RemoveElement(OFST);
- finally
- wbEndInternalEdit;
- end else begin
- rOFST := Container.RecordBySignature[OFST];
- if Assigned(rOFST) then
- Container.RemoveElement(rOFST);
- end;
- end;
-end;
-
-function wbActorTemplateUseTraits(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000001) <> 0;
- end;
-end;
-
-function wbActorTemplateUseStats(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000002) <> 0;
- end;
-end;
-
-function wbActorAutoCalcDontShow(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Flags'];
- Result := (i and $00000010) <> 0;
- end;
-end;
-
-function wbActorTemplateUseStatsAutoCalc(const aElement: IwbElement): Boolean;
-begin
- if not wbActorTemplateHide then
- Result := False
- else
- Result := wbActorTemplateUseStats(aElement) or wbActorAutoCalcDontShow(aElement);
-end;
-
-function wbActorTemplateUseFactions(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000004) <> 0;
- end;
-end;
-
-function wbActorTemplateUseActorEffectList(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000008) <> 0;
- end;
-end;
-
-function wbActorTemplateUseAIData(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000010) <> 0;
- end;
-end;
-
-function wbActorTemplateUseAIPackages(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000020) <> 0;
- end;
-end;
-
-function wbActorTemplateUseModelAnimation(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000040) <> 0;
- end;
-end;
-
-function wbActorTemplateUseBaseData(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000080) <> 0;
- end;
-end;
-
-function wbActorTemplateUseInventory(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000100) <> 0;
- end;
-end;
-
-function wbActorTemplateUseScript(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000200) <> 0;
- end;
-end;
-
-procedure wbCTDAAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- //Size : Cardinal;
- TypeFlags : Cardinal;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- TypeFlags := Container.ElementNativeValues['Type'];
- if (TypeFlags and $02) <> 0 then begin
- if Container.DataSize = 20 then
- Container.DataSize := 28;
- Container.ElementNativeValues['Type'] := TypeFlags and not $02;
- Container.ElementEditValues['Run On'] := 'Target';
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMGEFAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- OldActorValue : Integer;
- NewActorValue : Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- OldActorValue := Container.ElementNativeValues['DATA - Data\Actor Value'];
- NewActorValue := OldActorValue;
- case Integer(Container.ElementNativeValues['DATA - Data\Archtype']) of
- 01, //Script
- 02, //Dispel
- 03, //Cure Disease
- 13, //Light
- 16, //Lock
- 17, //Open
- 18, //Bound Item
- 19, //Summon Creature
- 30, //Cure Paralysis
- 31, //Cure Addiction
- 32, //Cure Poison
- 33, //Concussion
- 35: //Limb Condition
- NewActorValue := -1;
- 11: //Invisibility
- NewActorValue := 48; //Invisibility
- 12: //Chameleon
- NewActorValue := 49; //Chameleon
- 24: //Paralysis
- NewActorValue := 47; //Paralysis
- 36: //Turbo
- NewActorValue := 51; //Turbo
- end;
- if OldActorValue <> NewActorValue then
- Container.ElementNativeValues['DATA - Data\Actor Value'] := NewActorValue;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbPACKAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-// OldContainer : IwbContainerElementRef;
- NewContainer : IwbContainerElementRef;
-// NewContainer2 : IwbContainerElementRef;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- case Integer(Container.ElementNativeValues['PKDT - General\Type']) of
- 0: begin {Find}
- Container.Add('PTDT');
- end;
- 1: begin {Follow}
- Container.Add('PKFD');
- end;
- 2: begin {Escort}
- end;
- 3: begin {Eat}
- Container.Add('PTDT');
- Container.Add('PKED');
- end;
- 4: begin {Sleep}
- if not Container.ElementExists['Locations'] then
- if Supports(Container.Add('Locations'), IwbContainerElementRef, NewContainer) then
- NewContainer.ElementEditValues['PLDT - Location 1\Type'] := 'Near editor location';
- end;
- 5: begin {Wander}
- end;
- 6: begin {Travel}
- end;
- 7: begin {Accompany}
- end;
- 8: begin {Use Item At}
- end;
- 9: begin {Ambush}
- end;
- 10: begin {Flee Not Combat}
- end;
- 12: begin {Sandbox}
- end;
- 13: begin {Patrol}
- if not Container.ElementExists['Locations'] then
- if Supports(Container.Add('Locations'), IwbContainerElementRef, NewContainer) then
- NewContainer.ElementEditValues['PLDT - Location 1\Type'] := 'Near linked reference';
- Container.Add('PKPT');
- end;
- 14: begin {Guard}
- end;
- 15: begin {Dialogue}
- end;
- 16: begin {Use Weapon}
- end;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbNPCAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-// BaseRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementNativeValues['NAM5'] > 255 then
- Container.ElementNativeValues['NAM5'] := 255;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbREFRAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- Container.RemoveElement('RCLR');
-
- if Container.ElementExists['Ammo'] then begin
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) and (BaseRecord.Signature <> 'WEAP') then
- Container.RemoveElement('Ammo');
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbINFOAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if (Integer(Container.ElementNativeValues['DATA\Flags 1']) and $80) = 0 then
- Container.RemoveElement('DNAM');
-
- Container.RemoveElement('SNDD');
-
- if Container.ElementNativeValues['DATA\Type'] = 3 {Persuasion} then
- Container.ElementNativeValues['DATA\Type'] := 0 {Topic};
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbCELLAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
-// Container2 : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-// i : Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if (not Container.ElementExists['XCLW']) and ((Integer(Container.ElementNativeValues['DATA']) and $02) <> 0) then begin
- Container.Add('XCLW', True);
- Container.ElementEditValues['XCLW'] := 'Default';
- end;
-
- if (not Container.ElementExists['XNAM']) and ((Integer(Container.ElementNativeValues['DATA']) and $02) <> 0) then
- Container.Add('XNAM', True);
-
-// if Supports(Container.ElementBySignature[XCLR], IwbContainerElementRef, Container2) then begin
-// for i:= Pred(Container2.ElementCount) downto 0 do
-// if not Supports(Container2.Elements[i].LinksTo, IwbMainRecord, MainRecord) or (MainRecord.Signature <> 'REGN') then
-// Container2.RemoveElement(i);
-// if Container2.ElementCount < 1 then
-// Container2.Remove;
-// end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbEmbeddedScriptAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if Container.ElementEditValues['SCHR\Type'] = 'Quest' then
- Container.ElementEditValues['SCHR\Type'] := 'Object';
- finally
- wbEndInternalEdit;
- end;
-end;
-
-
-procedure wbSOUNAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- OldCntr: IwbContainerElementRef;
- NewCntr: IwbContainerElementRef;
- NewCntr2: IwbContainerElementRef;
- i: Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementExists['SNDD'] then
- Exit;
-
- if not Supports(Container.RemoveElement('SNDX - Sound Data'), IwbContainerElementRef, OldCntr) then
- Exit;
- if not Supports(Container.Add('SNDD', True), IwbContainerElementRef, NewCntr) then
- Exit;
- for i := 0 to Pred(Min(OldCntr.ElementCount, NewCntr.ElementCount)) do
- NewCntr.Elements[i].Assign(Low(Integer), OldCntr.Elements[i], False);
-
- if not Supports(NewCntr.ElementByName['Attenuation Curve'], IwbContainerElementRef, NewCntr2) then
- Assert(False);
- Assert(NewCntr2.ElementCount = 5);
-
- if Supports(Container.RemoveElement('ANAM'), IwbContainerElementRef, OldCntr) then begin
- Assert(OldCntr.ElementCount = 5);
- for i := 0 to Pred(Min(OldCntr.ElementCount, NewCntr2.ElementCount)) do
- NewCntr2.Elements[i].Assign(Low(Integer), OldCntr.Elements[i], False);
- end else begin
- NewCntr2.Elements[0].NativeValue := 100;
- NewCntr2.Elements[1].NativeValue := 50;
- NewCntr2.Elements[2].NativeValue := 20;
- NewCntr2.Elements[3].NativeValue := 5;
- NewCntr2.Elements[4].NativeValue := 0;
- end;
-
- if not Supports(NewCntr.ElementByName['Reverb Attenuation Control'], IwbContainerElementRef, NewCntr2) then
- Assert(False);
-
- if Supports(Container.RemoveElement('GNAM'), IwbContainerElementRef, OldCntr) then
- NewCntr2.Assign(Low(Integer), OldCntr, False)
- else
- NewCntr2.NativeValue := 80;
-
- if not Supports(NewCntr.ElementByName['Priority'], IwbContainerElementRef, NewCntr2) then
- Assert(False);
-
- if Supports(Container.RemoveElement('HNAM'), IwbContainerElementRef, OldCntr) then
- NewCntr2.Assign(Low(Integer), OldCntr, False)
- else
- NewCntr2.NativeValue := 128;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbWATRAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-// AnimationMultiplier : Extended;
-// AnimationAttackMultiplier : Extended;
- OldCntr: IwbContainerElementRef;
- NewCntr: IwbContainerElementRef;
- i: Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementExists['DNAM'] then
- Exit;
-
- if not Supports(Container.RemoveElement('DATA - Visual Data'), IwbContainerElementRef, OldCntr) then
- Exit;
- if not Supports(Container.Add('DNAM', True), IwbContainerElementRef, NewCntr) then
- Exit;
- for i := 0 to Pred(Min(OldCntr.ElementCount, NewCntr.ElementCount)) do
- if OldCntr.Elements[i].Name = 'Damage (Old Format)' then
- Container.ElementNativeValues['DATA - Damage'] := OldCntr.Elements[i].NativeValue
- else
- NewCntr.Elements[i].Assign(Low(Integer), OldCntr.Elements[i], False);
-
- NewCntr.ElementNativeValues['Noise Properties - Noise Layer One - Amplitude Scale'] := 1.0;
- NewCntr.ElementNativeValues['Noise Properties - Noise Layer Two - Amplitude Scale'] := 0.5;
- NewCntr.ElementNativeValues['Noise Properties - Noise Layer Three - Amplitude Scale'] := 0.25;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-
-procedure wbWEAPAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['DNAM'] then
- Exit;
-
- if Container.ElementNativeValues['DNAM\Animation Multiplier'] = 0.0 then
- Container.ElementNativeValues['DNAM\Animation Multiplier'] := 1.0;
- if Container.ElementNativeValues['DNAM\Animation Attack Multiplier'] = 0.0 then
- Container.ElementNativeValues['DNAM\Animation Attack Multiplier'] := 1.0;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMESGAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- IsMessageBox : Boolean;
- HasTimeDelay : Boolean;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- IsMessageBox := (Integer(Container.ElementNativeValues['DNAM']) and 1) = 1;
- HasTimeDelay := Container.ElementExists['TNAM'];
-
- if IsMessageBox = HasTimeDelay then
- if IsMessageBox then
- Container.RemoveElement('TNAM')
- else begin
- if not Container.ElementExists['DNAM'] then
- Container.Add('DNAM', True);
- Container.ElementNativeValues['DNAM'] := Integer(Container.ElementNativeValues['DNAM']) or 1;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-
-procedure wbEFSHAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- FullParticleBirthRatio : Extended;
- PersistantParticleBirthRatio : Extended;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['DATA'] then
- Exit;
-
- FullParticleBirthRatio := Container.ElementNativeValues['DATA\Particle Shader - Full Particle Birth Ratio'];
- PersistantParticleBirthRatio := Container.ElementNativeValues['DATA\Particle Shader - Persistant Particle Birth Ratio'];
-
- if ((FullParticleBirthRatio <> 0) and (FullParticleBirthRatio <= 1)) then begin
- FullParticleBirthRatio := FullParticleBirthRatio * 78.0;
- Container.ElementNativeValues['DATA\Particle Shader - Full Particle Birth Ratio'] := FullParticleBirthRatio;
- end;
-
- if ((PersistantParticleBirthRatio <> 0) and (PersistantParticleBirthRatio <= 1)) then begin
- PersistantParticleBirthRatio := PersistantParticleBirthRatio * 78.0;
- Container.ElementNativeValues['DATA\Particle Shader - Persistant Particle Birth Ratio'] := PersistantParticleBirthRatio;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbFACTAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Container.ElementExists['CNAM'] then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- Container.RemoveElement('CNAM');
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbLIGHAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['FNAM'] then begin
- Container.Add('FNAM', True);
- Container.ElementNativeValues['FNAM'] := 1.0;
- end;
-
- if Container.ElementExists['DATA'] then begin
- if SameValue(Container.ElementNativeValues['DATA\Falloff Exponent'], 0.0) then
- Container.ElementNativeValues['DATA\Falloff Exponent'] := 1.0;
- if SameValue(Container.ElementNativeValues['DATA\FOV'], 0.0) then
- Container.ElementNativeValues['DATA\FOV'] := 90.0;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbEFITAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- Element : IwbElement;
- ActorValue: Variant;
- MainRecord: IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- MainRecord := Container.ContainingMainRecord;
- if not Assigned(MainRecord) or MainRecord.IsDeleted then
- Exit;
-
- Element := Container.ElementByPath['..\EFID'];
- if not Assigned(Element) then
- Exit;
- if not Supports(Element.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
- if MainRecord.Signature <> 'MGEF' then
- Exit;
- ActorValue := MainRecord.ElementNativeValues['DATA - Data\Actor Value'];
- if VarIsNull(ActorValue) or VarIsClear(ActorValue) then
- Exit;
- if VarCompareValue(ActorValue, Container.ElementNativeValues['Actor Value']) <> vrEqual then
- Container.ElementNativeValues['Actor Value'] := ActorValue;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbRPLDAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainer;
- a, b: Single;
- NeedsFlip: Boolean;
-begin
- if wbBeginInternalEdit then try
- if Supports(aElement, IwbContainer, Container) then begin
- NeedsFlip := False;
- if Container.ElementCount > 1 then begin
- a := StrToFloat((Container.Elements[0] as IwbContainer).Elements[0].Value);
- b := StrToFloat((Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[0].Value);
- case CompareValue(a, b) of
- EqualsValue: begin
- a := StrToFloat((Container.Elements[0] as IwbContainer).Elements[1].Value);
- b := StrToFloat((Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[1].Value);
- NeedsFlip := CompareValue(a, b) = GreaterThanValue;
- end;
- GreaterThanValue:
- NeedsFlip := True;
- end;
- end;
- if NeedsFlip then
- Container.ReverseElements;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbPxDTLocationDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- Result := Container.ElementByName['Type'].NativeValue;
-end;
-
-function wbPKDTFalloutBehaviorFlagsDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize = 8 then
- Result := 1;
-end;
-
-function wbPKDTSpecificFlagsDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize = 8 then
- Exit;
- Result := Container.ElementByName['Type'].NativeValue + 1;
-end;
-
-procedure wbIDLAsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Element : IwbElement;
- Container : IwbContainer;
- SelfAsContainer : IwbContainer;
-begin
- if wbBeginInternalEdit then try
-// if not wbCounterAfterSet('IDLC - Animation Count', aElement) then
- if Supports(aElement.Container, IwbContainer, Container) then begin
- Element := Container.ElementByPath['IDLC\Animation Count'];
- if Assigned(Element) and Supports(aElement, IwbContainer, SelfAsContainer) and
- (Element.GetNativeValue<>SelfAsContainer.GetElementCount) then
- Element.SetNativeValue(SelfAsContainer.GetElementCount);
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbAnimationsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Element : IwbElement;
- Elems : IwbElement;
- Container : IwbContainer;
-begin
- if wbBeginInternalEdit then try
-// if not wbCounterContainerAfterSet('IDLC - Animation Count', 'IDLA - Animations', aElement) then
- if Supports(aElement, IwbContainer, Container) then begin
- Element := Container.ElementByPath['IDLC\Animation Count'];
- Elems := Container.ElementByName['IDLA - Animations'];
- if Assigned(Element) and not Assigned(Elems) then
- if Element.GetNativeValue<>0 then
- Element.SetNativeValue(0);
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbOffsetDataColsCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbDataContainer;
- Element : IwbElement;
- fResult : Extended;
-begin
- Result := 0;
-
- if Supports(aElement.Container, IwbDataContainer, Container) and (Container.Name = 'OFST - Offset Data') and
- Supports(Container.Container, IwbDataContainer, Container) then begin
- Element := Container.ElementByPath['Object Bounds\NAM0 - Min\X'];
- if Assigned(Element) then begin
- fResult := Element.NativeValue;
- if fResult >= MaxInt then
- Result := 0
- else
- Result := Trunc(fResult);
- Element := Container.ElementByPath['Object Bounds\NAM9 - Max\X'];
- if Assigned(Element) then begin
- fResult := Element.NativeValue;
- if fResult >= MaxInt then
- Result := 1
- else
- Result := Trunc(fResult) - Result + 1;
- end;
- end;
- end;
-end;
-
-procedure DefineFNVa;
-begin
- wbRecordFlags := wbInteger('Record Flags', itU32, wbFlags([
- {0x00000001}'ESM',
- {0x00000002}'',
- {0x00000004}'', // Plugin selected (Editor)
- {0x00000008}'Form initialized (Runtime only)', // Form cannot be saved (Runtime)/Plugin active (Editor)
- {0x00000010}'', // Plugin cannot be active or selected (Editor)
- {0x00000020}'Deleted',
- {0x00000040}'Border Region / Has Tree LOD / Constant / Hidden From Local Map / Plugin Endian',
- {0x00000080}'Turn Off Fire',
- {0x00000100}'Inaccessible',
- {0x00000200}'Casts shadows / On Local Map / Motion Blur',
- {0x00000400}'Quest item / Persistent reference',
- {0x00000800}'Initially disabled',
- {0x00001000}'Ignored',
- {0x00002000}'No Voice Filter',
- {0x00004000}'Cannot Save (Runtime only)',
- {0x00008000}'Visible when distant',
- {0x00010000}'Random Anim Start / High Priority LOD',
- {0x00020000}'Dangerous / Off limits (Interior cell) / Radio Station (Talking Activator)',
- {0x00040000}'Compressed',
- {0x00080000}'Can''t wait / Platform Specific Texture / Dead',
- {0x00100000}'Unknown 21',
- {0x00200000}'Load Started (Runtime Only)', // set when beginning to load the form from save
- {0x00400000}'Unknown 23',
- {0x00800000}'Unknown 24', // Runtime might use it for "Not dead" on non actors.
- {0x01000000}'Destructible (Runtime only)',
- {0x02000000}'Obstacle / No AI Acquire',
- {0x03000000}'NavMesh Generation - Filter',
- {0x08000000}'NavMesh Generation - Bounding Box',
- {0x10000000}'Non-Pipboy / Reflected by Auto Water',
- {0x20000000}'Child Can Use / Refracted by Auto Water',
- {0x40000000}'NavMesh Generation - Ground',
- {0x80000000}'Multibound'
- ]));
-
-(* wbInteger('Record Flags 2', itU32, wbFlags([
- {0x00000001}'Unknown 1',
- {0x00000002}'Unknown 2',
- {0x00000004}'Unknown 3',
- {0x00000008}'Unknown 4',
- {0x00000010}'Unknown 5',
- {0x00000020}'Unknown 6',
- {0x00000040}'Unknown 7',
- {0x00000080}'Unknown 8',
- {0x00000100}'Unknown 9',
- {0x00000200}'Unknown 10',
- {0x00000400}'Unknown 11',
- {0x00000800}'Unknown 12',
- {0x00001000}'Unknown 13',
- {0x00002000}'Unknown 14',
- {0x00004000}'Unknown 15',
- {0x00008000}'Unknown 16',
- {0x00010000}'Unknown 17',
- {0x00020000}'Unknown 18',
- {0x00040000}'Unknown 19',
- {0x00080000}'Unknown 20',
- {0x00100000}'Unknown 21',
- {0x00200000}'Unknown 22',
- {0x00400000}'Unknown 23',
- {0x00800000}'Unknown 24',
- {0x01000000}'Unknown 25',
- {0x02000000}'Unknown 26',
- {0x03000000}'Unknown 27',
- {0x08000000}'Unknown 28',
- {0x10000000}'Unknown 29',
- {0x20000000}'Unknown 30',
- {0x40000000}'Unknown 31',
- {0x80000000}'Unknown 32'
- ])); (**)
-
- wbMainRecordHeader := wbStruct('Record Header', [
- wbString('Signature', 4, cpCritical),
- wbInteger('Data Size', itU32, nil, cpIgnore),
- wbRecordFlags,
- wbFormID('FormID', cpFormID),
- wbInteger('Version Control Master FormID', itU32, nil, cpIgnore),
- wbInteger('Form Version', itU16, nil, cpIgnore),
- wbInteger('Version Control Info 2', itU16, nil, cpIgnore) // limited to values from 0 to 0xF
- ]);
-
- wbSizeOfMainRecordStruct := 24;
-
- wbIgnoreRecords.Add(XXXX);
-
- wbXRGD := wbByteArray(XRGD, 'Ragdoll Data');
- wbXRGB := wbByteArray(XRGB, 'Ragdoll Biped Data');
-
- wbMusicEnum := wbEnum(['Default', 'Public', 'Dungeon']);
- wbSoundLevelEnum := wbEnum([
- 'Loud',
- 'Normal',
- 'Silent'
- ]);
-
- wbWeaponAnimTypeEnum := wbEnum([
- {00} 'Hand to Hand',
- {01} 'Melee (1 Hand)',
- {02} 'Melee (2 Hand)',
- {03} 'Pistol - Balistic (1 Hand)',
- {04} 'Pistol - Energy (1 Hand)',
- {05} 'Rifle - Balistic (2 Hand)',
- {06} 'Rifle - Automatic (2 Hand)',
- {07} 'Rifle - Energy (2 Hand)',
- {08} 'Handle (2 Hand)',
- {09} 'Launcher (2 Hand)',
- {10} 'Grenade Throw (1 Hand)',
- {11} 'Land Mine (1 Hand)',
- {12} 'Mine Drop (1 Hand)',
- {13} 'Thrown (1 Hand)'
- ]);
-
- wbReloadAnimEnum := wbEnum([
- 'ReloadA',
- 'ReloadB',
- 'ReloadC',
- 'ReloadD',
- 'ReloadE',
- 'ReloadF',
- 'ReloadG',
- 'ReloadH',
- 'ReloadI',
- 'ReloadJ',
- 'ReloadK',
- 'ReloadL',
- 'ReloadM',
- 'ReloadN',
- 'ReloadO',
- 'ReloadP',
- 'ReloadQ',
- 'ReloadR',
- 'ReloadS',
-// 'ReloadT',
-// 'ReloadU',
-// 'ReloadV',
- 'ReloadW',
- 'ReloadX',
- 'ReloadY',
- 'ReloadZ'
- ],[255, 'None']); // 255 seen in DLC, though Geck converts to 0
-
- wbEDID := wbString(EDID, 'Editor ID', 0, cpNormal); // not cpBenign according to Arthmoor
- wbEDIDReq := wbString(EDID, 'Editor ID', 0, cpNormal, True); // not cpBenign according to Arthmoor
- wbFULL := wbString(FULL, 'Name', 0, cpTranslate);
- wbFULLActor := wbString(FULL, 'Name', 0, cpTranslate, False, wbActorTemplateUseBaseData);
- wbFULLReq := wbString(FULL, 'Name', 0, cpNormal, True);
- wbDESC := wbString(DESC, 'Description', 0, cpTranslate);
- wbDESCReq := wbString(DESC, 'Description', 0, cpTranslate, True);
- wbXSCL := wbFloat(XSCL, 'Scale');
- wbOBND := wbStruct(OBND, 'Object Bounds', [
- wbInteger('X1', itS16),
- wbInteger('Y1', itS16),
- wbInteger('Z1', itS16),
- wbInteger('X2', itS16),
- wbInteger('Y2', itS16),
- wbInteger('Z2', itS16)
- ]);
- wbOBNDReq := wbStruct(OBND, 'Object Bounds', [
- wbInteger('X1', itS16),
- wbInteger('Y1', itS16),
- wbInteger('Z1', itS16),
- wbInteger('X2', itS16),
- wbInteger('Y2', itS16),
- wbInteger('Z2', itS16)
- ], cpNormal, True);
- wbREPL := wbFormIDCkNoReach(REPL, 'Repair List', [FLST]);
- wbEITM := wbFormIDCk(EITM, 'Object Effect', [ENCH, SPEL]);
- wbBIPL := wbFormIDCk(BIPL, 'Biped Model List', [FLST]);
- wbCOED := wbStructExSK(COED, [2], [0, 1], 'Extra Data', [
- {00} wbFormIDCkNoReach('Owner', [NPC_, FACT, NULL]),
- {04} wbUnion('Global Variable / Required Rank', wbCOEDOwnerDecider, [
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCk('Global Variable', [GLOB, NULL]),
- wbInteger('Required Rank', itS32)
- ]),
- {08} wbFloat('Item Condition')
- ]);
-
- wbYNAM := wbFormIDCk(YNAM, 'Sound - Pick Up', [SOUN]);
- wbZNAM := wbFormIDCk(ZNAM, 'Sound - Drop', [SOUN]);
-
- wbPosRot :=
- wbStruct('Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ]);
-
- wbDATAPosRot :=
- wbStruct(DATA, 'Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ], cpNormal, True);
-
- wbMODS :=
- wbArrayS(MODS, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
- wbMO2S :=
- wbArrayS(MO2S, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
- wbMO3S :=
- wbArrayS(MO3S, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
- wbMO4S :=
- wbArrayS(MO4S, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
-
- wbMODD :=
- wbInteger(MODD, 'FaceGen Model Flags', itU8, wbFlags([
- 'Head',
- 'Torso',
- 'Right Hand',
- 'Left Hand'
- ]));
- wbMOSD :=
- wbInteger(MOSD, 'FaceGen Model Flags', itU8, wbFlags([
- 'Head',
- 'Torso',
- 'Right Hand',
- 'Left Hand'
- ]));
-
- wbMODL :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODB, 'Unknown', 4, cpIgnore),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
-// wbArray(MODT, 'Texture Files Hashes',
-// wbByteArray('Unknown', 24, cpBenign),
-// wbArray('Hashes', wbInteger('Hash', itU64, wbMODTCallback), 3),
-// 0, nil, nil, cpBenign),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, nil, True);
-
- wbMODLActor :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODB, 'Unknown', 4, cpIgnore),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
-// wbArray(MODT, 'Texture Files Hashes',
-// wbByteArray('Unknown', 24, cpBenign),
-// wbArray('Hashes', wbInteger('Hash', itU64, wbMODTCallback), 3),
-// 0, nil, nil, cpBenign),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, wbActorTemplateUseModelAnimation, True);
-
- wbMODLReq :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODB, 'Unknown', 4, cpIgnore),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
-// wbArray(MODT, 'Texture Files',
-// wbByteArray('Unknown', 24, cpBenign),
-// wbArray('Hashes', wbInteger('Hash', itU64, wbMODTCallback), 3),
-// 0, nil, nil, cpBenign),
- wbMODS,
- wbMODD
- ], [], cpNormal, True, nil, True);
-
-
- wbDEST := wbRStruct('Destructable', [
- wbStruct(DEST, 'Header', [
- wbInteger('Health', itS32),
- wbInteger('Count', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'VATS Targetable'
- ], True)),
- wbByteArray('Unused', 2)
- ]),
- wbRArray('Stages',
- wbRStruct('Stage', [
- wbStruct(DSTD, 'Destruction Stage Data', [
- wbInteger('Health %', itU8),
- wbInteger('Index', itU8),
- wbInteger('Damage Stage', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'Cap Damage',
- 'Disable',
- 'Destroy'
- ])),
- wbInteger('Self Damage per Second', itS32),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbFormIDCk('Debris', [DEBR, NULL]),
- wbInteger('Debris Count', itS32)
- ], cpNormal, True),
- wbRStructSK([0], 'Model', [
- wbString(DMDL, 'Model Filename'),
- wbByteArray(DMDT, 'Texture Files Hashes', 0, cpIgnore)
-// wbArray(DMDT, 'Unknown',
-// wbByteArray('Unknown', 24, cpBenign),
-// 0, nil, nil, cpBenign)
- ], []),
- wbEmpty(DSTF, 'End Marker', cpNormal, True)
- ], [])
- )
- ], []);
-
- wbDESTActor := wbRStruct('Destructable', [
- wbStruct(DEST, 'Header', [
- wbInteger('Health', itS32),
- wbInteger('Count', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'VATS Targetable'
- ])),
- wbByteArray('Unused', 2)
- ]),
- wbRArray('Stages',
- wbRStruct('Stage', [
- wbStruct(DSTD, 'Destruction Stage Data', [
- wbInteger('Health %', itU8),
- wbInteger('Index', itU8),
- wbInteger('Damage Stage', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'Cap Damage',
- 'Disable',
- 'Destroy'
- ])),
- wbInteger('Self Damage per Second', itS32),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbFormIDCk('Debris', [DEBR, NULL]),
- wbInteger('Debris Count', itS32)
- ], cpNormal, True),
- wbRStructSK([0], 'Model', [
- wbString(DMDL, 'Model Filename'),
- wbByteArray(DMDT, 'Texture Files Hashes', 0, cpIgnore)
-// wbArray(DMDT, 'Unknown',
-// wbByteArray('Unknown', 24, cpBenign),
-// 0, nil, nil, cpBenign)
- ], []),
- wbEmpty(DSTF, 'End Marker', cpNormal, True)
- ], [])
- )
- ], [], cpNormal, False, wbActorTemplateUseModelAnimation);
-
- wbSCRI := wbFormIDCk(SCRI, 'Script', [SCPT]);
- wbSCRIActor := wbFormIDCk(SCRI, 'Script', [SCPT], False, cpNormal, False, wbActorTemplateUseScript);
- wbENAM := wbFormIDCk(ENAM, 'Object Effect', [ENCH]);
-
- wbXLOD := wbArray(XLOD, 'Distant LOD Data', wbFloat('Unknown'), 3);
-
- wbXESP := wbStruct(XESP, 'Enable Parent', [
- wbFormIDCk('Reference', [PLYR, REFR, ACRE, ACHR, PGRE, PMIS, PBEA]),
- wbInteger('Flags', itU8, wbFlags([
- 'Set Enable State to Opposite of Parent',
- 'Pop In'
- ])),
- wbByteArray('Unused', 3)
- ]);
-
- wbSCHRReq := wbStruct(SCHR, 'Basic Script Data', [
- wbByteArray('Unused', 4),
- wbInteger('RefCount', itU32),
- wbInteger('CompiledSize', itU32),
- wbInteger('VariableCount', itU32),
- wbInteger('Type', itU16, wbEnum([
- 'Object',
- 'Quest'
- ], [
- $100, 'Effect'
- ])),
- wbInteger('Flags', itU16, wbFlags([
- 'Enabled'
- ]), cpNormal, False, nil, nil, 1)
- ], cpNormal, True);
-
- wbSCROs :=
- wbRArray('References',
- wbRUnion('', [
- wbFormID(SCRO, 'Global Reference'),
-// wbFormIDCk(SCRO, 'Global Reference',
-// [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, IMAD,
-// BOOK, KEYM, ALCH, LIGH, QUST, PLYR, PACK, LVLI, ECZN, EXPL, FLST, IDLM, PMIS,
-// FACT, ACHR, REFR, ACRE, GLOB, DIAL, CELL, SOUN, MGEF, WTHR, CLAS, EFSH, RACE,
-// LVLC, CSTY, WRLD, SCPT, IMGS, MESG, MSTT, MUSC, NOTE, PERK, PGRE, PROJ, LVLN,
-// WATR, ENCH, TREE, REPU, REGN, CSNO, CHAL, IMOD, RCCT, CMNY, CDCK, CHIP, CCRD,
-// TERM, HAIR, EYES, ADDN, RCPE, NULL]),
- wbInteger(SCRV, 'Local Variable', itU32)
- ], [])
- );
-
- wbSLSD := wbStructSK(SLSD, [0], 'Local Variable Data', [
- wbInteger('Index', itU32),
- wbByteArray('Unused', 12),
- wbInteger('Flags', itU8, wbFlags(['IsLongOrShort']), cpCritical),
- wbByteArray('Unused', 7)
- ]);
-
- wbEmbeddedScript := wbRStruct('Embedded Script', [
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Embedded Script', 0, cpNormal{, True}),
- wbStringScript(SCTX, 'Embedded Script Source', 0, cpNormal{, True}),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ], [], cpNormal, False, nil, False, wbEmbeddedScriptAfterLoad);
-
- wbEmbeddedScriptPerk := wbRStruct('Embedded Script', [
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Embedded Script', 0, cpNormal, True),
- wbStringScript(SCTX, 'Embedded Script Source', 0, cpNormal, True),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ], [], cpNormal, False, wbEPF2DontShow, False, wbEmbeddedScriptAfterLoad);
-
- wbEmbeddedScriptReq := wbRStruct('Embedded Script', [
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Embedded Script', 0, cpNormal{, True}),
- wbStringScript(SCTX, 'Embedded Script Source', 0, cpNormal{, True}),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ], [], cpNormal, True, nil, False, wbEmbeddedScriptAfterLoad);
-
-
- wbXLCM := wbInteger(XLCM, 'Level Modifier', itS32);
-
- wbRecord(ACHR, 'Placed NPC', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [NPC_], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- {--- Ragdoll ---}
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Leveled Actor ----}
- wbXLCM,
-
- {--- Merchant Container ----}
- wbFormIDCk(XMRC, 'Merchant Container', [REFR], True),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbString(XATO, 'Activation Prompt'),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbXOWN := wbFormIDCkNoReach(XOWN, 'Owner', [FACT, ACHR, CREA, NPC_]); // Ghouls can own too aparently !
- wbXGLB := wbFormIDCk(XGLB, 'Global variable', [GLOB]);
-
- wbRecord(ACRE, 'Placed Creature', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [CREA], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Leveled Actor ----}
- wbXLCM,
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Merchant Container ----}
- wbFormIDCk(XMRC, 'Merchant Container', [REFR], True),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbString(XATO, 'Activation Prompt'),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(ACTI, 'Activator', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbDEST,
- wbFormIDCk(SNAM, 'Sound - Looping', [SOUN]),
- wbFormIDCk(VNAM, 'Sound - Activation', [SOUN]),
- wbFormIDCk(INAM, 'Radio Template', [SOUN]),
- wbFormIDCk(RNAM, 'Radio Station', [TACT]),
- wbFormIDCk(WNAM, 'Water Type', [WATR]),
- wbString(XATO, 'Activation Prompt')
- ]);
-
- wbICON := wbRStruct('Icon', [
- wbString(ICON, 'Large Icon filename', 0, cpNormal, True),
- wbString(MICO, 'Small Icon filename')
- ], [], cpNormal, False, nil, True);
-
- wbICONReq := wbRStruct('Icon', [
- wbString(ICON, 'Large Icon filename', 0, cpNormal, True),
- wbString(MICO, 'Small Icon filename')
- ], [], cpNormal, True, nil, True);
-
- wbVatsValueFunctionEnum :=
- wbEnum([
- 'Weapon Is',
- 'Weapon In List',
- 'Target Is',
- 'Target In List',
- 'Target Distance',
- 'Target Part',
- 'VATS Action',
- 'Is Success',
- 'Is Critical',
- 'Critical Effect Is',
- 'Critical Effect In List',
- 'Is Fatal',
- 'Explode Part',
- 'Dismember Part',
- 'Cripple Part',
- 'Weapon Type Is',
- 'Is Stranger',
- 'Is Paralyzing Palm'
- ]);
-
- wbActorValueEnum :=
- wbEnum([
- {00} 'Aggresion',
- {01} 'Confidence',
- {02} 'Energy',
- {03} 'Responsibility',
- {04} 'Mood',
- {05} 'Strength',
- {06} 'Perception',
- {07} 'Endurance',
- {08} 'Charisma',
- {09} 'Intelligence',
- {10} 'Agility',
- {11} 'Luck',
- {12} 'Action Points',
- {13} 'Carry Weight',
- {14} 'Critical Chance',
- {15} 'Heal Rate',
- {16} 'Health',
- {17} 'Melee Damage',
- {18} 'Damage Resistance',
- {19} 'Poison Resistance',
- {20} 'Rad Resistance',
- {21} 'Speed Multiplier',
- {22} 'Fatigue',
- {23} 'Karma',
- {24} 'XP',
- {25} 'Perception Condition',
- {26} 'Endurance Condition',
- {27} 'Left Attack Condition',
- {28} 'Right Attack Condition',
- {29} 'Left Mobility Condition',
- {30} 'Right Mobility Condition',
- {31} 'Brain Condition',
- {32} 'Barter',
- {33} 'Big Guns (obsolete)',
- {34} 'Energy Weapons',
- {35} 'Explosives',
- {36} 'Lockpick',
- {37} 'Medicine',
- {38} 'Melee Weapons',
- {39} 'Repair',
- {40} 'Science',
- {41} 'Guns',
- {42} 'Sneak',
- {43} 'Speech',
- {44} 'Survival',
- {45} 'Unarmed',
- {46} 'Inventory Weight',
- {47} 'Paralysis',
- {48} 'Invisibility',
- {49} 'Chameleon',
- {50} 'Night Eye',
- {51} 'Turbo',
- {52} 'Fire Resistance',
- {53} 'Water Breathing',
- {54} 'Rad Level',
- {55} 'Bloody Mess',
- {56} 'Unarmed Damage',
- {57} 'Assistance',
- {58} 'Electric Resistance',
- {59} 'Frost Resistance',
- {60} 'Energy Resistance',
- {61} 'EMP Resistance',
- {62} 'Variable01',
- {63} 'Variable02',
- {64} 'Variable03',
- {65} 'Variable04',
- {66} 'Variable05',
- {67} 'Variable06',
- {68} 'Variable07',
- {79} 'Variable08',
- {70} 'Variable09',
- {71} 'Variable10',
- {72} 'Ignore Crippled Limbs',
- {73} 'Dehydration',
- {74} 'Hunger',
- {75} 'Sleep Deprivation',
- {76} 'Damage Threshold'
- ], [
- -1, 'None'
- ]);
-
- wbModEffectEnum :=
- wbEnum([
- {00} 'None',
- {01} 'Increase Weapon Damage',
- {02} 'Increase Clip Capacity',
- {03} 'Decrease Spread',
- {04} 'Decrease Weight',
- {05} 'Regenerate Ammo (shots)',
- {06} 'Regenerate Ammo (seconds)',
- {07} 'Decrease Equip Time',
- {08} 'Increase Rate of Fire',
- {09} 'Increase Projectile Speed',
- {10} 'Increase Max. Condition',
- {11} 'Silence',
- {12} 'Split Beam',
- {13} 'VATS Bonus',
- {14} 'Increase Zoom',
- {15} 'Decrease Equip Time',
- {16} 'Suppressor'
- ]);
-
- wbSkillEnum :=
- wbEnum([
- 'Barter',
- 'Big Guns (obsolete)',
- 'Energy Weapons',
- 'Explosives',
- 'Lockpick',
- 'Medicine',
- 'Melee Weapons',
- 'Repair',
- 'Science',
- 'Guns',
- 'Sneak',
- 'Speech',
- 'Survival',
- 'Unarmed'
- ], [
- -1, 'None'
- ]);
-
- wbCrimeTypeEnum :=
- wbEnum([
- 'Steal',
- 'Pickpocket',
- 'Trespass',
- 'Attack',
- 'Murder'
- ], [
- -1, 'None'
- ]);
-
- wbActorValue := wbInteger('Actor Value', itS32, wbActorValueEnum);
-
- wbEquipTypeEnum :=
- wbEnum([
- {00} 'Big Guns',
- {01} 'Energy Weapons',
- {02} 'Small Guns',
- {03} 'Melee Weapons',
- {04} 'Unarmed Weapon',
- {05} 'Thrown Weapons',
- {06} 'Mine',
- {07} 'Body Wear',
- {08} 'Head Wear',
- {09} 'Hand Wear',
- {10} 'Chems',
- {11} 'Stimpack',
- {12} 'Food',
- {13} 'Alcohol'
- ], [
- -1, 'None'
- ]);
-
- wbETYP := wbInteger(ETYP, 'Equiptment Type', itS32, wbEquipTypeEnum);
- wbETYPReq := wbInteger(ETYP, 'Equiptment Type', itS32, wbEquipTypeEnum, cpNormal, True);
-
- wbFormTypeEnum :=
- wbEnum([], [
- $04, 'Texture Set',
- $05, 'Menu Icon',
- $06, 'Global',
- $07, 'Class',
- $08, 'Faction',
- $09, 'Head Part',
- $0A, 'Hair',
- $0B, 'Eyes',
- $0C, 'Race',
- $0D, 'Sound',
- $0E, 'Acoustic Space',
- $0F, 'Skill',
- $10, 'Base Effect',
- $11, 'Script',
- $12, 'Landscape Texture',
- $13, 'Object Effect',
- $14, 'Actor Effect',
- $15, 'Activator',
- $16, 'Talking Activator',
- $17, 'Terminal',
- $18, 'Armor',
- $19, 'Book',
- $1A, 'Clothing',
- $1B, 'Container',
- $1C, 'Door',
- $1D, 'Ingredient',
- $1E, 'Light',
- $1F, 'Misc',
- $20, 'Static',
- $21, 'Static Collection',
- $22, 'Movable Static',
- $23, 'Placeable Water',
- $24, 'Grass',
- $25, 'Tree',
- $26, 'Flora',
- $27, 'Furniture',
- $28, 'Weapon',
- $29, 'Ammo',
- $2A, 'NPC',
- $2B, 'Creature',
- $2C, 'Leveled Creature',
- $2D, 'Leveled NPC',
- $2E, 'Key',
- $2F, 'Ingestible',
- $30, 'Idle Marker',
- $31, 'Note',
- $32, 'Constructible Object',
- $33, 'Projectile',
- $34, 'Leveled Item',
- $35, 'Weather',
- $36, 'Climate',
- $37, 'Region',
- $39, 'Cell',
- $3A, 'Placed Object',
- $3B, 'Placed Character',
- $3C, 'Placed Creature',
- $3E, 'Placed Grenade',
- $41, 'Worldspace',
- $42, 'Landscape',
- $43, 'Navigation Mesh',
- $45, 'Dialog Topic',
- $46, 'Dialog Response',
- $47, 'Quest',
- $48, 'Idle Animation',
- $49, 'Package',
- $4A, 'Combat Style',
- $4B, 'Load Screen',
- $4C, 'Leveled Spell',
- $4D, 'Animated Object',
- $4E, 'Water',
- $4F, 'Effect Shader',
- $51, 'Explosion',
- $52, 'Debris',
- $53, 'Image Space',
- $54, 'Image Space Modifier',
- $55, 'FormID List',
- $56, 'Perk',
- $57, 'Body Part Data',
- $58, 'Addon Node',
- $59, 'Actor Value Info',
- $5A, 'Radiation Stage',
- $5B, 'Camera Shot',
- $5C, 'Camera Path',
- $5D, 'Voice Type',
- $5E, 'Impact Data',
- $5F, 'Impact DataSet',
- $60, 'Armor Addon',
- $61, 'Encounter Zone',
- $62, 'Message',
- $63, 'Ragdoll',
- $64, 'Default Object Manager',
- $65, 'Lighting Template',
- $66, 'Music Type',
- $67, 'Item Mod',
- $68, 'Reputation',
- $69, '?PCBE', //no such records in FalloutNV.esm
- $6A, 'Recipe',
- $6B, 'Recipe Category',
- $6C, 'Casino Chip',
- $6D, 'Casino',
- $6E, 'Load Screen Type',
- $6F, 'Media Set',
- $70, 'Media Location Controller',
- $71, 'Challenge',
- $72, 'Ammo Effect',
- $73, 'Caravan Card',
- $74, 'Caravan Money',
- $75, 'Caravan Deck',
- $76, 'Dehydration Stages',
- $77, 'Hunger Stages',
- $78, 'Sleep Deprivation Stages'
- ]);
-
- wbMenuModeEnum :=
- wbEnum([],[
- 1, 'Type: Character Interface',
- 2, 'Type: Other',
- 3, 'Type: Console',
- 1001, 'Specific: Message',
- 1002, 'Specific: Inventory',
- 1003, 'Specific: Stats',
- 1004, 'Specific: HUDMainMenu',
- 1007, 'Specific: Loading',
- 1008, 'Specific: Container',
- 1009, 'Specific: Dialog',
- 1012, 'Specific: Sleep/Wait',
- 1013, 'Specific: Pause',
- 1014, 'Specific: LockPick',
- 1016, 'Specific: Quantity',
- 1027, 'Specific: Level Up',
- 1035, 'Specific: Pipboy Repair',
- 1036, 'Specific: Race / Sex',
- 1047, 'Specific: Credits',
- 1048, 'Specific: CharGen',
- 1051, 'Specific: TextEdit',
- 1053, 'Specific: Barter',
- 1054, 'Specific: Surgery',
- 1055, 'Specific: Hacking',
- 1056, 'Specific: VATS',
- 1057, 'Specific: Computers',
- 1058, 'Specific: Vendor Repair',
- 1059, 'Specific: Tutorial',
- 1060, 'Specific: You''re SPECIAL book'
- ]);
-end;
-
-procedure DefineFNVb;
-begin
- wbMiscStatEnum :=
- wbEnum([
- 'Quests Completed',
- 'Locations Discovered',
- 'People Killed',
- 'Creatures Killed',
- 'Locks Picked',
- 'Computers Hacked',
- 'Stimpaks Taken',
- 'Rad-X Taken',
- 'RadAway Taken',
- 'Chems Taken',
- 'Times Addicted',
- 'Mines Disarmed',
- 'Speech Successes',
- 'Pockets Picked',
- 'Pants Exploded',
- 'Books Read',
- 'Bobbleheads Found',
- 'Weapons Created',
- 'People Mezzed',
- 'Captives Rescued',
- 'Sandman Kills',
- 'Paralyzing Punches',
- 'Robots Disabled',
- 'Contracts Completed',
- 'Corpses Eaten',
- 'Mysterious Stranger Visits',
- 'Doctor Bags Used',
- 'Challenges Completed',
- 'Miss Fortunate Occurrences',
- 'Disintegrations',
- 'Have Limbs Crippled',
- 'Speech Failures',
- 'Items Crafted',
- 'Weapon Modifications',
- 'Items Repaired',
- 'Total Things Killed',
- 'Dismembered Limbs',
- 'Caravan Games Won',
- 'Caravan Games Lost',
- 'Barter Amount Traded',
- 'Roulette Games Played',
- 'Blackjack Games Played',
- 'Slots Games Played'
- ]);
-
- wbAlignmentEnum :=
- wbEnum([
- 'Good',
- 'Neutral',
- 'Evil',
- 'Very Good',
- 'Very Evil'
- ]);
-
- wbAxisEnum :=
- wbEnum([], [
- 88, 'X',
- 89, 'Y',
- 90, 'Z'
- ]);
-
- wbCriticalStageEnum :=
- wbEnum([
- 'None',
- 'Goo Start',
- 'Goo End',
- 'Disintegrate Start',
- 'Disintegrate End'
- ]);
-
- wbSexEnum :=
- wbEnum(['Male','Female']);
-
- wbCreatureTypeEnum :=
- wbEnum([
- 'Animal',
- 'Mutated Animal',
- 'Mutated Insect',
- 'Abomination',
- 'Super Mutant',
- 'Feral Ghoul',
- 'Robot',
- 'Giant'
- ]);
-
- wbPlayerActionEnum :=
- wbEnum([
- '',
- 'Swinging Melee Weapon',
- 'Throwing Grenade',
- 'Fire Weapon',
- 'Lay Mine',
- 'Z Key Object',
- 'Jumping',
- 'Knocking over Objects',
- 'Stand on Table/Chair',
- 'Iron Sites',
- 'Destroying Object'
- ]);
-
- wbBodyLocationEnum :=
- wbEnum([
- 'Torso',
- 'Head 1',
- 'Head 2',
- 'Left Arm 1',
- 'Left Arm 2',
- 'Right Arm 1',
- 'Right Arm 2',
- 'Left Leg 1',
- 'Left Leg 2',
- 'Left Leg 3',
- 'Right Leg 1',
- 'Right Leg 2',
- 'Right Leg 3',
- 'Brain'
- ], [
- -1, 'None'
- ]);
-
-
- wbEFID := wbFormIDCk(EFID, 'Base Effect', [MGEF]);
-
- wbEFIT :=
- wbStructSK(EFIT, [3, 4], '', [
- wbInteger('Magnitude', itU32),
- wbInteger('Area', itU32),
- wbInteger('Duration', itU32),
- wbInteger('Type', itU32, wbEnum(['Self', 'Touch', 'Target'])),
- wbActorValue
- ], cpNormal, True, nil, -1, wbEFITAfterLoad);
-
- wbCTDA :=
- wbStruct(CTDA, 'Condition', [
- wbInteger('Type', itU8, wbCtdaTypeToStr, wbCtdaTypeToInt, cpNormal, False, nil, wbCtdaTypeAfterSet),
- wbByteArray('Unused', 3),
- wbUnion('Comparison Value', wbCTDACompValueDecider, [
- wbFloat('Comparison Value - Float'),
- wbFormIDCk('Comparison Value - Global', [GLOB])
- ]),
- wbInteger('Function', itU32, wbCTDAFunctionToStr, wbCTDAFunctionToInt), // Limited to itu16
- wbUnion('Parameter #1', wbCTDAParam1Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name (INVALID)', itS32),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Quest Stage (INVALID)', itS32),
- {09} wbInteger('Misc Stat', itU32, wbMiscStatEnum),
- {10} wbInteger('Alignment', itU32, wbAlignmentEnum),
- {11} wbInteger('Equip Type', itU32, wbEquipTypeEnum),
- {12} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {13} wbInteger('Critical Stage', itU32, wbCriticalStageEnum),
- {14} wbFormIDCkNoReach('Object Reference', [PLYR, REFR, ACHR, ACRE, PGRE, PMIS, PBEA, TRGT], True),
- {16} wbFormIDCkNoReach('Inventory Object', [ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, FLST, CHIP, CMNY, IMOD]),
- {17} wbFormIDCkNoReach('Actor', [PLYR, ACHR, ACRE, TRGT], True),
- {18} wbFormIDCkNoReach('Voice Type', [VTYP]),
- {19} wbFormIDCkNoReach('Idle', [IDLE]),
- {20} wbFormIDCkNoReach('Form List', [FLST]),
- {21} wbFormIDCkNoReach('Note', [NOTE]),
- {22} wbFormIDCkNoReach('Quest', [QUST]),
- {23} wbFormIDCkNoReach('Faction', [FACT]),
- {24} wbFormIDCkNoReach('Weapon', [WEAP]),
- {25} wbFormIDCkNoReach('Cell', [CELL]),
- {26} wbFormIDCkNoReach('Class', [CLAS]),
- {27} wbFormIDCkNoReach('Race', [RACE]),
- {28} wbFormIDCkNoReach('Actor Base', [NPC_, CREA, ACTI, TACT, NULL]),
- {29} wbFormIDCkNoReach('Global', [GLOB]),
- {30} wbFormIDCkNoReach('Weather', [WTHR]),
- {31} wbFormIDCkNoReach('Package', [PACK]),
- {32} wbFormIDCkNoReach('Encounter Zone', [ECZN]),
- {33} wbFormIDCkNoReach('Perk', [PERK]),
- {34} wbFormIDCkNoReach('Owner', [FACT, NPC_]),
- {35} wbFormIDCkNoReach('Furniture', [FURN, FLST]),
- {36} wbFormIDCkNoReach('Effect Item', [SPEL, ENCH, ALCH, INGR]),
- {37} wbFormIDCkNoReach('Base Effect', [MGEF]),
- {38} wbFormIDCkNoReach('Worldspace', [WRLD]),
- {39} wbInteger('VATS Value Function', itU32, wbVATSValueFunctionEnum),
- {40} wbInteger('VATS Value Param (INVALID)', itU32),
- {41} wbInteger('Creature Type', itU32, wbCreatureTypeEnum),
- {42} wbInteger('Menu Mode', itU32, wbMenuModeEnum),
- {43} wbInteger('Player Action', itU32, wbPlayerActionEnum),
- {44} wbInteger('Body Location', itS32, wbBodyLocationEnum),
- {45} wbFormIDCkNoReach('Referenceable Object', [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, FLST, CHIP, CMNY, CCRD, IMOD, LVLC, LVLN],
- [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, CHIP, CMNY, CCRD, IMOD, LVLC, LVLN]),
- {46} wbInteger('Quest Objective (INVALID)', itS32),
- {47} wbFormIDCkNoReach('Reputation', [REPU]),
- {48} wbFormIDCkNoReach('Region', [REGN]),
- {49} wbFormIDCkNoReach('Challenge', [CHAL]),
- {50} wbFormIDCkNoReach('Casino', [CSNO]),
- {51} wbFormID('Form')
- ]),
- wbUnion('Parameter #2', wbCTDAParam2Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name', itS32, wbCTDAParam2VariableNameToStr, wbCTDAParam2VariableNameToInt),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Quest Stage', itS32, wbCTDAParam2QuestStageToStr, wbCTDAParam2QuestStageToInt),
- {09} wbInteger('Misc Stat', itU32, wbMiscStatEnum),
- {10} wbInteger('Alignment', itU32, wbAlignmentEnum),
- {11} wbInteger('Equip Type', itU32, wbEquipTypeEnum),
- {12} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {13} wbInteger('Critical Stage', itU32, wbCriticalStageEnum),
- {14} wbFormIDCkNoReach('Object Reference', [PLYR, REFR, PMIS, PBEA, ACHR, ACRE, PGRE, TRGT], True),
- {16} wbFormIDCkNoReach('Inventory Object', [ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, FLST, CHIP, CMNY, CCRD, IMOD]),
- {17} wbFormIDCkNoReach('Actor', [PLYR, ACHR, ACRE, TRGT], True),
- {18} wbFormIDCkNoReach('Voice Type', [VTYP]),
- {19} wbFormIDCkNoReach('Idle', [IDLE]),
- {20} wbFormIDCkNoReach('Form List', [FLST]),
- {21} wbFormIDCkNoReach('Note', [NOTE]),
- {22} wbFormIDCkNoReach('Quest', [QUST]),
- {23} wbFormIDCkNoReach('Faction', [FACT]),
- {24} wbFormIDCkNoReach('Weapon', [WEAP]),
- {25} wbFormIDCkNoReach('Cell', [CELL]),
- {26} wbFormIDCkNoReach('Class', [CLAS]),
- {27} wbFormIDCkNoReach('Race', [RACE]),
- {28} wbFormIDCkNoReach('Actor Base', [NPC_, CREA, ACTI, TACT]),
- {29} wbFormIDCkNoReach('Global', [GLOB]),
- {30} wbFormIDCkNoReach('Weather', [WTHR]),
- {31} wbFormIDCkNoReach('Package', [PACK]),
- {32} wbFormIDCkNoReach('Encounter Zone', [ECZN]),
- {33} wbFormIDCkNoReach('Perk', [PERK]),
- {34} wbFormIDCkNoReach('Owner', [FACT, NPC_]),
- {35} wbFormIDCkNoReach('Furniture', [FURN, FLST]),
- {36} wbFormIDCkNoReach('Effect Item', [SPEL, ENCH, ALCH, INGR]),
- {37} wbFormIDCkNoReach('Base Effect', [MGEF]),
- {38} wbFormIDCkNoReach('Worldspace', [WRLD]),
- {39} wbInteger('VATS Value Function (INVALID)', itU32),
- {40} wbUnion('VATS Value Param', wbCTDAParam2VATSValueParam, [
- wbFormIDCkNoReach('Weapon', [WEAP]),
- wbFormIDCkNoReach('Weapon List', [FLST], [WEAP]),
- wbFormIDCkNoReach('Target', [NPC_, CREA]),
- wbFormIDCkNoReach('Target List', [FLST], [NPC_, CREA]),
- wbByteArray('Unused', 4, cpIgnore),
- wbInteger('Target Part', itS32, wbActorValueEnum),
- wbInteger('VATS Action', itU32, wbEnum([
- 'Unarmed Attack',
- 'One Hand Melee Attack',
- 'Two Hand Melee Attack',
- 'Fire Pistol',
- 'Fire Rifle',
- 'Fire Handle Weapon',
- 'Fire Launcher',
- 'Throw Grenade',
- 'Place Mine',
- 'Reload',
- 'Crouch',
- 'Stand',
- 'Switch Weapon',
- 'Toggle Weapon Drawn',
- 'Heal',
- 'Player Death',
- 'Special Weapon Attack',
- 'Special Unarmed Attack',
- 'Kill Camera Shot',
- 'Throw Weapon'
- ])),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Critical Effect', [SPEL]),
- wbFormIDCkNoReach('Critical Effect List', [FLST], [SPEL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbInteger('Weapon Type', itU32, wbWeaponAnimTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- {41} wbInteger('Creature Type', itU32, wbCreatureTypeEnum),
- {42} wbInteger('Menu Mode', itU32, wbMenuModeEnum),
- {43} wbInteger('Player Action', itU32, wbPlayerActionEnum),
- {44} wbInteger('Body Location', itS32, wbBodyLocationEnum),
- {45} wbFormIDCkNoReach('Referenceable Object', [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, FLST, CHIP, CMNY, CCRD, IMOD, LVLC, LVLN],
- [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, CHIP, CMNY, CCRD, IMOD, LVLC, LVLN]),
- {46} wbInteger('Quest Objective', itS32, wbCTDAParam2QuestObjectiveToStr, wbCTDAParam2QuestObjectiveToInt),
- {47} wbFormIDCkNoReach('Reputation', [REPU]),
- {48} wbFormIDCkNoReach('Region', [REGN]),
- {49} wbFormIDCkNoReach('Challenge', [CHAL]),
- {50} wbFormIDCkNoReach('Casino', [CSNO]),
- {51} wbFormID('Form')
- ]),
- wbInteger('Run On', itU32, wbEnum([
- 'Subject',
- 'Target',
- 'Reference',
- 'Combat Target',
- 'Linked Reference'
- ]), cpNormal, False, nil, wbCTDARunOnAfterSet),
- wbUnion('Reference', wbCTDAReferenceDecider, [
- wbInteger('Unused', itU32, nil, cpIgnore),
- wbFormIDCkNoReach('Reference', [PLYR, ACHR, ACRE, REFR, PMIS, PBEA, PGRE, NULL], True) // Can end up NULL if the original function requiring a reference is replaced by another who has no Run on prerequisite
- ])
- ], cpNormal, False, nil, 6, wbCTDAAfterLoad);
- wbCTDAs := wbRArray('Conditions', wbCTDA);
- wbCTDAsReq := wbRArray('Conditions', wbCTDA, cpNormal, True);
-
- wbEffects :=
- wbRStructs('Effects','Effect', [
- wbEFID,
- wbEFIT,
- wbCTDAs
- ], []);
-
- wbEffectsReq :=
- wbRStructs('Effects','Effect', [
- wbEFID,
- wbEFIT,
- wbCTDAs
- ], [], cpNormal, True);
-
-
- wbRecord(ALCH, 'Ingestible', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLReq,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbETYPReq,
- wbFloat(DATA, 'Weight', cpNormal, True),
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Value', itS32),
- wbInteger('Flags?', itU8, wbFlags([
- 'No Auto-Calc (Unused)',
- 'Food Item',
- 'Medicine'
- ])),
- wbByteArray('Unused', 3),
- wbFormIDCk('Withdrawal Effect', [SPEL, NULL]),
- wbFloat('Addiction Chance'),
- wbFormIDCk('Sound - Consume', [SOUN, NULL])
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(AMMO, 'Ammunition', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLReq,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, 'Data', [
- wbFloat('Speed'),
- wbInteger('Flags', itU8, wbFlags([
- 'Ignores Normal Weapon Resistance',
- 'Non-Playable'
- ])),
- wbByteArray('Unused', 3),
- wbInteger('Value', itS32),
- wbInteger('Clip Rounds', itU8)
- ], cpNormal, True),
- wbStruct(DAT2, 'Data 2', [
- wbInteger('Proj. per Shot', itU32),
- wbFormIDCk('Projectile', [PROJ, NULL]),
- wbFloat('Weight'),
- wbFormIDCk('Consumed Ammo', [AMMO, MISC, NULL]),
- wbFloat('Consumed Percentage')
- ], cpNormal, False, nil, 3),
- wbString(ONAM, 'Short Name'),
- wbString(QNAM, 'Abbrev.'),
- wbRArray('Ammo Effects',
- wbFormIDCk(RCIL, 'Effect', [AMEF])
- )
- ]);
-
- wbRecord(ANIO, 'Animated Object', [
- wbEDIDReq,
- wbMODLReq,
- wbFormIDCk(DATA, 'Animation', [IDLE], False, cpNormal, True)
- ]);
-
- wbBMDT := wbStruct(BMDT, 'Biped Data', [
- wbInteger('Biped Flags', itU32, wbFlags([
- {0x00000001} 'Head',
- {0x00000002} 'Hair',
- {0x00000004} 'Upper Body',
- {0x00000008} 'Left Hand',
- {0x00000010} 'Right Hand',
- {0x00000020} 'Weapon',
- {0x00000040} 'PipBoy',
- {0x00000080} 'Backpack',
- {0x00000100} 'Necklace',
- {0x00000200} 'Headband',
- {0x00000400} 'Hat',
- {0x00000800} 'Eye Glasses',
- {0x00001000} 'Nose Ring',
- {0x00002000} 'Earrings',
- {0x00004000} 'Mask',
- {0x00008000} 'Choker',
- {0x00010000} 'Mouth Object',
- {0x00020000} 'Body AddOn 1',
- {0x00040000} 'Body AddOn 2',
- {0x00080000} 'Body AddOn 3'
- ])),
- wbInteger('General Flags', itU8, wbFlags([
- {0x0001} '1',
- {0x0002} '2',
- {0x0004} 'Has Backpack',
- {0x0008} 'Medium',
- {0x0010} '5',
- {0x0020} 'Power Armor',
- {0x0040} 'Non-Playable',
- {0x0080} 'Heavy'
- ], True)),
- wbByteArray('Unused')
- ], cpNormal, True);
-
- wbRecord(ARMO, 'Armor', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbSCRI,
- wbEITM,
- wbBMDT,
- wbRStruct('Male biped model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO2S
- ], []),
- wbString(ICON, 'Male icon filename'),
- wbString(MICO, 'Male mico filename'),
- wbRStruct('Female biped model', [
- wbString(MOD3, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO3S,
- wbMOSD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Female world model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO4S
- ], []),
- wbString(ICO2, 'Female icon filename'),
- wbString(MIC2, 'Female mico filename'),
- wbString(BMCT, 'Ragdoll Constraint Template'),
- wbREPL,
- wbBIPL,
- wbETYPReq,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itS32),
- wbInteger('Health', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbStruct(DNAM, '', [
- wbInteger('AR', itS16, wbDiv(100)),
- wbInteger('Flags', itU16, wbFlags([
- 'Modulates Voice'
- ])),
- wbFloat('DT'),
- wbByteArray('?', 4)
- ], cpNormal, True, nil, 2),
- wbInteger(BNAM, 'Overrides Animation Sounds', itU32, wbEnum(['No', 'Yes'])),
- wbRArray('Animation Sounds',
- wbStruct(SNAM, 'Animation Sound', [
- wbFormIDCk('Sound', [SOUN]),
- wbInteger('Chance', itU8),
- wbByteArray('Unused', 3),
- wbInteger('Type', itU32, wbEnum([], [
- 19, 'Run',
- 21, 'Run (Armor)',
- 18, 'Sneak',
- 20, 'Sneak (Armor)',
- 17, 'Walk',
- 22, 'Walk (Armor)'
- ]))
- ])
- ),
- wbFormIDCk(TNAM, 'Animation Sounds Template', [ARMO])
- ]);
-
- wbRecord(ARMA, 'Armor Addon', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbBMDT,
- wbRStruct('Male biped model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO2S
- ], []),
- wbString(ICON, 'Male icon filename'),
- wbString(MICO, 'Male mico filename'),
- wbRStruct('Female biped model', [
- wbString(MOD3, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO3S,
- wbMOSD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Female world model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO4S
- ], []),
- wbString(ICO2, 'Female icon filename'),
- wbString(MIC2, 'Female mico filename'),
- wbETYPReq,
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itS32),
- wbInteger('Max Condition', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbStruct(DNAM, '', [
- wbInteger('AR', itS16, wbDiv(100)),
- wbInteger('Flags', itU16, wbFlags([ // Only a byte or 2 distincts byte
- 'Modulates Voice'
- ])),
- wbFloat('DT'),
- wbByteArray('Unused', 4)
- ], cpNormal, True, nil, 2)
- ]);
-
- wbRecord(BOOK, 'Book', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDESCReq,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, 'Data', [
- wbInteger('Flags', itU8, wbFlags([
- '',
- 'Can''t be Taken'
- ])),
- wbInteger('Skill', itS8, wbSkillEnum),
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbSPLO := wbFormIDCk(SPLO, 'Actor Effect', [SPEL]);
- wbSPLOs := wbRArrayS('Actor Effects', wbSPLO, cpNormal, False, nil, nil, wbActorTemplateUseActorEffectList);
-
- wbRecord(CELL, 'Cell', [
- wbEDID,
- wbFULL,
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Is Interior Cell',
- {0x02} 'Has water',
- {0x04} 'Invert Fast Travel behavior',
- {0x08} 'No LOD Water',
- {0x10} '',
- {0x20} 'Public place',
- {0x40} 'Hand changed',
- {0x80} 'Behave like exterior'
- ]), cpNormal, True),
- wbStruct(XCLC, 'Grid', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32),
- wbInteger('Force Hide Land', itU32, wbFlags([
- 'Quad 1',
- 'Quad 2',
- 'Quad 3',
- 'Quad 4'
- ], True))
- ], cpNormal, False, nil, 2),
- wbStruct(XCLL, 'Lighting', [
- wbStruct('Ambient Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Directional Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Fog Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fog Near'),
- wbFloat('Fog Far'),
- wbInteger('Directional Rotation XY', itS32),
- wbInteger('Directional Rotation Z', itS32),
- wbFloat('Directional Fade'),
- wbFloat('Fog Clip Dist'),
- wbFloat('Fog Power')
- ], cpNormal, False, nil, 7),
- wbArray(IMPF, 'Footstep Materials', wbString('Unknown', 30), [
- 'ConcSolid',
- 'ConcBroken',
- 'MetalSolid',
- 'MetalHollow',
- 'MetalSheet',
- 'Wood',
- 'Sand',
- 'Dirt',
- 'Grass',
- 'Water'
- ]),
- wbRStruct('Light Template', [
- wbFormIDCk(LTMP, 'Template', [LGTM, NULL]),
- wbInteger(LNAM, 'Inherit', itU32, wbFlags([
- {0x00000001}'Ambient Color',
- {0x00000002}'Directional Color',
- {0x00000004}'Fog Color',
- {0x00000008}'Fog Near',
- {0x00000010}'Fog Far',
- {0x00000020}'Directional Rotation',
- {0x00000040}'Directional Fade',
- {0x00000080}'Clip Distance',
- {0x00000100}'Fog Power'
- ]), cpNormal, True)
- ], [], cpNormal, True ),
- wbFloat(XCLW, 'Water Height'),
- wbString(XNAM, 'Water Noise Texture'),
- wbArrayS(XCLR, 'Regions', wbFormIDCk('Region', [REGN])),
- wbFormIDCk(XCIM, 'Image Space', [IMGS]),
- wbByteArray(XCET, 'Unknown', 1, cpIgnore),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbFormIDCk(XCCM, 'Climate', [CLMT]),
- wbFormIDCk(XCWT, 'Water', [WATR]),
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
- wbFormIDCk(XCAS, 'Acoustic Space', [ASPC]),
- wbByteArray(XCMT, 'Unused', 1, cpIgnore),
- wbFormIDCk(XCMO, 'Music Type', [MUSC])
- ], True, wbCellAddInfo, cpNormal, False, wbCELLAfterLoad);
-
- wbServiceFlags :=
- wbFlags([
- {0x00000001} 'Weapons',
- {0x00000002} 'Armor',
- {0x00000004} 'Alcohol',
- {0x00000008} 'Books',
- {0x00000010} 'Food',
- {0x00000020} 'Chems',
- {0x00000040} 'Stimpacks',
- {0x00000080} 'Lights?',
- {0x00000100} '',
- {0x00000200} '',
- {0x00000400} 'Miscellaneous',
- {0x00000800} '',
- {0x00001000} '',
- {0x00002000} 'Potions?',
- {0x00004000} 'Training',
- {0x00008000} '',
- {0x00010000} 'Recharge',
- {0x00020000} 'Repair'
- ]);
-
- wbSpecializationEnum := wbEnum(['Combat', 'Magic', 'Stealth']);
-
- wbRecord(CLAS, 'Class', [
- wbEDIDReq,
- wbFULLReq,
- wbDESCReq,
- wbICON,
- wbStruct(DATA, '', [
- wbArray('Tag Skills', wbInteger('Tag Skill', itS32, wbActorValueEnum), 4),
- wbInteger('Flags', itU32, wbFlags(['Playable', 'Guard'], True)),
- wbInteger('Buys/Sells and Services', itU32, wbServiceFlags),
- wbInteger('Teaches', itS8, wbSkillEnum),
- wbInteger('Maximum training level', itU8),
- wbByteArray('Unused', 2)
- ], cpNormal, True),
- wbArray(ATTR, 'Attributes', wbInteger('Attribute', itU8), [
- 'Strength',
- 'Perception',
- 'Endurance',
- 'Charisma',
- 'Intelligence',
- 'Agility',
- 'Luck'
- ], cpNormal, True)
- ]);
-end;
-
-procedure DefineFNVc;
-begin
- wbRecord(CLMT, 'Climate', [
- wbEDIDReq,
- wbArrayS(WLST, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR, NULL]),
- wbInteger('Chance', itS32),
- wbFormIDCk('Global', [GLOB, NULL])
- ])),
- wbString(FNAM, 'Sun Texture'),
- wbString(GNAM, 'Sun Glare Texture'),
- wbMODL,
- wbStruct(TNAM, 'Timing', [
- wbStruct('Sunrise', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbStruct('Sunset', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbInteger('Volatility', itU8),
- wbInteger('Moons / Phase Length', itU8, wbClmtMoonsPhaseLength)
- ], cpNormal, True)
- ]);
-
- wbCNTO :=
- wbRStructExSK([0], [1], 'Item', [
- wbStructExSK(CNTO, [0], [1], 'Item', [
- wbFormIDCk('Item', [ARMO, AMMO, MISC, WEAP, BOOK, LVLI, KEYM, ALCH, NOTE, IMOD, CMNY, CCRD, LIGH, CHIP{, MSTT{?}{, STAT{?}]),
- wbInteger('Count', itS32)
- ]),
- wbCOED
- ], []);
-
- wbCNTOs := wbRArrayS('Items', wbCNTO);
-
- wbRecord(CONT, 'Container', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbCNTOs,
- wbDEST,
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags(['', 'Respawns'])),
- wbFloat('Weight')
- ], cpNormal, True),
- wbFormIDCk(SNAM, 'Sound - Open', [SOUN]),
- wbFormIDCk(QNAM, 'Sound - Close', [SOUN]),
- wbFormIDCk(RNAM, 'Sound - Random/Looping', [SOUN])
- ], True);
-
- wbCSDT := wbRStructSK([0], 'Sound Type', [
- wbInteger(CSDT, 'Type', itU32,wbEnum([
- {00} 'Left Foot',
- {01} 'Right Foot',
- {02} 'Left Back Foot',
- {03} 'Right Back Foot',
- {04} 'Idle',
- {05} 'Aware',
- {06} 'Attack',
- {07} 'Hit',
- {08} 'Death',
- {09} 'Weapon',
- {10} 'Movement Loop',
- {11} 'Conscious Loop',
- {12} 'Auxiliary 1',
- {13} 'Auxiliary 2',
- {14} 'Auxiliary 3',
- {15} 'Auxiliary 4',
- {16} 'Auxiliary 5',
- {17} 'Auxiliary 6',
- {18} 'Auxiliary 7',
- {19} 'Auxiliary 8',
- {19} 'Auxiliary 8',
- {20} 'Jump',
- {21} 'PlayRandom/Loop'
- ])),
- wbRArrayS('Sounds', wbRStructSK([0], 'Sound', [
- wbFormIDCk(CSDI, 'Sound', [SOUN, NULL], False, cpNormal, True),
- wbInteger(CSDC, 'Sound Chance', itU8, nil, cpNormal, True)
- ], []), cpNormal, True)
- ], []);
-
- wbCSDTs := wbRArrayS('Sound Types', wbCSDT, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation);
-
- wbAgressionEnum := wbEnum([
- 'Unaggressive',
- 'Aggressive',
- 'Very Aggressive',
- 'Frenzied'
- ]);
-
- wbConfidenceEnum := wbEnum([
- 'Cowardly',
- 'Cautious',
- 'Average',
- 'Brave',
- 'Foolhardy'
- ]);
-
- wbMoodEnum := wbEnum([
- 'Neutral',
- 'Afraid',
- 'Annoyed',
- 'Cocky',
- 'Drugged',
- 'Pleasant',
- 'Angry',
- 'Sad'
- ]);
-
- wbAssistanceEnum := wbEnum([
- 'Helps Nobody',
- 'Helps Allies',
- 'Helps Friends and Allies'
- ]);
-
- wbAggroRadiusFlags := wbFlags([
- 'Aggro Radius Behavior'
- ]);
-
- wbAIDT :=
- wbStruct(AIDT, 'AI Data', [
- {00} wbInteger('Aggression', itU8, wbAgressionEnum),
- {01} wbInteger('Confidence', itU8, wbConfidenceEnum),
- {02} wbInteger('Energy Level', itU8),
- {03} wbInteger('Responsibility', itU8),
- {04} wbInteger('Mood', itU8, wbMoodEnum),
- {05} wbByteArray('Unused', 3), // Mood is stored as a DWord as shown by endianSwapping but is truncated to byte during load :)
- {08} wbInteger('Buys/Sells and Services', itU32, wbServiceFlags),
- {0C} wbInteger('Teaches', itS8, wbSkillEnum),
- {0D} wbInteger('Maximum training level', itU8),
- {0E} wbInteger('Assistance', itS8, wbAssistanceEnum),
- {0F} wbInteger('Aggro Radius Behavior', itU8, wbAggroRadiusFlags),
- {10} wbInteger('Aggro Radius', itS32)
- ], cpNormal, True, wbActorTemplateUseAIData);
-
- wbAttackAnimationEnum :=
- wbEnum([
- ], [
- 26, 'AttackLeft',
- 27, 'AttackLeftUp',
- 28, 'AttackLeftDown',
- 29, 'AttackLeftIS',
- 30, 'AttackLeftISUp',
- 31, 'AttackLeftISDown',
- 32, 'AttackRight',
- 33, 'AttackRightUp',
- 34, 'AttackRightDown',
- 35, 'AttackRightIS',
- 36, 'AttackRightISUp',
- 37, 'AttackRightISDown',
- 38, 'Attack3',
- 39, 'Attack3Up',
- 40, 'Attack3Down',
- 41, 'Attack3IS',
- 42, 'Attack3ISUp',
- 43, 'Attack3ISDown',
- 44, 'Attack4',
- 45, 'Attack4Up',
- 46, 'Attack4Down',
- 47, 'Attack4IS',
- 48, 'Attack4ISUp',
- 49, 'Attack4ISDown',
- 50, 'Attack5',
- 51, 'Attack5Up',
- 52, 'Attack5Down',
- 53, 'Attack5IS',
- 54, 'Attack5ISUp',
- 55, 'Attack5ISDown',
- 56, 'Attack6',
- 57, 'Attack6Up',
- 58, 'Attack6Down',
- 59, 'Attack6IS',
- 60, 'Attack6ISUp',
- 61, 'Attack6ISDown',
- 62, 'Attack7',
- 63, 'Attack7Up',
- 64, 'Attack7Down',
- 65, 'Attack7IS',
- 66, 'Attack7ISUp',
- 67, 'Attack7ISDown',
- 68, 'Attack8',
- 69, 'Attack8Up',
- 70, 'Attack8Down',
- 71, 'Attack8IS',
- 72, 'Attack8ISUp',
- 73, 'Attack8ISDown',
- 74, 'AttackLoop',
- 75, 'AttackLoopUp',
- 76, 'AttackLoopDown',
- 77, 'AttackLoopIS',
- 78, 'AttackLoopISUp',
- 79, 'AttackLoopISDown',
- 80, 'AttackSpin',
- 81, 'AttackSpinUp',
- 82, 'AttackSpinDown',
- 83, 'AttackSpinIS',
- 84, 'AttackSpinISUp',
- 85, 'AttackSpinISDown',
- 86, 'AttackSpin2',
- 87, 'AttackSpin2Up',
- 88, 'AttackSpin2Down',
- 89, 'AttackSpin2IS',
- 90, 'AttackSpin2ISUp',
- 91, 'AttackSpin2ISDown',
- 92, 'AttackPower',
- 93, 'AttackForwardPower',
- 94, 'AttackBackPower',
- 95, 'AttackLeftPower',
- 96, 'AttackRightPower',
- 97, 'PlaceMine',
- 98, 'PlaceMineUp',
- 99, 'PlaceMineDown',
- 100, 'PlaceMineIS',
- 101, 'PlaceMineISUp',
- 102, 'PlaceMineISDown',
- 103, 'PlaceMine2',
- 104, 'PlaceMine2Up',
- 105, 'PlaceMine2Down',
- 106, 'PlaceMine2IS',
- 107, 'PlaceMine2ISUp',
- 108, 'PlaceMine2ISDown',
- 109, 'AttackThrow',
- 110, 'AttackThrowUp',
- 111, 'AttackThrowDown',
- 112, 'AttackThrowIS',
- 113, 'AttackThrowISUp',
- 114, 'AttackThrowISDown',
- 115, 'AttackThrow2',
- 116, 'AttackThrow2Up',
- 117, 'AttackThrow2Down',
- 118, 'AttackThrow2IS',
- 119, 'AttackThrow2ISUp',
- 120, 'AttackThrow2ISDown',
- 121, 'AttackThrow3',
- 122, 'AttackThrow3Up',
- 123, 'AttackThrow3Down',
- 124, 'AttackThrow3IS',
- 125, 'AttackThrow3ISUp',
- 126, 'AttackThrow3ISDown',
- 127, 'AttackThrow4',
- 128, 'AttackThrow4Up',
- 129, 'AttackThrow4Down',
- 130, 'AttackThrow4IS',
- 131, 'AttackThrow4ISUp',
- 132, 'AttackThrow4ISDown',
- 133, 'AttackThrow5',
- 134, 'AttackThrow5Up',
- 135, 'AttackThrow5Down',
- 136, 'AttackThrow5IS',
- 137, 'AttackThrow5ISUp',
- 138, 'AttackThrow5ISDown',
-
- 167, 'PipBoy',
- 178, 'PipBoyChild',
-
- 255, ' ANY'
- ]);
-
- wbImpactMaterialTypeEnum :=
- wbEnum([
- 'Stone',
- 'Dirt',
- 'Grass',
- 'Glass',
- 'Metal',
- 'Wood',
- 'Organic',
- 'Cloth',
- 'Water',
- 'Hollow Metal',
- 'Organic Bug',
- 'Organic Glow'
- ]);
-
- wbTemplateFlags := wbFlags([
- 'Use Traits',
- 'Use Stats',
- 'Use Factions',
- 'Use Actor Effect List',
- 'Use AI Data',
- 'Use AI Packages',
- 'Use Model/Animation',
- 'Use Base Data',
- 'Use Inventory',
- 'Use Script'
- ]);
-
- wbRecord(CREA, 'Creature', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLActor,
- wbMODLActor,
- wbSPLOs,
- wbFormIDCk(EITM, 'Unarmed Attack Effect', [ENCH, SPEL], False, cpNormal, False, wbActorTemplateUseActorEffectList),
- wbInteger(EAMT, 'Unarmed Attack Animation', itU16, wbAttackAnimationEnum, cpNormal, True, False, wbActorTemplateUseActorEffectList),
- wbArrayS(NIFZ, 'Model List', wbStringLC('Model'), 0, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbByteArray(NIFT, 'Texture Files Hashes', 0, cpIgnore, False, False, wbActorTemplateUseModelAnimation),
- wbStruct(ACBS, 'Configuration', [
- {00} wbInteger('Flags', itU32, wbFlags([
- {0x000001} 'Biped',
- {0x000002} 'Essential',
- {0x000004} 'Weapon & Shield?',
- {0x000008} 'Respawn',
- {0x000010} 'Swims',
- {0x000020} 'Flies',
- {0x000040} 'Walks',
- {0x000080} 'PC Level Mult',
- {0x000100} 'Unknown 8',
- {0x000200} 'No Low Level Processing',
- {0x000400} '',
- {0x000800} 'No Blood Spray',
- {0x001000} 'No Blood Decal',
- {0x002000} '',
- {0x004000} '',
- {0x008000} 'No Head',
- {0x010000} 'No Right Arm',
- {0x020000} 'No Left Arm',
- {0x040000} 'No Combat in Water',
- {0x080000} 'No Shadow',
- {0x100000} 'No VATS Melee',
- {0x00200000} 'Allow PC Dialogue',
- {0x00400000} 'Can''t Open Doors',
- {0x00800000} 'Immobile',
- {0x01000000} 'Tilt Front/Back',
- {0x02000000} 'Tilt Left/Right',
- {0x03000000} 'No Knockdowns',
- {0x08000000} 'Not Pushable',
- {0x10000000} 'Allow Pickpocket',
- {0x20000000} 'Is Ghost',
- {0x40000000} 'No Rotating To Head-track',
- {0x80000000} 'Invulnerable'
- ], [
- {0x000001 Biped} wbActorTemplateUseModelAnimation,
- {0x000002 Essential} wbActorTemplateUseBaseData,
- {0x000004 Weapon & Shield} nil,
- {0x000008 Respawn} wbActorTemplateUseBaseData,
- {0x000010 Swims} wbActorTemplateUseModelAnimation,
- {0x000020 Flies} wbActorTemplateUseModelAnimation,
- {0x000040 Walks} wbActorTemplateUseModelAnimation,
- {0x000080 PC Level Mult} wbActorTemplateUseStats,
- {0x000100 Unknown 8} nil,
- {0x000200 No Low Level Processing} wbActorTemplateUseBaseData,
- {0x000400 } nil,
- {0x000800 No Blood Spray} wbActorTemplateUseModelAnimation,
- {0x001000 No Blood Decal} wbActorTemplateUseModelAnimation,
- {0x002000 } nil,
- {0x004000 } nil,
- {0x008000 No Head} wbActorTemplateUseModelAnimation,
- {0x010000 No Right Arm} wbActorTemplateUseModelAnimation,
- {0x020000 No Left Arm} wbActorTemplateUseModelAnimation,
- {0x040000 No Combat in Water} wbActorTemplateUseModelAnimation,
- {0x080000 No Shadow} wbActorTemplateUseModelAnimation,
- {0x100000 No VATS Melee} nil,
- {0x00200000 Allow PC Dialogue} wbActorTemplateUseBaseData,
- {0x00400000 Can''t Open Doors} wbActorTemplateUseBaseData,
- {0x00800000 Immobile} wbActorTemplateUseModelAnimation,
- {0x01000000 Tilt Front/Back} wbActorTemplateUseModelAnimation,
- {0x02000000 Tilt Left/Right} wbActorTemplateUseModelAnimation,
- {0x03000000 No Knockdowns} nil,
- {0x08000000 Not Pushable} wbActorTemplateUseModelAnimation,
- {0x10000000 Allow Pickpocket} wbActorTemplateUseBaseData,
- {0x20000000 Is Ghost} nil,
- {0x40000000 No Rotating To Head-track} wbActorTemplateUseModelAnimation,
- {0x80000000 Invulnerable} nil
- ])),
- {04} wbInteger('Fatigue', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {06} wbInteger('Barter gold', itU16, nil, cpNormal, False, wbActorTemplateUseAIData),
- {08} wbUnion('Level', wbCreaLevelDecider, [
- wbInteger('Level', itS16, nil, cpNormal, False, wbActorTemplateUseStats),
- wbInteger('Level Mult', itS16, wbDiv(1000), cpNormal, False, wbActorTemplateUseStats)
- ], cpNormal, False, wbActorTemplateUseStats),
- {10} wbInteger('Calc min', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {12} wbInteger('Calc max', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {14} wbInteger('Speed Multiplier', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {16} wbFloat('Karma (Alignment)', cpNormal, False, 1, -1, wbActorTemplateUseTraits),
- {20} wbInteger('Disposition Base', itS16, nil, cpNormal, False, wbActorTemplateUseTraits),
- {22} wbInteger('Template Flags', itU16, wbTemplateFlags)
- ], cpNormal, True),
- wbRArrayS('Factions',
- wbStructSK(SNAM, [0], 'Faction', [
- wbFormIDCk('Faction', [FACT]),
- wbInteger('Rank', itU8),
- wbByteArray('Unused', 3)
- ]),
- cpNormal, False, nil, nil, wbActorTemplateUseFactions),
- wbFormIDCk(INAM, 'Death item', [LVLI], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(VTCK, 'Voice', [VTYP], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(TPLT, 'Template', [CREA, LVLC]),
- wbDESTActor,
- wbSCRIActor,
- wbRArrayS('Items', wbCNTO, cpNormal, False, nil, nil, wbActorTemplateUseInventory),
- wbAIDT,
- wbRArray('Packages', wbFormIDCk(PKID, 'Package', [PACK]), cpNormal, False, nil, nil, wbActorTemplateUseAIPackages),
- wbArrayS(KFFZ, 'Animations', wbStringLC('Animation'), 0, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbStruct(DATA, '', [
- {00} wbInteger('Type', itU8, wbCreatureTypeEnum, cpNormal, False, wbActorTemplateUseTraits),
- {01} wbInteger('Combat Skill', itU8, nil, cpNormal, False, wbActorTemplateUseStats),
- {02} wbInteger('Magic Skill', itU8, nil, cpNormal, False, wbActorTemplateUseStats),
- {03} wbInteger('Stealth Skill', itU8, nil, cpNormal, False, wbActorTemplateUseStats),
- {04} wbInteger('Health', itS16, nil, cpNormal, False, wbActorTemplateUseStats),
- {06} wbByteArray('Unused', 2),
- {08} wbInteger('Damage', itS16, nil, cpNormal, False, wbActorTemplateUseStats),
- {10} wbArray('Attributes', wbInteger('Attribute', itU8), [
- 'Strength',
- 'Perception',
- 'Endurance',
- 'Charisma',
- 'Intelligence',
- 'Agility',
- 'Luck'
- ], cpNormal, False, wbActorTemplateUseStats)
- ], cpNormal, True),
- wbInteger(RNAM, 'Attack reach', itU8, nil, cpNormal, True, False, wbActorTemplateUseTraits),
- wbFormIDCk(ZNAM, 'Combat Style', [CSTY], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(PNAM, 'Body Part Data', [BPTD], False, cpNormal, True, wbActorTemplateUseModelAnimation),
- wbFloat(TNAM, 'Turning Speed', cpNormal, True, 1, -1, wbActorTemplateUseStats),
- wbFloat(BNAM, 'Base Scale', cpNormal, True, 1, -1, wbActorTemplateUseStats),
- wbFloat(WNAM, 'Foot Weight', cpNormal, True, 1, -1, wbActorTemplateUseStats),
- wbInteger(NAM4, 'Impact Material Type', itU32, wbImpactMaterialTypeEnum, cpNormal, True, False, wbActorTemplateUseModelAnimation),
- wbInteger(NAM5, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True, False, wbActorTemplateUseModelAnimation),
- wbFormIDCk(CSCR, 'Inherits Sounds from', [CREA], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbCSDTs,
- wbFormIDCk(CNAM, 'Impact Dataset', [IPDS], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbFormIDCk(LNAM, 'Melee Weapon List', [FLST], False, cpNormal, False, wbActorTemplateUseTraits)
- ], True);
-
-end;
-
-procedure DefineFNVd;
-begin
- wbRecord(CSTY, 'Combat Style', [
- wbEDIDReq,
- wbStruct(CSTD, 'Advanced - Standard', [
- {000}wbInteger('Maneuver Decision - Dodge % Chance', itU8),
- {001}wbInteger('Maneuver Decision - Left/Right % Chance', itU8),
- {002}wbByteArray('Unused', 2),
- {004}wbFloat('Maneuver Decision - Dodge L/R Timer (min)'),
- {008}wbFloat('Maneuver Decision - Dodge L/R Timer (max)'),
- {012}wbFloat('Maneuver Decision - Dodge Forward Timer (min)'),
- {016}wbFloat('Maneuver Decision - Dodge Forward Timer (max)'),
- {020}wbFloat('Maneuver Decision - Dodge Back Timer Min'),
- {024}wbFloat('Maneuver Decision - Dodge Back Timer Max'),
- {028}wbFloat('Maneuver Decision - Idle Timer min'),
- {032}wbFloat('Maneuver Decision - Idle Timer max'),
- {036}wbInteger('Melee Decision - Block % Chance', itU8),
- {037}wbInteger('Melee Decision - Attack % Chance', itU8),
- {038}wbByteArray('Unused', 2),
- {040}wbFloat('Melee Decision - Recoil/Stagger Bonus to Attack'),
- {044}wbFloat('Melee Decision - Unconscious Bonus to Attack'),
- {048}wbFloat('Melee Decision - Hand-To-Hand Bonus to Attack'),
- {052}wbInteger('Melee Decision - Power Attacks - Power Attack % Chance', itU8),
- {053}wbByteArray('Unused', 3),
- {056}wbFloat('Melee Decision - Power Attacks - Recoil/Stagger Bonus to Power'),
- {060}wbFloat('Melee Decision - Power Attacks - Unconscious Bonus to Power Attack'),
- {064}wbInteger('Melee Decision - Power Attacks - Normal', itU8),
- {065}wbInteger('Melee Decision - Power Attacks - Forward', itU8),
- {066}wbInteger('Melee Decision - Power Attacks - Back', itU8),
- {067}wbInteger('Melee Decision - Power Attacks - Left', itU8),
- {068}wbInteger('Melee Decision - Power Attacks - Right', itU8),
- {069}wbByteArray('Unused', 3),
- {072}wbFloat('Melee Decision - Hold Timer (min)'),
- {076}wbFloat('Melee Decision - Hold Timer (max)'),
- {080}wbInteger('Flags', itU16, wbFlags([
- 'Choose Attack using % Chance',
- 'Melee Alert OK',
- 'Flee Based on Personal Survival',
- '',
- 'Ignore Threats',
- 'Ignore Damaging Self',
- 'Ignore Damaging Group',
- 'Ignore Damaging Spectators',
- 'Cannot Use Stealthboy'
- ])),
- {082}wbByteArray('Unused', 2),
- {085}wbInteger('Maneuver Decision - Acrobatic Dodge % Chance', itU8),
- {085}wbInteger('Melee Decision - Power Attacks - Rushing Attack % Chance', itU8),
- {086}wbByteArray('Unused', 2),
- {088}wbFloat('Melee Decision - Power Attacks - Rushing Attack Distance Mult')
- ], cpNormal, True),
- wbStruct(CSAD, 'Advanced - Advanced', [
- wbFloat('Dodge Fatigue Mod Mult'),
- wbFloat('Dodge Fatigue Mod Base'),
- wbFloat('Encumb. Speed Mod Base'),
- wbFloat('Encumb. Speed Mod Mult'),
- wbFloat('Dodge While Under Attack Mult'),
- wbFloat('Dodge Not Under Attack Mult'),
- wbFloat('Dodge Back While Under Attack Mult'),
- wbFloat('Dodge Back Not Under Attack Mult'),
- wbFloat('Dodge Forward While Attacking Mult'),
- wbFloat('Dodge Forward Not Attacking Mult'),
- wbFloat('Block Skill Modifier Mult'),
- wbFloat('Block Skill Modifier Base'),
- wbFloat('Block While Under Attack Mult'),
- wbFloat('Block Not Under Attack Mult'),
- wbFloat('Attack Skill Modifier Mult'),
- wbFloat('Attack Skill Modifier Base'),
- wbFloat('Attack While Under Attack Mult'),
- wbFloat('Attack Not Under Attack Mult'),
- wbFloat('Attack During Block Mult'),
- wbFloat('Power Att. Fatigue Mod Base'),
- wbFloat('Power Att. Fatigue Mod Mult')
- ], cpNormal, True),
- wbStruct(CSSD, 'Simple', [
- {00} wbFloat('Cover Search Radius'),
- {04} wbFloat('Take Cover Chance'),
- {08} wbFloat('Wait Timer (min)'),
- {12} wbFloat('Wait Timer (max)'),
- {16} wbFloat('Wait to Fire Timer (min)'),
- {20} wbFloat('Wait to Fire Timer (max)'),
- {24} wbFloat('Fire Timer (min)'),
- {28} wbFloat('Fire Timer (max)'),
- {32} wbFloat('Ranged Weapon Range Mult (min)'),
- {36} wbByteArray('Unused', 4),
- {40} wbInteger('Weapon Restrictions', itU32, wbEnum([
- 'None',
- 'Melee Only',
- 'Ranged Only'
- ])),
- {44} wbFloat('Ranged Weapon Range Mult (max)'),
- {48} wbFloat('Max Targeting FOV'),
- {52} wbFloat('Combat Radius'),
- {56} wbFloat('Semi-Auto Firing Delay Mult (min)'),
- {60} wbFloat('Semi-Auto Firing Delay Mult (max)')
- ], cpNormal, True)
- ]);
-
- wbRecord(DIAL, 'Dialog Topic', [
- wbEDIDReq,
- wbRArrayS('Added Quests', wbRStructSK([0], 'Added Quest', [
- wbFormIDCkNoReach(QSTI, 'Quest', [QUST], False, cpBenign),
- wbRArray('Shared Infos', wbRStruct('Shared Info', [
- wbFormIDCk(INFC, 'Info Connection', [INFO], False, cpBenign),
- wbInteger(INFX, 'Info Index', itS32, nil, cpBenign)
- ], []))
- ], [])),
- // no QSTR in FNV, but keep it just in case
- wbRArrayS('Removed Quests', wbRStructSK([0], 'Removed Quest', [
- wbFormIDCkNoReach(QSTR, 'Quest', [QUST], False, cpBenign)
- ], [])),
- // some records have INFC INFX (with absent formids) but no QSTI, probably error in GECK
- // i.e. [DIAL:001287C6] and [DIAL:000E9084]
- wbRArray('Unused', wbRStruct('Unused', [
- wbUnknown(INFC, cpIgnore),
- wbUnknown(INFX, cpIgnore)
- ], []), cpIgnore, False, nil, nil, wbNeverShow),
- wbFULL,
- wbFloat(PNAM, 'Priority', cpNormal, True, 1, -1, nil, nil, 50.0),
- wbString(TDUM, 'Dumb Response'),
- wbStruct(DATA, '', [
- wbInteger('Type', itU8, wbEnum([
- {0} 'Topic',
- {1} 'Conversation',
- {2} 'Combat',
- {3} 'Persuasion',
- {4} 'Detection',
- {5} 'Service',
- {6} 'Miscellaneous',
- {7} 'Radio'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Rumors',
- 'Top-level'
- ]))
- ], cpNormal, True, nil, 1)
- ], True);
-
- wbRecord(DOOR, 'Door', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbSCRI,
- wbDEST,
- wbFormIDCk(SNAM, 'Sound - Open', [SOUN]),
- wbFormIDCk(ANAM, 'Sound - Close', [SOUN]),
- wbFormIDCk(BNAM, 'Sound - Looping', [SOUN]),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- '',
- 'Automatic Door',
- 'Hidden',
- 'Minimal Use',
- 'Sliding Door'
- ]), cpNormal, True)
- ]);
-
- wbBlendModeEnum := wbEnum([
- '',
- 'Zero',
- 'One',
- 'Source Color',
- 'Source Inverse Color',
- 'Source Alpha',
- 'Source Inverted Alpha',
- 'Dest Alpha',
- 'Dest Inverted Alpha',
- 'Dest Color',
- 'Dest Inverse Color',
- 'Source Alpha SAT'
- ]);
-
- wbBlendOpEnum := wbEnum([
- '',
- 'Add',
- 'Subtract',
- 'Reverse Subtract',
- 'Minimum',
- 'Maximum'
- ]);
- wbZTestFuncEnum := wbEnum([
- '',
- '',
- '',
- 'Equal To',
- 'Normal',
- 'Greater Than',
- '',
- 'Greater Than or Equal Than',
- 'Always Show'
- ]);
-
- wbRecord(EFSH, 'Effect Shader', [
- wbEDID,
- wbString(ICON, 'Fill Texture'),
- wbString(ICO2, 'Particle Shader Texture'),
- wbString(NAM7, 'Holes Texture'),
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0} 'No Membrane Shader',
- {1} '',
- {2} '',
- {3} 'No Particle Shader',
- {4} 'Edge Effect - Inverse',
- {5} 'Membrane Shader - Affect Skin Only'
- ])),
- wbByteArray('Unused', 3),
- wbInteger('Membrane Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Membrane Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Membrane Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbStruct('Fill/Texture Effect - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fill/Texture Effect - Alpha Fade In Time'),
- wbFloat('Fill/Texture Effect - Full Alpha Time'),
- wbFloat('Fill/Texture Effect - Alpha Fade Out Time'),
- wbFloat('Fill/Texture Effect - Presistent Alpha Ratio'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Amplitude'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Frequency'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (U)'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (V)'),
- wbFloat('Edge Effect - Fall Off'),
- wbStruct('Edge Effect - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Edge Effect - Alpha Fade In Time'),
- wbFloat('Edge Effect - Full Alpha Time'),
- wbFloat('Edge Effect - Alpha Fade Out Time'),
- wbFloat('Edge Effect - Persistent Alpha Ratio'),
- wbFloat('Edge Effect - Alpha Pulse Amplitude'),
- wbFloat('Edge Effect - Alpha Pusle Frequence'),
- wbFloat('Fill/Texture Effect - Full Alpha Ratio'),
- wbFloat('Edge Effect - Full Alpha Ratio'),
- wbInteger('Membrane Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Particle Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbInteger('Particle Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbFloat('Particle Shader - Particle Birth Ramp Up Time'),
- wbFloat('Particle Shader - Full Particle Birth Time'),
- wbFloat('Particle Shader - Particle Birth Ramp Down Time'),
- wbFloat('Particle Shader - Full Particle Birth Ratio'),
- wbFloat('Particle Shader - Persistant Particle Birth Ratio'),
- wbFloat('Particle Shader - Particle Lifetime'),
- wbFloat('Particle Shader - Particle Lifetime +/-'),
- wbFloat('Particle Shader - Initial Speed Along Normal'),
- wbFloat('Particle Shader - Acceleration Along Normal'),
- wbFloat('Particle Shader - Initial Velocity #1'),
- wbFloat('Particle Shader - Initial Velocity #2'),
- wbFloat('Particle Shader - Initial Velocity #3'),
- wbFloat('Particle Shader - Acceleration #1'),
- wbFloat('Particle Shader - Acceleration #2'),
- wbFloat('Particle Shader - Acceleration #3'),
- wbFloat('Particle Shader - Scale Key 1'),
- wbFloat('Particle Shader - Scale Key 2'),
- wbFloat('Particle Shader - Scale Key 1 Time'),
- wbFloat('Particle Shader - Scale Key 2 Time'),
- wbStruct('Color Key 1 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Color Key 2 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Color Key 3 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Color Key 1 - Color Alpha'),
- wbFloat('Color Key 2 - Color Alpha'),
- wbFloat('Color Key 3 - Color Alpha'),
- wbFloat('Color Key 1 - Color Key Time'),
- wbFloat('Color Key 2 - Color Key Time'),
- wbFloat('Color Key 3 - Color Key Time'),
- wbFloat('Particle Shader - Initial Speed Along Normal +/-'),
- wbFloat('Particle Shader - Initial Rotation (deg)'),
- wbFloat('Particle Shader - Initial Rotation (deg) +/-'),
- wbFloat('Particle Shader - Rotation Speed (deg/sec)'),
- wbFloat('Particle Shader - Rotation Speed (deg/sec) +/-'),
- wbFormIDCk('Addon Models', [DEBR, NULL]),
- wbFloat('Holes - Start Time'),
- wbFloat('Holes - End Time'),
- wbFloat('Holes - Start Val'),
- wbFloat('Holes - End Val'),
- wbFloat('Edge Width (alpha units)'),
- wbStruct('Edge Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Explosion Wind Speed'),
- wbInteger('Texture Count U', itU32),
- wbInteger('Texture Count V', itU32),
- wbFloat('Addon Models - Fade In Time'),
- wbFloat('Addon Models - Fade Out Time'),
- wbFloat('Addon Models - Scale Start'),
- wbFloat('Addon Models - Scale End'),
- wbFloat('Addon Models - Scale In Time'),
- wbFloat('Addon Models - Scale Out Time')
- ], cpNormal, True, nil, 57)
- ], False, nil, cpNormal, False, wbEFSHAfterLoad);
-
- wbRecord(ENCH, 'Object Effect', [
- wbEDIDReq,
- wbFULL,
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Type', itU32, wbEnum([
- {0} '',
- {1} '',
- {2} 'Weapon',
- {3} 'Apparel'
- ])),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbInteger('Flags', itU8, wbFlags([
- 'No Auto-Calc',
- 'Auto Calculate',
- 'Hide Effect'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(EYES, 'Eyes', [
- wbEDIDReq,
- wbFULLReq,
- wbString(ICON, 'Texture', 0{, cpNormal, True??}),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Playable',
- 'Not Male',
- 'Not Female'
- ]), cpNormal, True)
- ]);
-
- wbXNAM :=
- wbStructSK(XNAM, [0], 'Relation', [
- wbFormIDCkNoReach('Faction', [FACT, RACE]),
- wbInteger('Modifier', itS32),
- wbInteger('Group Combat Reaction', itU32, wbEnum([
- 'Neutral',
- 'Enemy',
- 'Ally',
- 'Friend'
- ]))
- ]);
-
- wbXNAMs := wbRArrayS('Relations', wbXNAM);
-
- wbRecord(FACT, 'Faction', [
- wbEDIDReq,
- wbFULL,
- wbXNAMs,
- wbStruct(DATA, '', [
- wbInteger('Flags 1', itU8, wbFlags([
- 'Hidden from PC',
- 'Evil',
- 'Special Combat'
- ])),
- wbInteger('Flags 2', itU8, wbFlags([
- 'Track Crime',
- 'Allow Sell'
- ])),
- wbByteArray('Unused', 2)
- ], cpNormal, True, nil, 1),
- wbFloat(CNAM, 'Unused'),
- wbRStructsSK('Ranks', 'Rank', [0], [
- wbInteger(RNAM, 'Rank#', itS32),
- wbString(MNAM, 'Male', 0, cpTranslate),
- wbString(FNAM, 'Female', 0, cpTranslate),
- wbString(INAM, 'Insignia (Unused)')
- ], []),
- wbFormIDCk(WMI1, 'Reputation', [REPU])
- ], False, nil, cpNormal, False, wbFACTAfterLoad);
-
- wbRecord(FURN, 'Furniture', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbSCRI,
- wbDEST,
- wbByteArray(MNAM, 'Marker Flags', 0, cpNormal, True)
- ]);
-
- wbRecord(GLOB, 'Global', [
- wbEDIDReq,
- wbInteger(FNAM, 'Type', itU8, wbGLOBFNAM, nil, cpNormal, True),
- wbFloat(FLTV, 'Value', cpNormal, True)
- ]);
-
-
- wbRecord(GMST, 'Game Setting', [
- wbString(EDID, 'Editor ID', 0, cpCritical, True, nil, wbGMSTEDIDAfterSet),
- wbUnion(DATA, 'Value', wbGMSTUnionDecider, [
- wbString('', 0, cpTranslate),
- wbInteger('', itS32),
- wbFloat('')
- ], cpNormal, True)
- ]);
-
- wbDODT := wbStruct(DODT, 'Decal Data', [
- wbFloat('Min Width'),
- wbFloat('Max Width'),
- wbFloat('Min Height'),
- wbFloat('Max Height'),
- wbFloat('Depth'),
- wbFloat('Shininess'),
- wbStruct('Parallax', [
- wbFloat('Scale'),
- wbInteger('Passes', itU8)
- ]),
- wbInteger('Flags', itU8, wbFlags([
- 'Parallax',
- 'Alpha - Blending',
- 'Alpha - Testing'
- ], True)),
- wbByteArray('Unused', 2),
- wbStruct('Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]);
-
- wbRecord(TXST, 'Texture Set', [
- wbEDIDReq,
- wbOBNDReq,
- wbRStruct('Textures (RGB/A)', [
- wbString(TX00,'Base Image / Transparency'),
- wbString(TX01,'Normal Map / Specular'),
- wbString(TX02,'Environment Map Mask / ?'),
- wbString(TX03,'Glow Map / Unused'),
- wbString(TX04,'Parallax Map / Unused'),
- wbString(TX05,'Environment Map / Unused')
- ], []),
- wbDODT,
- wbInteger(DNAM, 'Flags', itU16, wbFlags([
- 'No Specular Map'
- ]), cpNormal, True)
- ]);
-
- wbRecord(MICN, 'Menu Icon', [
- wbEDIDReq,
- wbICONReq
- ]);
-
- wbRecord(HDPT, 'Head Part', [
- wbEDIDReq,
- wbFULLReq,
- wbMODL,
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Playable'
- ]), cpNormal, True),
- wbRArrayS('Extra Parts',
- wbFormIDCk(HNAM, 'Part', [HDPT])
- )
- ]);
-
- wbRecord(ASPC, 'Acoustic Space', [
- wbEDIDReq,
- wbOBNDReq,
-
- wbFormIDCk(SNAM, 'Dawn / Default Loop', [NULL, SOUN], False, cpNormal, True),
- wbFormIDCk(SNAM, 'Afternoon', [NULL, SOUN], False, cpNormal, True),
- wbFormIDCk(SNAM, 'Dusk', [NULL, SOUN], False, cpNormal, True),
- wbFormIDCk(SNAM, 'Night', [NULL, SOUN], False, cpNormal, True),
- wbFormIDCk(SNAM, 'Walla', [NULL, SOUN], False, cpNormal, True),
-
- wbInteger(WNAM, 'Walla Trigger Count', itU32, nil, cpNormal, True),
- wbFormIDCk(RDAT, 'Use Sound from Region (Interiors Only)', [REGN]),
- wbInteger(ANAM, 'Environment Type', itU32, wbEnum([
- 'None',
- 'Default',
- 'Generic',
- 'Padded Cell',
- 'Room',
- 'Bathroom',
- 'Livingroom',
- 'Stone Room',
- 'Auditorium',
- 'Concerthall',
- 'Cave',
- 'Arena',
- 'Hangar',
- 'Carpeted Hallway',
- 'Hallway',
- 'Stone Corridor',
- 'Alley',
- 'Forest',
- 'City',
- 'Mountains',
- 'Quarry',
- 'Plain',
- 'Parkinglot',
- 'Sewerpipe',
- 'Underwater',
- 'Small Room',
- 'Medium Room',
- 'Large Room',
- 'Medium Hall',
- 'Large Hall',
- 'Plate'
- ]), cpNormal, True),
- wbInteger(INAM, 'Is Interior', itU32, wbEnum(['No', 'Yes']), cpNormal, True)
- ]);
-
- wbRecord(TACT, 'Talking Activator', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbSCRI,
- wbDEST,
- wbFormIDCk(SNAM, 'Looping Sound', [SOUN]),
- wbFormIDCk(VNAM, 'Voice Type', [VTYP]),
- wbFormIDCk(INAM, 'Radio Template', [SOUN])
- ]);
-
- wbRecord(SCPT, 'Script', [
- wbEDIDReq,
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Script'),
- wbStringScript(SCTX, 'Script Source', 0, cpNormal{, True}),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ]);
-
- wbRecord(TERM, 'Terminal', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbDEST,
- wbDESCReq,
- wbFormIDCk(SNAM, 'Sound - Looping', [SOUN]),
- wbFormIDCk(PNAM, 'Password Note', [NOTE]),
- wbStruct(DNAM, '', [
- wbInteger('Base Hacking Difficulty', itU8, wbEnum([
- 'Very Easy',
- 'Easy',
- 'Average',
- 'Hard',
- 'Very Hard',
- 'Requires Key'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Leveled',
- 'Unlocked',
- 'Alternate Colors',
- 'Hide Welcome Text when displaying Image'
- ])),
- wbInteger('ServerType', itU8, wbEnum([
- '-Server 1-',
- '-Server 2-',
- '-Server 3-',
- '-Server 4-',
- '-Server 5-',
- '-Server 6-',
- '-Server 7-',
- '-Server 8-',
- '-Server 9-',
- '-Server 10-'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbRArray('Menu Items',
- wbRStruct('Menu Item', [
- wbString(ITXT, 'Item Text'),
- wbString(RNAM, 'Result Text', 0, cpNormal, True),
- wbInteger(ANAM, 'Flags', itU8, wbFlags([
- 'Add Note',
- 'Force Redraw'
- ]), cpNormal, True),
- wbFormIDCk(INAM, 'Display Note', [NOTE]),
- wbFormIDCk(TNAM, 'Sub Menu', [TERM]),
- wbEmbeddedScriptReq,
- wbCTDAs
- ], [])
- )
- ]);
-
- wbRecord(SCOL, 'Static Collection', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbRStructsSK('Parts', 'Part', [0], [
- wbFormIDCk(ONAM, 'Static', [STAT]),
- wbArrayS(DATA, 'Placements', wbStruct('Placement', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ]),
- wbFloat('Scale')
- ]), 0, cpNormal, True)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(MSTT, 'Moveable Static', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbDEST,
- wbByteArray(DATA, 'Unknown', 1, cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN])
- ]);
-
- wbRecord(PWAT, 'Placeable Water', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbStruct(DNAM, '', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001}'Reflects',
- {0x00000002}'Reflects - Actors',
- {0x00000004}'Reflects - Land',
- {0x00000008}'Reflects - LOD Land',
- {0x00000010}'Reflects - LOD Buildings',
- {0x00000020}'Reflects - Trees',
- {0x00000040}'Reflects - Sky',
- {0x00000080}'Reflects - Dynamic Objects',
- {0x00000100}'Reflects - Dead Bodies',
- {0x00000200}'Refracts',
- {0x00000400}'Refracts - Actors',
- {0x00000800}'Refracts - Land',
- {0x00001000}'',
- {0x00002000}'',
- {0x00004000}'',
- {0x00008000}'',
- {0x00010000}'Refracts - Dynamic Objects',
- {0x00020000}'Refracts - Dead Bodies',
- {0x00040000}'Silhouette Reflections',
- {0x00080000}'',
- {0x00100000}'',
- {0x00200000}'',
- {0x00400000}'',
- {0x00800000}'',
- {0x01000000}'',
- {0x02000000}'',
- {0x03000000}'',
- {0x08000000}'',
- {0x10000000}'Depth',
- {0x20000000}'Object Texture Coordinates',
- {0x40000000}'',
- {0x80000000}'No Underwater Fog'
- ])),
- wbFormIDCk('Water', [WATR])
- ], cpNormal, True)
- ]);
-
- wbRecord(IDLM, 'Idle Marker', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(IDLF, 'Flags', itU8, wbFlags([
- 'Run in Sequence',
- '',
- 'Do Once'
- ]), cpNormal, True),
- wbStruct(IDLC, '', [
- wbInteger('Animation Count', itU8),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 1),
- wbFloat(IDLT, 'Idle Timer Setting', cpNormal, True),
- wbArray(IDLA, 'Animations', wbFormIDCk('Animation', [IDLE, NULL]), 0, nil, wbIDLAsAfterSet, cpNormal, True) // NULL looks valid if IDLS\Animation Count is 0
- ], False, nil, cpNormal, False, nil, wbAnimationsAfterSet);
-
- wbRecord(NOTE, 'Note', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbYNAM,
- wbZNAM,
- wbInteger(DATA, 'Type', itU8, wbEnum([
- 'Sound',
- 'Text',
- 'Image',
- 'Voice'
- ]), cpNormal, True),
- wbRArrayS('Quests',
- wbFormIDCkNoReach(ONAM, 'Quest', [QUST])
- ),
- wbString(XNAM, 'Texture'),
- wbUnion(TNAM, 'Text / Topic', wbNOTETNAMDecide, [
- wbString('Text'),
- wbFormIDCk('Topic', [DIAL])
- ]),
- wbUnion(SNAM, 'Sound / NPC', wbNOTESNAMDecide, [
- wbFormIDCk('Sound', [SOUN]),
- wbFormIDCk('Actor', [NPC_, CREA])
- ])
- ]);
-
-end;
-
-procedure DefineFNVe;
-begin
- wbRecord(PROJ, 'Projectile', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbDEST,
- wbStruct(DATA, 'Data', [
- {00} wbInteger('Flags', itU16, wbFlags([
- 'Hitscan',
- 'Explosion',
- 'Alt. Trigger',
- 'Muzzle Flash',
- '',
- 'Can Be Disabled',
- 'Can Be Picked Up',
- 'Supersonic',
- 'Pins Limbs',
- 'Pass Through Small Transparent',
- 'Detonates',
- 'Rotation'
- ])),
- {02} wbInteger('Type', itU16, wbEnum([
- {00} '',
- {01} 'Missile',
- {02} 'Lobber',
- {03} '',
- {04} 'Beam',
- {05} '',
- {06} '',
- {07} '',
- {08} 'Flame',
- {09} '',
- {10} '',
- {11} '',
- {12} '',
- {13} '',
- {14} '',
- {15} '',
- {16} 'Continuous Beam'
- ])),
- {04} wbFloat('Gravity'),
- {08} wbFloat('Speed'),
- {12} wbFloat('Range'),
- {16} wbFormIDCk('Light', [LIGH, NULL]),
- {20} wbFormIDCk('Muzzle Flash - Light', [LIGH, NULL]),
- {24} wbFloat('Tracer Chance'),
- {28} wbFloat('Explosion - Alt. Trigger - Proximity'),
- {32} wbFloat('Explosion - Alt. Trigger - Timer'),
- {36} wbFormIDCk('Explosion', [EXPL, NULL]),
- {40} wbFormIDCk('Sound', [SOUN, NULL]),
- {44} wbFloat('Muzzle Flash - Duration'),
- {48} wbFloat('Fade Duration'),
- {52} wbFloat('Impact Force'),
- {56} wbFormIDCk('Sound - Countdown', [SOUN, NULL]),
- {60} wbFormIDCk('Sound - Disable', [SOUN, NULL]),
- {64} wbFormIDCk('Default Weapon Source', [WEAP, NULL]),
- {68} wbStruct('Rotation', [
- {68} wbFloat('X'),
- {72} wbFloat('Y'),
- {76} wbFloat('Z')
- ]),
- {80} wbFloat('Bouncy Mult')
- ], cpNormal, True),
- wbRStructSK([0], 'Muzzle Flash Model', [
- wbString(NAM1, 'Model Filename'),
- wbByteArray(NAM2, 'Texture Files Hashes', 0, cpIgnore)
- ], [], cpNormal, True),
- wbInteger(VNAM, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True)
- ]);
-
- wbRecord(NAVI, 'Navigation Mesh Info Map', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbRArray('Navigation Map Infos',
- wbStruct(NVMI, 'Navigation Map Info', [
- wbByteArray('Unknown', 4),
- wbFormIDCk('Navigation Mesh', [NAVM]),
- wbFormIDCk('Location', [CELL, WRLD]),
- wbStruct('Grid', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbUnknown
-{ wbUnion('Data', wbNAVINVMIDecider, [
- wbStruct('Data', [
- wbUnknown
- ]),
- wbStruct('Data', [
- wbArray('Unknown', wbFloat('Unknown'), 3),
- wbByteArray('Unknown', 4)
- ]),
- wbStruct('Data', [
- wbArray('Unknown', wbArray('Unknown', wbFloat('Unknown'), 3), 3),
- wbInteger('Count 1', itU16),
- wbInteger('Count 2', itU16),
- wbArray('Unknown', wbArray('Unknown', wbFloat('Unknown'), 3), [], wbNAVINAVMGetCount1),
- wbUnknown
- ]),
- wbStruct('Data', [
- wbUnknown
- ])
- ])}
- ])
- ),
- wbRArray('Unknown',
- wbStruct(NVCI, 'Unknown', [
- wbFormIDCk('Unknown', [NAVM]),
- wbArray('Unknown', wbFormIDCk('Unknown', [NAVM]), -1),
- wbArray('Unknown', wbFormIDCk('Unknown', [NAVM]), -1),
- wbArray('Doors', wbFormIDCk('Door', [REFR]), -1)
- ])
- )
- ]);
-
- if wbSimpleRecords then begin
-
- wbRecord(NAVM, 'Navigation Mesh', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbStruct(DATA, '', [
- wbFormIDCk('Cell', [CELL]),
- wbInteger('Vertex Count', itU32),
- wbInteger('Triangle Count', itU32),
- wbInteger('External Connections Count', itU32),
- wbInteger('NVCA Count', itU32),
- wbInteger('Doors Count', itU32)
- ]),
- wbByteArray(NVVX, 'Vertices'),
- wbByteArray(NVTR, 'Triangles'),
- wbByteArray(NVCA, 'Unknown'),
- wbArray(NVDP, 'Doors', wbStruct('Door', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Triangle', itU16),
- wbByteArray('Unused', 2)
- ])),
- wbByteArray(NVGD, 'Unknown'),
- wbArray(NVEX, 'External Connections', wbStruct('Connection', [
- wbByteArray('Unknown', 4),
- wbFormIDCk('Navigation Mesh', [NAVM], False, cpNormal),
- wbInteger('Triangle', itU16, nil, cpNormal)
- ]))
- ], False, wbNAVMAddInfo);
-
- end else begin
-
- wbRecord(NAVM, 'Navigation Mesh', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbStruct(DATA, '', [
- wbFormIDCk('Cell', [CELL]),
- wbInteger('Vertex Count', itU32),
- wbInteger('Triangle Count', itU32),
- wbInteger('External Connections Count', itU32),
- wbInteger('NVCA Count', itU32),
- wbInteger('Doors Count', itU32) // as of version = 5 (earliest NavMesh version I saw (Fallout3 1.7) is already 11)
- ]),
- wbArray(NVVX, 'Vertices', wbStruct('Vertex', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ])),
- wbArray(NVTR, 'Triangles', wbStruct('Triangle', [
- wbArray('Vertices', wbInteger('Vertex', itS16), 3),
- wbArray('Edges', wbInteger('Triangle', itS16, wbNVTREdgeToStr, wbNVTREdgeToInt), [
- '0 <-> 1',
- '1 <-> 2',
- '2 <-> 0'
- ]),
- wbInteger('Flags', itU32, wbFlags([
- 'Triangle #0 Is External',
- 'Triangle #1 Is External',
- 'Triangle #2 Is External',
- 'Unknown 4',
- 'Unknown 5',
- 'Unknown 6',
- 'Preferred pathing',
- 'Unknown 8',
- 'Unknown 9',
- 'Water',
- 'Contains door',
- 'Unknown 12',
- 'Unknown 13', // Cleared on LoadForm
- 'Unknown 14', // Cleared on LoadForm
- 'Unknown 15', // Cleared on LoadForm
- 'Unknown 16',
- 'Unknown 17',
- 'Unknown 18',
- 'Unknown 19',
- 'Unknown 20',
- 'Unknown 21',
- 'Unknown 22',
- 'Unknown 23',
- 'Unknown 24',
- 'Unknown 25',
- 'Unknown 26',
- 'Unknown 27',
- 'Unknown 28',
- 'Unknown 29',
- 'Unknown 30',
- 'Unknown 31',
- 'Unknown 32'
- ]))
- ])),
- wbArray(NVCA, 'Unknown', wbInteger('Triangle', itS16)), // Assumed triangle as the value fits the triangle id's
- wbArray(NVDP, 'Doors', wbStruct('Door', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Triangle', itU16),
- wbByteArray('Unused', 2)
- ])),
- wbStruct(NVGD, 'NavMesh Grid', [
- wbInteger('NavMeshGrid Divisor', itU32),
- wbFloat('Max X Distance'), // Floats named after TES5 definition
- wbFloat('Max Y Distance'),
- wbFloat('Min X'),
- wbFloat('Min Y'),
- wbFloat('Min Z'),
- wbFloat('Max X'),
- wbFloat('Max Y'),
- wbFloat('Max Z'),
- wbArray('Cells', wbArray('Cell', wbInteger('Triangle', itS16), -2)) // Divisor is row count , assumed triangle as the values fit the triangle id's
- ]),
- wbArray(NVEX, 'External Connections', wbStruct('Connection', [
- wbByteArray('Unknown', 4), // absent in ver<9, not endian swap in ver>=9, so char or byte array
- wbFormIDCk('Navigation Mesh', [NAVM, NULL], False, cpNormal), // NULL values are ignored silently.
- wbInteger('Triangle', itU16, nil, cpNormal)
- ])) // Different if ver<5: Length = $2E/$30 and contains other data between NavMesh and Triangle
- ], False, wbNAVMAddInfo);
-
- end;
-
- wbRecord(PGRE, 'Placed Grenade', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [PROJ], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbString(XATO, 'Activation Prompt'),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(PMIS, 'Placed Missile', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [PROJ], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbString(XATO, 'Activation Prompt'),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(PBEA, 'Placed Beam', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [PROJ], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbString(XATO, 'Activation Prompt'),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(EXPL, 'Explosion', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbEITM,
- wbFormIDCk(MNAM, 'Image Space Modifier', [IMAD]),
- wbStruct(DATA, 'Data', [
- {00} wbFloat('Force'),
- {04} wbFloat('Damage'),
- {08} wbFloat('Radius'),
- {12} wbFormIDCk('Light', [LIGH, NULL]),
- {16} wbFormIDCk('Sound 1', [SOUN, NULL]),
- {20} wbInteger('Flags', itU32, wbFlags([
- {0x00000001}'Unknown 1',
- {0x00000002}'Always Uses World Orientation',
- {0x00000004}'Knock Down - Always',
- {0x00000008}'Knock Down - By Formula',
- {0x00000010}'Ignore LOS Check',
- {0x00000020}'Push Explosion Source Ref Only',
- {0x00000040}'Ignore Image Space Swap'
- ])),
- {24} wbFloat('IS Radius'),
- {28} wbFormIDCk('Impact DataSet', [IPDS, NULL]),
- {32} wbFormIDCk('Sound 2', [SOUN, NULL]),
- wbStruct('Radiation', [
- {36} wbFloat('Level'),
- {40} wbFloat('Dissipation Time'),
- {44} wbFloat('Radius')
- ]),
- {48} wbInteger('Sound Level', itU32, wbSoundLevelEnum, cpNormal, True)
- ], cpNormal, True),
- wbFormIDCk(INAM, 'Placed Impact Object', [TREE, SOUN, ACTI, DOOR, STAT, FURN,
- CONT, ARMO, AMMO, LVLN, LVLC, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS,
- ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, TXST, CHIP, CMNY,
- CCRD, IMOD])
- ]);
-
- wbRecord(DEBR, 'Debris', [
- wbEDIDReq,
- wbRStructs('Models', 'Model', [
- wbStruct(DATA, 'Data', [
- wbInteger('Percentage', itU8),
- wbString('Model Filename'),
- wbInteger('Flags', itU8, wbFlags([
- 'Has Collission Data'
- ]))
- ], cpNormal, True),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(IMGS, 'Image Space', [
- wbEDIDReq,
- wbStruct(DNAM, '', [
- wbStruct('HDR', [
- {00} wbFloat('Eye Adapt Speed'),
- {04} wbFloat('Blur Radius'),
- {08} wbFloat('Blur Passes'),
- {12} wbFloat('Emissive Mult'),
- {16} wbFloat('Target LUM'),
- {20} wbFloat('Upper LUM Clamp'),
- {24} wbFloat('Bright Scale'),
- {28} wbFloat('Bright Clamp'),
- {32} wbFloat('LUM Ramp No Tex'),
- {36} wbFloat('LUM Ramp Min'),
- {40} wbFloat('LUM Ramp Max'),
- {44} wbFloat('Sunlight Dimmer'),
- {48} wbFloat('Grass Dimmer'),
- {52} wbFloat('Tree Dimmer'),
- {56} wbUnion('Skin Dimmer', wbIMGSSkinDimmerDecider, [
- wbFloat('Skin Dimmer'),
- wbEmpty('Skin Dimmer', cpIgnore)
- ])
- ], cpNormal, False, nil, 14),
- wbStruct('Bloom', [
- {60} wbFloat('Blur Radius'),
- {64} wbFloat('Alpha Mult Interior'),
- {68} wbFloat('Alpha Mult Exterior')
- ]),
- wbStruct('Get Hit', [
- {72} wbFloat('Blur Radius'),
- {76} wbFloat('Blur Damping Constant'),
- {80} wbFloat('Damping Constant')
- ]),
- wbStruct('Night Eye', [
- wbStruct('Tint Color', [
- {84} wbFloat('Red', cpNormal, False, 255, 0),
- {88} wbFloat('Green', cpNormal, False, 255, 0),
- {92} wbFloat('Blue', cpNormal, False, 255, 0)
- ]),
- {96} wbFloat('Brightness')
- ]),
- wbStruct('Cinematic', [
- {100} wbFloat('Saturation'),
- wbStruct('Contrast', [
- {104} wbFloat('Avg Lum Value'),
- {108} wbFloat('Value')
- ]),
- {112} wbFloat('Cinematic - Brightness - Value'),
- wbStruct('Tint', [
- wbStruct('Color', [
- {116} wbFloat('Red', cpNormal, False, 255, 0),
- {120} wbFloat('Green', cpNormal, False, 255, 0),
- {124} wbFloat('Blue', cpNormal, False, 255, 0)
- ]),
- {128} wbFloat('Value')
- ])
- ]),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbInteger('Flags', itU8, wbFlags([
- 'Saturation',
- 'Contrast',
- 'Tint',
- 'Brightness'
- ], True)),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 5)
- ]);
-
- wbTimeInterpolator := wbStruct('Data', [
- wbFloat('Time'),
- wbFloat('Value')
- ]);
-
- wbColorInterpolator := wbStruct('Data', [
- wbFloat('Time'),
- wbFloat('Red', cpNormal, False, 255, 0),
- wbFloat('Green', cpNormal, False, 255, 0),
- wbFloat('Blue', cpNormal, False, 255, 0),
- wbFloat('Alpha', cpNormal, False, 255, 0)
- ]);
-
- wbRecord(IMAD, 'Image Space Adapter', [
- wbEDID,
- wbStruct(DNAM, 'Data Count', [
- wbInteger('Flags', itU32, wbFlags(['Animatable'])),
- wbFloat('Duration'),
- wbStruct('HDR', [
- wbInteger('Eye Adapt Speed Mult', itU32),
- wbInteger('Eye Adapt Speed Add', itU32),
- wbInteger('Bloom Blur Radius Mult', itU32),
- wbInteger('Bloom Blur Radius Add', itU32),
- wbInteger('Bloom Threshold Mult', itU32),
- wbInteger('Bloom Threshold Add', itU32),
- wbInteger('Bloom Scale Mult', itU32),
- wbInteger('Bloom Scale Add', itU32),
- wbInteger('Target Lum Min Mult', itU32),
- wbInteger('Target Lum Min Add', itU32),
- wbInteger('Target Lum Max Mult', itU32),
- wbInteger('Target Lum Max Add', itU32),
- wbInteger('Sunlight Scale Mult', itU32),
- wbInteger('Sunlight Scale Add', itU32),
- wbInteger('Sky Scale Mult', itU32),
- wbInteger('Sky Scale Add', itU32)
- ]),
- wbInteger('Unknown08 Mult', itU32),
- wbInteger('Unknown48 Add', itU32),
- wbInteger('Unknown09 Mult', itU32),
- wbInteger('Unknown49 Add', itU32),
- wbInteger('Unknown0A Mult', itU32),
- wbInteger('Unknown4A Add', itU32),
- wbInteger('Unknown0B Mult', itU32),
- wbInteger('Unknown4B Add', itU32),
- wbInteger('Unknown0C Mult', itU32),
- wbInteger('Unknown4C Add', itU32),
- wbInteger('Unknown0D Mult', itU32),
- wbInteger('Unknown4D Add', itU32),
- wbInteger('Unknown0E Mult', itU32),
- wbInteger('Unknown4E Add', itU32),
- wbInteger('Unknown0F Mult', itU32),
- wbInteger('Unknown4F Add', itU32),
- wbInteger('Unknown10 Mult', itU32),
- wbInteger('Unknown50 Add', itU32),
- wbStruct('Cinematic', [
- wbInteger('Saturation Mult', itU32),
- wbInteger('Saturation Add', itU32),
- wbInteger('Brightness Mult', itU32),
- wbInteger('Brightness Add', itU32),
- wbInteger('Contrast Mult', itU32),
- wbInteger('Contrast Add', itU32)
- ]),
- wbInteger('Unknown14 Mult', itU32),
- wbInteger('Unknown54 Add', itU32),
- wbInteger('Tint Color', itU32),
- wbInteger('Blur Radius', itU32),
- wbInteger('Double Vision Strength', itU32),
- wbInteger('Radial Blur Strength', itU32),
- wbInteger('Radial Blur Ramp Up', itU32),
- wbInteger('Radial Blur Start', itU32),
- wbInteger('Radial Blur Flags', itU32, wbFlags(['Use Target'])),
- wbFloat('Radial Blur Center X'),
- wbFloat('Radial Blur Center Y'),
- wbInteger('DoF Strength', itU32),
- wbInteger('DoF Distance', itU32),
- wbInteger('DoF Range', itU32),
- wbInteger('DoF Flags', itU32, wbFlags(['Use Target'])),
- wbInteger('Radial Blur Ramp Down', itU32),
- wbInteger('Radial Blur Down Start', itU32),
- wbInteger('Fade Color', itU32),
- wbInteger('Motion Blur Strength', itU32)
- ], cpNormal, True, nil, 26),
- wbArray(BNAM, 'Blur Radius', wbTimeInterpolator),
- wbArray(VNAM, 'Double Vision Strength', wbTimeInterpolator),
- wbArray(TNAM, 'Tint Color', wbColorInterpolator),
- wbArray(NAM3, 'Fade Color', wbColorInterpolator),
- wbArray(RNAM, 'Radial Blur Strength', wbTimeInterpolator),
- wbArray(SNAM, 'Radial Blur Ramp Up', wbTimeInterpolator),
- wbArray(UNAM, 'Radial Blur Start', wbTimeInterpolator),
- wbArray(NAM1, 'Radial Blur Ramp Down', wbTimeInterpolator),
- wbArray(NAM2, 'Radial Blur Down Start', wbTimeInterpolator),
- wbArray(WNAM, 'DoF Strength', wbTimeInterpolator),
- wbArray(XNAM, 'DoF Distance', wbTimeInterpolator),
- wbArray(YNAM, 'DoF Range', wbTimeInterpolator),
- wbArray(NAM4, 'Motion Blur Strength', wbTimeInterpolator),
- wbRStruct('HDR', [
- wbArray(_00_IAD, 'Eye Adapt Speed Mult', wbTimeInterpolator),
- wbArray(_40_IAD, 'Eye Adapt Speed Add', wbTimeInterpolator),
- wbArray(_01_IAD, 'Bloom Blur Radius Mult', wbTimeInterpolator),
- wbArray(_41_IAD, 'Bloom Blur Radius Add', wbTimeInterpolator),
- wbArray(_02_IAD, 'Bloom Threshold Mult', wbTimeInterpolator),
- wbArray(_42_IAD, 'Bloom Threshold Add', wbTimeInterpolator),
- wbArray(_03_IAD, 'Bloom Scale Mult', wbTimeInterpolator),
- wbArray(_43_IAD, 'Bloom Scale Add', wbTimeInterpolator),
- wbArray(_04_IAD, 'Target Lum Min Mult', wbTimeInterpolator),
- wbArray(_44_IAD, 'Target Lum Min Add', wbTimeInterpolator),
- wbArray(_05_IAD, 'Target Lum Max Mult', wbTimeInterpolator),
- wbArray(_45_IAD, 'Target Lum Max Add', wbTimeInterpolator),
- wbArray(_06_IAD, 'Sunlight Scale Mult', wbTimeInterpolator),
- wbArray(_46_IAD, 'Sunlight Scale Add', wbTimeInterpolator),
- wbArray(_07_IAD, 'Sky Scale Mult', wbTimeInterpolator),
- wbArray(_47_IAD, 'Sky Scale Add', wbTimeInterpolator)
- ], []),
- wbUnknown(_08_IAD),
- wbUnknown(_48_IAD),
- wbUnknown(_09_IAD),
- wbUnknown(_49_IAD),
- wbUnknown(_0A_IAD),
- wbUnknown(_4A_IAD),
- wbUnknown(_0B_IAD),
- wbUnknown(_4B_IAD),
- wbUnknown(_0C_IAD),
- wbUnknown(_4C_IAD),
- wbUnknown(_0D_IAD),
- wbUnknown(_4D_IAD),
- wbUnknown(_0E_IAD),
- wbUnknown(_4E_IAD),
- wbUnknown(_0F_IAD),
- wbUnknown(_4F_IAD),
- wbUnknown(_10_IAD),
- wbUnknown(_50_IAD),
- wbRStruct('Cinematic', [
- wbArray(_11_IAD, 'Saturation Mult', wbTimeInterpolator),
- wbArray(_51_IAD, 'Saturation Add', wbTimeInterpolator),
- wbArray(_12_IAD, 'Brightness Mult', wbTimeInterpolator),
- wbArray(_52_IAD, 'Brightness Add', wbTimeInterpolator),
- wbArray(_13_IAD, 'Contrast Mult', wbTimeInterpolator),
- wbArray(_53_IAD, 'Contrast Add', wbTimeInterpolator)
- ], []),
- wbUnknown(_14_IAD),
- wbUnknown(_54_IAD),
- wbFormIDCk(RDSD, 'Sound - Intro', [SOUN]),
- wbFormIDCk(RDSI, 'Sound - Outro', [SOUN])
- ]);
-
- wbRecord(FLST, 'FormID List', [
- wbString(EDID, 'Editor ID', 0, cpBenign, True, nil, wbFLSTEDIDAfterSet),
- wbRArrayS('FormIDs', wbFormID(LNAM, 'FormID'), cpNormal, False, nil, nil, nil, wbFLSTLNAMIsSorted)
- ]);
-
- wbRecord(PERK, 'Perk', [
- wbEDIDReq,
- wbFULL,
- wbDESCReq,
- wbICON,
- wbCTDAs,
- wbStruct(DATA, 'Data', [
- wbInteger('Trait', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Min Level', itU8),
- wbInteger('Ranks', itU8),
- wbInteger('Playable', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Hidden', itU8, wbEnum(['No', 'Yes']))
- ], cpNormal, True, nil, 4),
- wbRStructsSK('Effects', 'Effect', [0, 1], [
- wbStructSK(PRKE, [1, 2, 0], 'Header', [
- wbInteger('Type', itU8, wbEnum([
- 'Quest + Stage',
- 'Ability',
- 'Entry Point'
- ]), cpNormal, False, nil, wbPERKPRKETypeAfterSet),
- wbInteger('Rank', itU8),
- wbInteger('Priority', itU8)
- ]),
- wbUnion(DATA, 'Effect Data', wbPerkDATADecider, [
- wbStructSK([0, 1], 'Quest + Stage', [
- wbFormIDCk('Quest', [QUST]),
- wbInteger('Quest Stage', itU8, wbPerkDATAQuestStageToStr, wbCTDAParam2QuestStageToInt),
- wbByteArray('Unused', 3)
- ]),
- wbFormIDCk('Ability', [SPEL]),
- wbStructSK([0, 1], 'Entry Point', [
- wbInteger('Entry Point', itU8, wbEnum([
- {00} 'Calculate Weapon Damage',
- {01} 'Calculate My Critical Hit Chance',
- {02} 'Calculate My Critical Hit Damage',
- {03} 'Calculate Weapon Attack AP Cost',
- {04} 'Calculate Mine Explode Chance',
- {05} 'Adjust Range Penalty',
- {06} 'Adjust Limb Damage',
- {07} 'Calculate Weapon Range',
- {08} 'Calculate To Hit Chance',
- {09} 'Adjust Experience Points',
- {10} 'Adjust Gained Skill Points',
- {11} 'Adjust Book Skill Points',
- {12} 'Modify Recovered Health',
- {13} 'Calculate Inventory AP Cost',
- {14} 'Get Disposition',
- {15} 'Get Should Attack',
- {16} 'Get Should Assist',
- {17} 'Calculate Buy Price',
- {18} 'Get Bad Karma',
- {19} 'Get Good Karma',
- {20} 'Ignore Locked Terminal',
- {21} 'Add Leveled List On Death',
- {22} 'Get Max Carry Weight',
- {23} 'Modify Addiction Chance',
- {24} 'Modify Addiction Duration',
- {25} 'Modify Positive Chem Duration',
- {26} 'Adjust Drinking Radiation',
- {27} 'Activate',
- {28} 'Mysterious Stranger',
- {29} 'Has Paralyzing Palm',
- {30} 'Hacking Science Bonus',
- {31} 'Ignore Running During Detection',
- {32} 'Ignore Broken Lock',
- {33} 'Has Concentrated Fire',
- {34} 'Calculate Gun Spread',
- {35} 'Player Kill AP Reward',
- {36} 'Modify Enemy Critical Hit Chance',
- {37} 'Reload Speed',
- {38} 'Equip Speed',
- {39} 'Action Point Regen',
- {40} 'Action Point Cost',
- {41} 'Miss Fortune',
- {42} 'Modify Run Speed',
- {43} 'Modify Attack Speed',
- {44} 'Modify Radiation Consumed',
- {45} 'Has Pip Hacker',
- {46} 'Has Meltdown',
- {47} 'See Enemy Health',
- {48} 'Has Jury Rigging',
- {49} 'Modify Threat Range',
- {50} 'Modify Thread',
- {51} 'Has Fast Travel Always',
- {52} 'Knockdown Chance',
- {53} 'Modify Weapon Strength Req',
- {54} 'Modify Aiming Move Speed',
- {55} 'Modify Light Items',
- {56} 'Modify Damage Threshold (defender)',
- {57} 'Modify Chance for Ammo Item',
- {58} 'Modify Damage Threshold (attacker)',
- {59} 'Modify Throwing Velocity',
- {60} 'Chance for Item on Fire',
- {61} 'Has Unarmed Forward Power Attack',
- {62} 'Has Unarmed Back Power Attack',
- {63} 'Has Unarmed Crouched Power Attack',
- {64} 'Has Unarmed Counter Attack',
- {65} 'Has Unarmed Left Power Attack',
- {66} 'Has Unarmed Right Power Attack',
- {67} 'VATS HelperChance',
- {68} 'Modify Item Damage',
- {69} 'Has Improved Detection',
- {70} 'Has Improved Spotting',
- {71} 'Has Improved Item Detection',
- {72} 'Adjust Explosion Radius',
- {73} 'Reserved'
- ]), cpNormal, True, nil, wbPERKEntryPointAfterSet),
- wbInteger('Function', itU8, wbPerkDATAFunctionToStr, wbPerkDATAFunctionToInt, cpNormal, False, nil, wbPerkDATAFunctionAfterSet),
- wbInteger('Perk Condition Tab Count', itU8, nil, cpIgnore)
- ])
- ], cpNormal, True),
- wbRStructsSK('Perk Conditions', 'Perk Condition', [0], [
- wbInteger(PRKC, 'Run On', itS8, wbPRKCToStr, wbPRKCToInt),
- wbCTDAsReq
- ], [], cpNormal, False, nil, nil, wbPERKPRKCDontShow),
- wbRStruct('Entry Point Function Parameters', [
- wbInteger(EPFT, 'Type', itU8, wbPerkEPFTToStr, wbPerkEPFTToInt, cpIgnore, False, nil, wbPerkEPFTAfterSet),
- wbUnion(EPFD, 'Data', wbEPFDDecider, [
- wbByteArray('Unknown'),
- wbFloat('Float'),
- wbStruct('Float, Float', [
- wbFloat('Float 1'),
- wbFloat('Float 2')
- ]),
- wbFormIDCk('Leveled Item', [LVLI]),
- wbEmpty('None (Script)'),
- wbStruct('Actor Value, Float', [
- wbInteger('Actor Value', itU32, wbEPFDActorValueToStr, wbEPFDActorValueToInt),
- wbFloat('Float')
- ])
- ], cpNormal, False, wbEPFDDontShow),
- wbString(EPF2, 'Button Label', 0, cpNormal, False, wbEPF2DontShow),
- wbInteger(EPF3, 'Script Flags', itU16, wbFlags([
- 'Run Immediately'
- ]), cpNormal, False, False, wbEPF2DontShow),
- wbEmbeddedScriptPerk
- ], [], cpNormal, False, wbPERKPRKCDontShow),
- wbEmpty(PRKF, 'End Marker', cpIgnore, True)
- ], [])
- ]);
-
- wbBPNDStruct := wbStruct(BPND, '', [
- {00} wbFloat('Damage Mult'),
- {04} wbInteger('Flags', itU8, wbFlags([
- 'Severable',
- 'IK Data',
- 'IK Data - Biped Data',
- 'Explodable',
- 'IK Data - Is Head',
- 'IK Data - Headtracking',
- 'To Hit Chance - Absolute'
- ])),
- {05} wbInteger('Part Type', itU8, wbEnum([
- 'Torso',
- 'Head 1',
- 'Head 2',
- 'Left Arm 1',
- 'Left Arm 2',
- 'Right Arm 1',
- 'Right Arm 2',
- 'Left Leg 1',
- 'Left Leg 2',
- 'Left Leg 3',
- 'Right Leg 1',
- 'Right Leg 2',
- 'Right Leg 3',
- 'Brain',
- 'Weapon'
- ])),
- {06} wbInteger('Health Percent', itU8),
- {07} wbInteger('Actor Value', itS8, wbActorValueEnum),
- {08} wbInteger('To Hit Chance', itU8),
- {09} wbInteger('Explodable - Explosion Chance %', itU8),
- {10} wbInteger('Explodable - Debris Count', itU16),
- {12} wbFormIDCk('Explodable - Debris', [DEBR, NULL]),
- {16} wbFormIDCk('Explodable - Explosion', [EXPL, NULL]),
- {20} wbFloat('Tracking Max Angle'),
- {24} wbFloat('Explodable - Debris Scale'),
- {28} wbInteger('Severable - Debris Count', itS32),
- {32} wbFormIDCk('Severable - Debris', [DEBR, NULL]),
- {36} wbFormIDCk('Severable - Explosion', [EXPL, NULL]),
- {40} wbFloat('Severable - Debris Scale'),
- wbStruct('Gore Effects Positioning', [
- wbStruct('Translate', [
- {44} wbFloat('X'),
- {48} wbFloat('Y'),
- {52} wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- {56} wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- {60} wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- {64} wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ]),
- {68} wbFormIDCk('Severable - Impact DataSet', [IPDS, NULL]),
- {72} wbFormIDCk('Explodable - Impact DataSet', [IPDS, NULL]),
- {28} wbInteger('Severable - Decal Count', itU8),
- {28} wbInteger('Explodable - Decal Count', itU8),
- {76} wbByteArray('Unused', 2),
- {80} wbFloat('Limb Replacement Scale')
- ], cpNormal, True);
-
- wbRecord(BPTD, 'Body Part Data', [
- wbEDIDReq,
- wbMODLReq,
- wbRStructS('Body Parts', 'Body Part', [ // When the Part Name is provided
- wbString(BPTN, 'Part Name', 0, cpNormal, True),
- wbString(BPNN, 'Part Node', 0, cpNormal, True),
- wbString(BPNT, 'VATS Target', 0, cpNormal, True),
- wbString(BPNI, 'IK Data - Start Node', 0, cpNormal, True),
- wbBPNDStruct,
- wbString(NAM1, 'Limb Replacement Model', 0, cpNormal, True),
- wbString(NAM4, 'Gore Effects - Target Bone', 0, cpNormal, True),
- wbByteArray(NAM5, 'Texture Files Hashes', 0, cpIgnore)
- ], [], cpNormal, False),
- wbRStructS('Unnamed Body Parts', 'Body Part', [ // When the Part Name is not provided
- wbString(BPNN, 'Part Node', 0, cpNormal, True),
- wbString(BPNT, 'VATS Target', 0, cpNormal, True),
- wbString(BPNI, 'IK Data - Start Node', 0, cpNormal, True),
- wbBPNDStruct,
- wbString(NAM1, 'Limb Replacement Model', 0, cpNormal, True),
- wbString(NAM4, 'Gore Effects - Target Bone', 0, cpNormal, True),
- wbByteArray(NAM5, 'Texture Files Hashes', 0, cpIgnore)
- ], [], cpNormal, False),
- wbFormIDCk(RAGA, 'Ragdoll', [RGDL])
- ]);
-
- wbRecord(ADDN, 'Addon Node', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbInteger(DATA, 'Node Index', itS32, nil, cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN]),
- wbStruct(DNAM, 'Data', [
- wbInteger('Master Particle System Cap', itU16),
- wbByteArray('Unknown', 2)
- ], cpNormal, True)
- ]);
-
- wbRecord(AVIF, 'ActorValue Information', [
- wbEDIDReq,
- wbFULL,
- wbDESCReq,
- wbICON,
- wbString(ANAM, 'Short Name')
- ]);
-
- wbRecord(RADS, 'Radiation Stage', [
- wbEDIDReq,
- wbStruct(DATA, '', [
- wbInteger('Trigger Threshold', itU32),
- wbFormIDCk('Actor Effect', [SPEL])
- ], cpNormal, True)
- ]);
-
- wbRecord(CAMS, 'Camera Shot', [
- wbEDIDReq,
- wbMODL,
- wbStruct(DATA, 'Data', [
- {00} wbInteger('Action', itU32, wbEnum([
- 'Shoot',
- 'Fly',
- 'Hit',
- 'Zoom'
- ])),
- {04} wbInteger('Location', itU32, wbEnum([
- 'Attacker',
- 'Projectile',
- 'Target'
- ])),
- {08} wbInteger('Target', itU32, wbEnum([
- 'Attacker',
- 'Projectile',
- 'Target'
- ])),
- {12} wbInteger('Flags', itU32, wbFlags([
- 'Position Follows Location',
- 'Rotation Follows Target',
- 'Don''t Follow Bone',
- 'First Person Camera',
- 'No Tracer',
- 'Start At Time Zero'
- ])),
- wbStruct('Time Multipliers', [
- {16} wbFloat('Player'),
- {20} wbFloat('Target'),
- {24} wbFloat('Global')
- ]),
- {28} wbFloat('Max Time'),
- {32} wbFloat('Min Time'),
- {36} wbFloat('Target % Between Actors')
- ], cpNormal, True, nil, 7),
- wbFormIDCk(MNAM, 'Image Space Modifier', [IMAD])
- ]);
-
- wbRecord(CPTH, 'Camera Path', [
- wbEDIDReq,
- wbCTDAs,
- wbArray(ANAM, 'Related Camera Paths', wbFormIDCk('Related Camera Path', [CPTH, NULL]), ['Parent', 'Previous Sibling'], cpNormal, True),
- wbInteger(DATA, 'Camera Zoom', itU8, wbEnum([
- 'Default',
- 'Disable',
- 'Shot List'
- ]), cpNormal, True),
- wbRArray('Camera Shots', wbFormIDCk(SNAM, 'Camera Shot', [CAMS]))
- ]);
-
- wbRecord(VTYP, 'Voice Type', [
- wbEDIDReq,
- wbInteger(DNAM, 'Flags', itU8, wbFlags([
- 'Allow Default Dialog',
- 'Female'
- ]), cpNormal, False)
- ]);
-
- wbRecord(IPCT, 'Impact', [
- wbEDIDReq,
- wbMODL,
- wbStruct(DATA, '', [
- wbFloat('Effect - Duration'),
- wbInteger('Effect - Orientation', itU32, wbEnum([
- 'Surface Normal',
- 'Projectile Vector',
- 'Projectile Reflection'
- ])),
- wbFloat('Angle Threshold'),
- wbFloat('Placement Radius'),
- wbInteger('Sound Level', itU32, wbSoundLevelEnum),
- wbInteger('Flags', itU32, wbFlags([
- 'No Decal Data'
- ]))
- ], cpNormal, True),
- wbDODT,
- wbFormIDCk(DNAM, 'Texture Set', [TXST]),
- wbFormIDCk(SNAM, 'Sound 1', [SOUN]),
- wbFormIDCk(NAM1, 'Sound 2', [SOUN])
- ]);
-
- wbRecord(IPDS, 'Impact DataSet', [
- wbEDIDReq,
- wbStruct(DATA, 'Impacts', [
- wbFormIDCk('Stone', [IPCT, NULL]),
- wbFormIDCk('Dirt', [IPCT, NULL]),
- wbFormIDCk('Grass', [IPCT, NULL]),
- wbFormIDCk('Glass', [IPCT, NULL]),
- wbFormIDCk('Metal', [IPCT, NULL]),
- wbFormIDCk('Wood', [IPCT, NULL]),
- wbFormIDCk('Organic', [IPCT, NULL]),
- wbFormIDCk('Cloth', [IPCT, NULL]),
- wbFormIDCk('Water', [IPCT, NULL]),
- wbFormIDCk('Hollow Metal', [IPCT, NULL]),
- wbFormIDCk('Organic Bug', [IPCT, NULL]),
- wbFormIDCk('Organic Glow', [IPCT, NULL])
- ], cpNormal, True, nil, 9)
- ]);
-
- wbRecord(ECZN, 'Encounter Zone', [
- wbEDIDReq,
- wbStruct(DATA, '', [
- wbFormIDCkNoReach('Owner', [NPC_, FACT, NULL]),
- wbInteger('Rank', itS8),
- wbInteger('Minimum Level', itS8),
- wbInteger('Flags', itU8, wbFlags([
- 'Never Resets',
- 'Match PC Below Minimum Level'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True)
- ]);
-
- wbRecord(MESG, 'Message', [
- wbEDIDReq,
- wbDESCReq,
- wbFULL,
- wbFormIDCk(INAM, 'Icon', [MICN, NULL], False, cpNormal, True),
- wbByteArray(NAM0, 'Unused', 0, cpIgnore),
- wbByteArray(NAM1, 'Unused', 0, cpIgnore),
- wbByteArray(NAM2, 'Unused', 0, cpIgnore),
- wbByteArray(NAM3, 'Unused', 0, cpIgnore),
- wbByteArray(NAM4, 'Unused', 0, cpIgnore),
- wbByteArray(NAM5, 'Unused', 0, cpIgnore),
- wbByteArray(NAM6, 'Unused', 0, cpIgnore),
- wbByteArray(NAM7, 'Unused', 0, cpIgnore),
- wbByteArray(NAM8, 'Unused', 0, cpIgnore),
- wbByteArray(NAM9, 'Unused', 0, cpIgnore),
- wbInteger(DNAM, 'Flags', itU32, wbFlags([
- 'Message Box',
- 'Auto Display'
- ]), cpNormal, True, False, nil, wbMESGDNAMAfterSet),
- wbInteger(TNAM, 'Display Time', itU32, nil, cpNormal, False, False, wbMESGTNAMDontShow),
- wbRStructs('Menu Buttons', 'Menu Button', [
- wbString(ITXT, 'Button Text'),
- wbCTDAs
- ], [])
- ], False, nil, cpNormal, False, wbMESGAfterLoad);
-
- wbRecord(RGDL, 'Ragdoll', [
- wbEDIDReq,
- wbInteger(NVER, 'Version', itU32, nil, cpNormal, True),
- wbStruct(DATA, 'General Data', [
- wbInteger('Dynamic Bone Count', itU32),
- wbByteArray('Unused', 4),
- wbStruct('Enabled', [
- wbInteger('Feedback', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Foot IK (broken, don''t use)', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Look IK (broken, don''t use)', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Grab IK (broken, don''t use)', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Pose Matching', itU8, wbEnum(['No', 'Yes']))
- ]),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCk(XNAM, 'Actor Base', [CREA, NPC_], False, cpNormal, True),
- wbFormIDCk(TNAM, 'Body Part Data', [BPTD], False, cpNormal, True),
- wbStruct(RAFD, 'Feedback Data', [
- {00} wbFloat('Dynamic/Keyframe Blend Amount'),
- {04} wbFloat('Hierarchy Gain'),
- {08} wbFloat('Position Gain'),
- {12} wbFloat('Velocity Gain'),
- {16} wbFloat('Acceleration Gain'),
- {20} wbFloat('Snap Gain'),
- {24} wbFloat('Velocity Damping'),
- wbStruct('Snap Max Settings', [
- {28} wbFloat('Linear Velocity'),
- {32} wbFloat('Angular Velocity'),
- {36} wbFloat('Linear Distance'),
- {40} wbFloat('Angular Distance')
- ]),
- wbStruct('Position Max Velocity', [
- {44} wbFloat('Linear'),
- {48} wbFloat('Angular')
- ]),
- wbStruct('Position Max Velocity', [
- {52} wbInteger('Projectile', itS32, wbDiv(1000)),
- {56} wbInteger('Melee', itS32, wbDiv(1000))
- ])
- ], cpNormal, False),
- wbArray(RAFB, 'Feedback Dynamic Bones', wbInteger('Bone', itU16), 0, nil, nil, cpNormal, False),
- wbStruct(RAPS, 'Pose Matching Data', [
- {00} wbArray('Match Bones', wbInteger('Bone', itU16, wbHideFFFF), 3),
- {06} wbInteger('Flags', itU8, wbFlags([
- 'Disable On Move'
- ])),
- {07} wbByteArray('Unused', 1),
- {08} wbFloat('Motors Strength'),
- {12} wbFloat('Pose Activation Delay Time'),
- {16} wbFloat('Match Error Allowance'),
- {20} wbFloat('Displacement To Disable')
- ], cpNormal, True),
- wbString(ANAM, 'Death Pose')
- ]);
-
- wbRecord(DOBJ, 'Default Object Manager', [
- wbEDIDReq,
- wbArray(DATA, 'Default Objects', wbFormID('Default Object'), [
- 'Stimpack',
- 'SuperStimpack',
- 'RadX',
- 'RadAway',
- 'Morphine',
- 'Perk Paralysis',
- 'Player Faction',
- 'Mysterious Stranger NPC',
- 'Mysterious Stranger Faction',
- 'Default Music',
- 'Battle Music',
- 'Death Music',
- 'Success Music',
- 'Level Up Music',
- 'Player Voice (Male)',
- 'Player Voice (Male Child)',
- 'Player Voice (Female)',
- 'Player Voice (Female Child)',
- 'Eat Package Default Food',
- 'Every Actor Ability',
- 'Drug Wears Off Image Space',
- 'Doctor''s Bag',
- 'Miss Fortune NPC',
- 'Miss Fortune Faction',
- 'Meltdown Explosion',
- 'Unarmed Forward PA',
- 'Unarmed Backward PA',
- 'Unarmed Left PA',
- 'Unarmed Right PA',
- 'Unarmed Crouch PA',
- 'Unarmed Counter PA',
- 'Spotter Effect',
- 'Item Detected Effect',
- 'Cateye Mobile Effect (NYI)'
- ], cpNormal, True)
- ]);
-
- wbRecord(LGTM, 'Lighting Template', [
- wbEDIDReq,
- wbStruct(DATA, 'Lighting', [
- wbStruct('Ambient Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Directional Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Fog Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fog Near'),
- wbFloat('Fog Far'),
- wbInteger('Directional Rotation XY', itS32),
- wbInteger('Directional Rotation Z', itS32),
- wbFloat('Directional Fade'),
- wbFloat('Fog Clip Dist'),
- wbFloat('Fog Power')
- ], cpNormal, True)
- ]);
-
- wbRecord(MUSC, 'Music Type', [
- wbEDIDReq,
- wbString(FNAM, 'Filename'),
- wbFloat(ANAM, 'dB (positive = Loop)')
- ]);
-
- wbRecord(GRAS, 'Grass', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbStruct(DATA, '', [
- wbInteger('Density', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbByteArray('Unused', 1),
- wbInteger('Unit from water amount', itU16),
- wbByteArray('Unused', 2),
- wbInteger('Unit from water type', itU32, wbEnum([
- 'Above - At Least',
- 'Above - At Most',
- 'Below - At Least',
- 'Below - At Most',
- 'Either - At Least',
- 'Either - At Most',
- 'Either - At Most Above',
- 'Either - At Most Below'
- ])),
- wbFloat('Position Range'),
- wbFloat('Height Range'),
- wbFloat('Color Range'),
- wbFloat('Wave Period'),
- wbInteger('Flags', itU8, wbFlags([
- 'Vertex Lighting',
- 'Uniform Scaling',
- 'Fit to Slope'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True)
- ]);
-
- wbRecord(HAIR, 'Hair', [
- wbEDIDReq,
- wbFULLReq,
- wbMODLReq,
- wbString(ICON, 'Texture', 0, cpNormal, True),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Playable',
- 'Not Male',
- 'Not Female',
- 'Fixed'
- ]), cpNormal, True)
- ]);
-
- wbRecord(IDLE, 'Idle Animation', [
- wbEDID,
- wbMODLReq,
- wbCTDAs,
- wbArray(ANAM, 'Related Idle Animations', wbFormIDCk('Related Idle Animation', [IDLE, NULL]), ['Parent', 'Previous Sibling'], cpNormal, True),
- wbStruct(DATA, '', [
- wbInteger('Animation Group Section', itU8, wbIdleAnam),
- wbStruct('Looping', [
- wbInteger('Min', itU8),
- wbInteger('Max', itU8)
- ]),
- wbByteArray('Unused', 1),
- wbInteger('Replay Delay', itS16),
- wbInteger('Flags', itU8, wbFlags([
- 'No attacking'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True, nil, 4)
- ]);
-
- wbRecord(INFO, 'Dialog response', [
- wbStruct(DATA, '', [
- wbInteger('Type', itU8, wbEnum([
- {0} 'Topic',
- {1} 'Conversation',
- {2} 'Combat',
- {3} 'Persuasion',
- {4} 'Detection',
- {5} 'Service',
- {6} 'Miscellaneous',
- {7} 'Radio'
- ])),
- wbInteger('Next Speaker', itU8, wbEnum([
- {0} 'Target',
- {1} 'Self',
- {2} 'Either'
- ])),
- wbInteger('Flags 1', itU8, wbFlags([
- {0x01} 'Goodbye',
- {0x02} 'Random',
- {0x04} 'Say Once',
- {0x08} 'Run Immediately',
- {0x10} 'Info Refusal',
- {0x20} 'Random End',
- {0x40} 'Run for Rumors',
- {0x80} 'Speech Challenge'
- ])),
- wbInteger('Flags 2', itU8, wbFlags([
- {0x01} 'Say Once a Day',
- {0x02} 'Always Darken',
- {0x04} 'Unknown 2',
- {0x08} 'Unknown 3',
- {0x10} 'Low Intelligence',
- {0x20} 'High Intelligence'
- ]))
- ], cpNormal, True, nil, 3),
- wbFormIDCkNoReach(QSTI, 'Quest', [QUST], False, cpNormal, True),
- wbFormIDCk(TPIC, 'Topic', [DIAL]), // The GECK ignores it for ESM
- wbFormIDCkNoReach(PNAM, 'Previous INFO', [INFO, NULL]),
- wbRArray('Add Topics', wbFormIDCk(NAME, 'Topic', [DIAL])),
- wbRArray('Responses',
- wbRStruct('Response', [
- wbStruct(TRDT, 'Response Data', [
- wbInteger('Emotion Type', itU32, wbEnum([
- {0} 'Neutral',
- {1} 'Anger',
- {2} 'Disgust',
- {3} 'Fear',
- {4} 'Sad',
- {5} 'Happy',
- {6} 'Surprise',
- {7} 'Pained'
- ])),
- wbInteger('Emotion Value', itS32),
- wbByteArray('Unused', 4),
- wbInteger('Response number', itU8),
- wbByteArray('Unused', 3),
- wbFormIDCk('Sound', [SOUN, NULL]),
- wbInteger('Flags', itU8, wbFlags([
- 'Use Emotion Animation'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, False, nil, 5),
- wbStringKC(NAM1, 'Response Text', 0, cpTranslate, True),
- wbString(NAM2, 'Script Notes', 0, cpTranslate, True),
- wbString(NAM3, 'Edits'),
- wbFormIDCk(SNAM, 'Speaker Animation', [IDLE]),
- wbFormIDCk(LNAM, 'Listener Animation', [IDLE])
- ], [])
- ),
- wbCTDAs,
- wbRArray('Choices', wbFormIDCk(TCLT, 'Choice', [DIAL])),
- wbRArray('Link From', wbFormIDCk(TCLF, 'Topic', [DIAL])),
- wbRArray('Unknown', wbFormIDCk(TCFU, 'Info', [INFO] )),
- wbRStruct('Script (Begin)', [
- wbEmbeddedScriptReq
- ], [], cpNormal, True),
- wbRStruct('Script (End)', [
- wbEmpty(NEXT, 'Marker'),
- wbEmbeddedScriptReq
- ], [], cpNormal, True),
- wbFormIDCk(SNDD, 'Unused', [SOUN]),
- wbString(RNAM, 'Prompt'),
- wbFormIDCk(ANAM, 'Speaker', [CREA, NPC_]),
- wbFormIDCk(KNAM, 'ActorValue/Perk', [AVIF, PERK]),
- wbInteger(DNAM, 'Speech Challenge', itU32, wbEnum([
- '---',
- 'Very Easy',
- 'Easy',
- 'Average',
- 'Hard',
- 'Very Hard'
- ]))
- ], False, wbINFOAddInfo, cpNormal, False, wbINFOAfterLoad);
-
- wbRecord(INGR, 'Ingredient', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbETYPReq,
- wbFloat(DATA, 'Weight', cpNormal, True),
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Value', itS32),
- wbInteger('Flags', itU8, wbFlags(['No auto-calculation', 'Food item'])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(KEYM, 'Key', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLReq,
- wbMODL,
- wbICONReq,
- wbSCRI,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbFormIDCk(RNAM, 'Sound - Random/Looping', [SOUN])
- ]);
-
- wbQuadrantEnum := wbEnum([
- {0} 'Bottom Left',
- {1} 'Bottom Right',
- {2} 'Top Left',
- {3} 'Top Right'
- ]);
-
- if wbSimpleRecords then begin
-
- wbRecord(LAND, 'Landscape', [
- wbByteArray(DATA, 'Unknown'),
- wbByteArray(VNML, 'Vertex Normals'),
- wbByteArray(VHGT, 'Vertext Height Map'),
- wbByteArray(VCLR, 'Vertex Colours'),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ]),
- wbByteArray(VTXT, 'Alpha Layer Data')
- ], [])
- ], [])),
-
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL]))
- ]);
-
- end else begin
-
- wbRecord(LAND, 'Landscape', [
- wbByteArray(DATA, 'Unknown'),
- wbArray(VNML, 'Vertex Normals', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
- wbStruct(VHGT, 'Vertext Height Map', [
- wbFloat('Offset'),
- wbArray('Rows', wbStruct('Row', [
- wbArray('Columns', wbInteger('Column', itU8), 33)
- ]), 33),
- wbByteArray('Unused', 3)
- ]),
- wbArray(VCLR, 'Vertex Colours', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ]),
- wbArrayS(VTXT, 'Alpha Layer Data', wbStructSK([0], 'Cell', [
- wbInteger('Position', itU16, wbAtxtPosition),
- wbByteArray('Unused', 2),
- wbFloat('Opacity')
- ]))
- ], [])
- ], [])),
-
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL]))
- ]);
-
- end;
-
- wbRecord(LIGH, 'Light', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODL,
- wbSCRI,
- wbDEST,
- wbFULL,
- wbICON,
- wbStruct(DATA, '', [
- wbInteger('Time', itS32),
- wbInteger('Radius', itU32),
- wbStruct('Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbInteger('Unused', itU8)
- ]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Dynamic',
- {0x00000002} 'Can be Carried',
- {0x00000004} 'Negative',
- {0x00000008} 'Flicker',
- {0x00000010} 'Unused',
- {0x00000020} 'Off By Default',
- {0x00000040} 'Flicker Slow',
- {0x00000080} 'Pulse',
- {0x00000100} 'Pulse Slow',
- {0x00000200} 'Spot Light',
- {0x00000400} 'Spot Shadow'
- ])),
- wbFloat('Falloff Exponent'),
- wbFloat('FOV'),
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbFloat(FNAM, 'Fade value', cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN])
- ], False, nil, cpNormal, False, wbLIGHAfterLoad);
-
- wbRecord(LSCR, 'Load Screen', [
- wbEDIDReq,
- wbICONReq,
- wbDESCReq,
- wbRArrayS('Locations', wbStructSK(LNAM, [0, 1], 'Location', [
- wbFormIDCk('Direct', [CELL, WRLD, NULL]),
- wbStructSK([0, 1], 'Indirect', [
- wbFormIDCk('World', [NULL, WRLD]),
- wbStructSK([0,1], 'Grid', [
- wbInteger('Y', itS16),
- wbInteger('X', itS16)
- ])
- ])
- ])),
- wbFormIDCk(WMI1, 'Load Screen Type', [LSCT])
- ]);
-
- wbRecord(LTEX, 'Landscape Texture', [
- wbEDIDReq,
- wbICON,
- wbFormIDCk(TNAM, 'Texture', [TXST], False, cpNormal, True),
- wbStruct(HNAM, 'Havok Data', [
- wbInteger('Material Type', itU8, wbEnum([
- {00} 'STONE',
- {01} 'CLOTH',
- {02} 'DIRT',
- {03} 'GLASS',
- {04} 'GRASS',
- {05} 'METAL',
- {06} 'ORGANIC',
- {07} 'SKIN',
- {08} 'WATER',
- {09} 'WOOD',
- {10} 'HEAVY STONE',
- {11} 'HEAVY METAL',
- {12} 'HEAVY WOOD',
- {13} 'CHAIN',
- {14} 'SNOW',
- {15} 'ELEVATOR',
- {16} 'HOLLOW METAL',
- {17} 'SHEET METAL',
- {18} 'SAND',
- {19} 'BRIKEN CONCRETE',
- {20} 'VEHILCE BODY',
- {21} 'VEHILCE PART SOLID',
- {22} 'VEHILCE PART HOLLOW',
- {23} 'BARREL',
- {24} 'BOTTLE',
- {25} 'SODA CAN',
- {26} 'PISTOL',
- {27} 'RIFLE',
- {28} 'SHOPPING CART',
- {29} 'LUNCHBOX',
- {30} 'BABY RATTLE',
- {31} 'RUBER BALL'
- ])),
- wbInteger('Friction', itU8),
- wbInteger('Restitution', itU8)
- ], cpNormal, True),
- wbInteger(SNAM, 'Texture Specular Exponent', itU8, nil, cpNormal, True),
- wbRArrayS('Grasses', wbFormIDCk(GNAM, 'Grass', [GRAS]))
- ]);
-
- wbRecord(LVLC, 'Leveled Creature', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count'
- ]), cpNormal, True),
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [CREA, LVLC]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ]),
- wbCOED
- ], []),
- cpNormal, True),
- wbMODL
- ]);
-
- wbRecord(LVLN, 'Leveled NPC', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count'
- ]), cpNormal, True),
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [NPC_, LVLN]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ]),
- wbCOED
- ], []),
- cpNormal, True),
- wbMODL
- ]);
-
- wbRecord(LVLI, 'Leveled Item', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count',
- {0x04} 'Use All'
- ]), cpNormal, True),
- wbFormIDCk(LVLG, 'Global', [GLOB]),
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [ARMO, AMMO, MISC, WEAP, BOOK, LVLI, KEYM, ALCH, NOTE, IMOD, CMNY, CCRD, CHIP]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ]),
- wbCOED
- ], [])
- )
- ]);
-
- wbArchtypeEnum := wbEnum([
- {00} 'Value Modifier',
- {01} 'Script',
- {02} 'Dispel',
- {03} 'Cure Disease',
- {04} '',
- {05} '',
- {06} '',
- {07} '',
- {08} '',
- {09} '',
- {10} '',
- {11} 'Invisibility',
- {12} 'Chameleon',
- {13} 'Light',
- {14} '',
- {15} '',
- {16} 'Lock',
- {17} 'Open',
- {18} 'Bound Item',
- {19} 'Summon Creature',
- {20} '',
- {21} '',
- {22} '',
- {23} '',
- {24} 'Paralysis',
- {25} '',
- {26} '',
- {27} '',
- {28} '',
- {29} '',
- {30} 'Cure Paralysis',
- {31} 'Cure Addiction',
- {32} 'Cure Poison',
- {33} 'Concussion',
- {34} 'Value And Parts',
- {35} 'Limb Condition',
- {36} 'Turbo'
- ]);
-
- wbRecord(MGEF, 'Base Effect', [
- wbEDIDReq,
- wbFULL,
- wbDESCReq,
- wbICON,
- wbMODL,
- wbStruct(DATA, 'Data', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Hostile',
- {0x00000002} 'Recover',
- {0x00000004} 'Detrimental',
- {0x00000008} '',
- {0x00000010} 'Self',
- {0x00000020} 'Touch',
- {0x00000040} 'Target',
- {0x00000080} 'No Duration',
- {0x00000100} 'No Magnitude',
- {0x00000200} 'No Area',
- {0x00000400} 'FX Persist',
- {0x00000800} '',
- {0x00001000} 'Gory Visuals',
- {0x00002000} 'Display Name Only',
- {0x00004000} '',
- {0x00008000} 'Radio Broadcast ??',
- {0x00010000} '',
- {0x00020000} '',
- {0x00040000} '',
- {0x00080000} 'Use skill',
- {0x00100000} 'Use attribute',
- {0x00200000} '',
- {0x00400000} '',
- {0x00800000} '',
- {0x01000000} 'Painless',
- {0x02000000} 'Spray projectile type (or Fog if Bolt is specified as well)',
- {0x04000000} 'Bolt projectile type (or Fog if Spray is specified as well)',
- {0x08000000} 'No Hit Effect',
- {0x10000000} 'No Death Dispel',
- {0x20000000} '????'
- ])),
- {04} wbFloat('Base cost (Unused)'),
- {08} wbUnion('Assoc. Item', wbMGEFFAssocItemDecider, [
- wbFormID('Unused', cpIgnore),
- wbFormID('Assoc. Item'),
- wbFormIDCk('Assoc. Script', [SCPT, NULL]), //Script
- wbFormIDCk('Assoc. Item', [WEAP, ARMO, NULL]), //Bound Item
- wbFormIDCk('Assoc. Creature', [CREA]) //Summon Creature
- ], cpNormal, false, nil, wbMGEFFAssocItemAfterSet),
- {12} wbInteger('Magic School (Unused)', itS32, wbEnum([
- ], [
- -1, 'None'
- ])),
- {16} wbInteger('Resistance Type', itS32, wbActorValueEnum),
- {20} wbInteger('Counter effect count', itU16),
- {22} wbByteArray('Unused', 2),
- {24} wbFormIDCk('Light', [LIGH, NULL]),
- {28} wbFloat('Projectile speed'),
- {32} wbFormIDCk('Effect Shader', [EFSH, NULL]),
- {36} wbFormIDCk('Object Display Shader', [EFSH, NULL]),
- {40} wbFormIDCk('Effect sound', [NULL, SOUN]),
- {44} wbFormIDCk('Bolt sound', [NULL, SOUN]),
- {48} wbFormIDCk('Hit sound', [NULL, SOUN]),
- {52} wbFormIDCk('Area sound', [NULL, SOUN]),
- {56} wbFloat('Constant Effect enchantment factor (Unused)'),
- {60} wbFloat('Constant Effect barter factor (Unused)'),
- {64} wbInteger('Archtype', itU32, wbArchtypeEnum, cpNormal, False, nil, wbMGEFArchtypeAfterSet),
- {68} wbActorValue
- ], cpNormal, True),
- wbRArrayS('Counter Effects', wbFormIDCk(ESCE, 'Effect', [MGEF]), cpNormal, False, nil, wbCounterEffectsAfterSet)
- ], False, nil, cpNormal, False, wbMGEFAfterLoad, wbMGEFAfterSet);
-
- wbRecord(MISC, 'Misc. Item', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbFormIDCk(RNAM, 'Sound - Random/Looping', [SOUN])
- ]);
-
- wbRecord(COBJ, 'Constructible Object', [
- wbEDID,
- wbOBND,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- // floats are reported to change faces after copying
- if True {wbSimpleRecords} then begin
- wbFaceGen := wbRStruct('FaceGen Data', [
- wbByteArray(FGGS, 'FaceGen Geometry-Symmetric', 0, cpNormal, True),
- wbByteArray(FGGA, 'FaceGen Geometry-Asymmetric', 0, cpNormal, True),
- wbByteArray(FGTS, 'FaceGen Texture-Symmetric', 0, cpNormal, True)
- ], [], cpNormal, True);
-
- wbFaceGenNPC := wbRStruct('FaceGen Data', [ // Arrays of 4bytes elements
- wbByteArray(FGGS, 'FaceGen Geometry-Symmetric', 0, cpNormal, True),
- wbByteArray(FGGA, 'FaceGen Geometry-Asymmetric', 0, cpNormal, True),
- wbByteArray(FGTS, 'FaceGen Texture-Symmetric', 0, cpNormal, True)
- ], [], cpNormal, True, wbActorTemplateUseModelAnimation);
- end else begin
- wbFaceGen := wbRStruct('FaceGen Data', [
- wbArray(FGGS, 'FaceGen Geometry-Symmetric', wbFloat('Value'), [], cpNormal, True),
- wbArray(FGGA, 'FaceGen Geometry-Asymmetric', wbFloat('Value'), [], cpNormal, True),
- wbArray(FGTS, 'FaceGen Texture-Symmetric', wbFloat('Value'), [], cpNormal, True)
- ], [], cpNormal, True);
-
- wbFaceGenNPC := wbRStruct('FaceGen Data', [
- wbArray(FGGS, 'FaceGen Geometry-Symmetric', wbFloat('Value'), [], cpNormal, True),
- wbArray(FGGA, 'FaceGen Geometry-Asymmetric', wbFloat('Value'), [], cpNormal, True),
- wbArray(FGTS, 'FaceGen Texture-Symmetric', wbFloat('Value'), [], cpNormal, True)
- ], [], cpNormal, True, wbActorTemplateUseModelAnimation);
- end;
-
- wbRecord(NPC_, 'Non-Player Character', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLActor,
- wbMODLActor,
- wbStruct(ACBS, 'Configuration', [
- {00} wbInteger('Flags', itU32, wbFlags([
- {0x000001} 'Female',
- {0x000002} 'Essential',
- {0x000004} 'Is CharGen Face Preset',
- {0x000008} 'Respawn',
- {0x000010} 'Auto-calc stats',
- {0x000020} '',
- {0x000040} '',
- {0x000080} 'PC Level Mult',
- {0x000100} 'Use Template',
- {0x000200} 'No Low Level Processing',
- {0x000400} '',
- {0x000800} 'No Blood Spray',
- {0x001000} 'No Blood Decal',
- {0x002000} '',
- {0x004000} '',
- {0x008000} '',
- {0x010000} '',
- {0x020000} '',
- {0x040000} '',
- {0x080000} '',
- {0x100000} 'No VATS Melee',
- {0x00200000} '',
- {0x00400000} 'Can be all races',
- {0x00800000} 'Autocalc Service',
- {0x01000000} '',
- {0x02000000} '',
- {0x04000000} 'No Knockdowns',
- {0x08000000} 'Not Pushable',
- {0x10000000} 'Unknown 28',
- {0x20000000} '',
- {0x40000000} 'No Rotating To Head-track',
- {0x80000000} ''
- ], [
- {0x000001 Female} wbActorTemplateUseTraits,
- {0x000002 Essential} wbActorTemplateUseBaseData,
- {0x000004 Is CharGen Face Preset} nil,
- {0x000008 Respawn} wbActorTemplateUseBaseData,
- {0x000010 Auto-calc stats} wbActorTemplateUseStats,
- {0x000020 } nil,
- {0x000040 } nil,
- {0x000080 PC Level Mult} wbActorTemplateUseStats,
- {0x000100 Use Template} nil,
- {0x000200 No Low Level Processing} wbActorTemplateUseBaseData,
- {0x000400 } nil,
- {0x000800 No Blood Spray} wbActorTemplateUseModelAnimation,
- {0x001000 No Blood Decal} wbActorTemplateUseModelAnimation,
- {0x002000 } nil,
- {0x004000 } nil,
- {0x008000 } nil,
- {0x010000 } nil,
- {0x020000 } nil,
- {0x040000 } nil,
- {0x080000 } nil,
- {0x100000 No VATS Melee} nil,
- {0x00200000 } nil,
- {0x00400000 Can be all races} nil,
- {0x00800000 } nil,
- {0x01000000 } nil,
- {0x02000000 } nil,
- {0x04000000 No Knockdowns} nil,
- {0x08000000 Not Pushable} wbActorTemplateUseModelAnimation,
- {0x10000000 } nil,
- {0x20000000 } nil,
- {0x40000000 No Rotating To Head-track} wbActorTemplateUseModelAnimation,
- {0x80000000 } nil
- ])),
- {04} wbInteger('Fatigue', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {06} wbInteger('Barter gold', itU16, nil, cpNormal, False, wbActorTemplateUseAIData),
- {08} wbUnion('Level', wbCreaLevelDecider, [
- wbInteger('Level', itS16, nil, cpNormal, True, wbActorTemplateUseStats),
- wbInteger('Level Mult', itS16, wbDiv(1000), cpNormal, True, wbActorTemplateUseStats)
- ], cpNormal, True, wbActorTemplateUseStats),
- {10} wbInteger('Calc min', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {12} wbInteger('Calc max', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {14} wbInteger('Speed Multiplier', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {16} wbFloat('Karma (Alignment)', cpNormal, False, 1, -1, wbActorTemplateUseTraits),
- {20} wbInteger('Disposition Base', itS16, nil, cpNormal, False, wbActorTemplateUseTraits),
- {22} wbInteger('Template Flags', itU16, wbTemplateFlags)
- ], cpNormal, True),
- wbRArrayS('Factions',
- wbStructSK(SNAM, [0], 'Faction', [
- wbFormIDCk('Faction', [FACT]),
- wbInteger('Rank', itU8),
- wbByteArray('Unused', 3)
- ]),
- cpNormal, False, nil, nil, wbActorTemplateUseFactions),
- wbFormIDCk(INAM, 'Death item', [LVLI], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(VTCK, 'Voice', [VTYP], False, cpNormal, True, wbActorTemplateUseTraits),
- wbFormIDCk(TPLT, 'Template', [LVLN, NPC_]),
- wbFormIDCk(RNAM, 'Race', [RACE], False, cpNormal, True, wbActorTemplateUseTraits),
- wbSPLOs,
- wbFormIDCk(EITM, 'Unarmed Attack Effect', [ENCH, SPEL], False, cpNormal, False, wbActorTemplateUseActorEffectList),
- wbInteger(EAMT, 'Unarmed Attack Animation', itU16, wbAttackAnimationEnum, cpNormal, True, False, wbActorTemplateUseActorEffectList),
- wbDESTActor,
- wbSCRIActor,
- wbRArrayS('Items', wbCNTO, cpNormal, False, nil, nil, wbActorTemplateUseInventory),
- wbAIDT,
- wbRArray('Packages', wbFormIDCk(PKID, 'Package', [PACK]), cpNormal, False, nil, nil, wbActorTemplateUseAIPackages),
- wbArrayS(KFFZ, 'Animations', wbStringLC('Animation'), 0, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbFormIDCk(CNAM, 'Class', [CLAS], False, cpNormal, True, wbActorTemplateUseTraits),
- wbStruct(DATA, '', [
- {00} wbInteger('Base Health', itS32),
- {04} wbArray('Attributes', wbInteger('Attribute', itU8), [
- 'Strength',
- 'Perception',
- 'Endurance',
- 'Charisma',
- 'Intelligence',
- 'Agility',
- 'Luck'
- ], cpNormal, False, wbActorAutoCalcDontShow),
- wbByteArray('Unused'{, 14 - only present in old record versions})
- ], cpNormal, True, wbActorTemplateUseStats),
- wbStruct(DNAM, '', [
- {00} wbArray('Skill Values', wbInteger('Skill', itU8), [
- 'Barter',
- 'Big Guns (obsolete)',
- 'Energy Weapons',
- 'Explosives',
- 'Lockpick',
- 'Medicine',
- 'Melee Weapons',
- 'Repair',
- 'Science',
- 'Guns',
- 'Sneak',
- 'Speech',
- 'Survival',
- 'Unarmed'
- ]),
- {14} wbArray('Skill Offsets', wbInteger('Skill', itU8), [
- 'Barter',
- 'Big Guns (obsolete)',
- 'Energy Weapons',
- 'Explosives',
- 'Lockpick',
- 'Medicine',
- 'Melee Weapons',
- 'Repair',
- 'Science',
- 'Guns',
- 'Sneak',
- 'Speech',
- 'Survival',
- 'Unarmed'
- ])
- ], cpNormal, False, wbActorTemplateUseStatsAutoCalc),
- wbRArrayS('Head Parts',
- wbFormIDCk(PNAM, 'Head Part', [HDPT]),
- cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbFormIDCk(HNAM, 'Hair', [HAIR], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbFloat(LNAM, 'Hair length', cpNormal, False, 1, -1, wbActorTemplateUseModelAnimation),
- wbFormIDCk(ENAM, 'Eyes', [EYES], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbStruct(HCLR, 'Hair color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ], cpNormal, True, wbActorTemplateUseModelAnimation),
- wbFormIDCk(ZNAM, 'Combat Style', [CSTY], False, cpNormal, False, wbActorTemplateUseTraits),
- wbInteger(NAM4, 'Impact Material Type', itU32, wbImpactMaterialTypeEnum, cpNormal, True, False, wbActorTemplateUseModelAnimation),
- wbFaceGenNPC,
- wbInteger(NAM5, 'Unknown', itU16, nil, cpNormal, True, False, nil, nil, 255),
- wbFloat(NAM6, 'Height', cpNormal, True, 1, -1, wbActorTemplateUseTraits),
- wbFloat(NAM7, 'Weight', cpNormal, True, 1, -1, wbActorTemplateUseTraits)
- ], True, nil, cpNormal, False, wbNPCAfterLoad);
-
- wbPKDTFlags := wbFlags([
- {0x00000001} 'Offers Services',
- {0x00000002} 'Must reach location',
- {0x00000004} 'Must complete',
- {0x00000008} 'Lock doors at package start',
- {0x00000010} 'Lock doors at package end',
- {0x00000020} 'Lock doors at location',
- {0x00000040} 'Unlock doors at package start',
- {0x00000080} 'Unlock doors at package end',
- {0x00000100} 'Unlock doors at location',
- {0x00000200} 'Continue if PC near',
- {0x00000400} 'Once per day',
- {0x00000800} '',
- {0x00001000} 'Skip fallout behavior',
- {0x00002000} 'Always run',
- {0x00004000} '',
- {0x00008000} '',
- {0x00010000} '',
- {0x00020000} 'Always sneak',
- {0x00040000} 'Allow swimming',
- {0x00080000} 'Allow falls',
- {0x00100000} 'Head-Tracking off',
- {0x00200000} 'Weapons unequipped',
- {0x00400000} 'Defensive combat',
- {0x00800000} 'Weapon Drawn',
- {0x01000000} 'No idle anims',
- {0x02000000} 'Pretend In Combat',
- {0x04000000} 'Continue During Combat',
- {0x08000000} 'No Combat Alert',
- {0x10000000} 'No Warn/Attack Behaviour',
- {0x20000000} '',
- {0x40000000} '',
- {0x80000000} ''
- ]);
-
- wbPKDTType := wbEnum([
- {0} 'Find',
- {1} 'Follow',
- {2} 'Escort',
- {3} 'Eat',
- {4} 'Sleep',
- {5} 'Wander',
- {6} 'Travel',
- {7} 'Accompany',
- {8} 'Use Item At',
- {9} 'Ambush',
- {10} 'Flee Not Combat',
- {11} 'Package Type 11',
- {12} 'Sandbox',
- {13} 'Patrol',
- {14} 'Guard',
- {15} 'Dialogue',
- {16} 'Use Weapon',
- {17} 'Package Type 17',
- {18} 'Combat Controller',
- {19} 'Package Type 19',
- {20} 'Package Type 20',
- {21} 'Alarm',
- {22} 'Flee',
- {23} 'TressPass',
- {24} 'Spectator',
- {25} 'Package Type 25',
- {26} 'Package Type 26',
- {27} 'Package Type 27',
- {28} 'Dialogue 2',
- {29} 'Package Type 29',
- {30} 'Package Type 30',
- {31} 'Package Type 31',
- {32} 'Package Type 32',
- {33} 'Package Type 33',
- {34} 'Package Type 34',
- {35} 'Package Type 35',
- {36} 'Package Type 36',
- {37} 'Package Type 37',
- {38} 'Package Type 38',
- {39} 'Package Type 39',
- {40} 'Package Type 40'
- ]);
-
- wbObjectTypeEnum := wbEnum([
- ' NONE',
- 'Activators',
- 'Armor',
- 'Books',
- 'Clothing',
- 'Containers',
- 'Doors',
- 'Ingredients',
- 'Lights',
- 'Misc',
- 'Flora',
- 'Furniture',
- 'Weapons: Any',
- 'Ammo',
- 'NPCs',
- 'Creatures',
- 'Keys',
- 'Alchemy',
- 'Food',
- ' All: Combat Wearable',
- ' All: Wearable',
- 'Weapons: Ranged',
- 'Weapons: Melee',
- 'Weapons: NONE',
- 'Actor Effects: Any',
- 'Actor Effects: Range Target',
- 'Actor Effects: Range Touch',
- 'Actor Effects: Range Self',
-// '',
- 'Actors: Any'
- ]);
-
-
- wbPKDTSpecificFlagsUnused := True;
-
- wbRecord(PACK, 'Package', [
- wbEDIDReq,
- wbStruct(PKDT, 'General', [
- wbInteger('General Flags', itU32, wbPKDTFlags),
- wbInteger('Type', itU8, wbPKDTType),
- wbByteArray('Unused', 1),
- wbInteger('Fallout Behavior Flags', itU16, wbFlags([
- {0x00000001}'Hellos To Player',
- {0x00000002}'Random Conversations',
- {0x00000004}'Observe Combat Behavior',
- {0x00000008}'Unknown 4',
- {0x00000010}'Reaction To Player Actions',
- {0x00000020}'Friendly Fire Comments',
- {0x00000040}'Aggro Radius Behavior',
- {0x00000080}'Allow Idle Chatter',
- {0x00000100}'Avoid Radiation'
- ], True)),
- wbUnion('Type Specific Flags', wbPKDTSpecificFlagsDecider, [
- wbEmpty('Type Specific Flags (missing)', cpIgnore, False, nil, True),
- wbInteger('Type Specific Flags - Find', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Find - Allow Buying',
- {0x00000200}'Find - Allow Killing',
- {0x00000400}'Find - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Follow', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Escort', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Escort - Allow Buying',
- {0x00000200}'Escort - Allow Killing',
- {0x00000400}'Escort - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Eat', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Eat - Allow Buying',
- {0x00000200}'Eat - Allow Killing',
- {0x00000400}'Eat - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Sleep', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Wander', itU16, wbFlags([
- {0x00000001}'Wander - No Eating',
- {0x00000002}'Wander - No Sleeping',
- {0x00000004}'Wander - No Conversation',
- {0x00000008}'Wander - No Idle Markers',
- {0x00000010}'Wander - No Furniture',
- {0x00000020}'Wander - No Wandering'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Travel', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Accompany', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Use Item At', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'Use Item At - Sit Down',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Use Item At - Allow Buying',
- {0x00000200}'Use Item At - Allow Killing',
- {0x00000400}'Use Item At - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Ambush', itU16, wbFlags([
- {0x00000001}'Ambush - Hide While Ambushing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Flee Not Combat', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - ?', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Sandbox', itU16, wbFlags([
- {0x00000001}'Sandbox - No Eating',
- {0x00000002}'Sandbox - No Sleeping',
- {0x00000004}'Sandbox - No Conversation',
- {0x00000008}'Sandbox - No Idle Markers',
- {0x00000010}'Sandbox - No Furniture',
- {0x00000020}'Sandbox - No Wandering'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Patrol', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Guard', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'Guard - Remain Near Reference to Guard'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Dialogue', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Use Weapon', itU16, wbFlags([], wbPKDTSpecificFlagsUnused))
- ]),
- wbByteArray('Unused', 2)
- ], cpNormal, True, nil, 2),
- wbRStruct('Locations', [
- wbStruct(PLDT, 'Location 1', [
- wbInteger('Type', itS32, wbEnum([ // Byte + filler
- {0} 'Near reference',
- {1} 'In cell',
- {2} 'Near current location',
- {3} 'Near editor location',
- {4} 'Object ID',
- {5} 'Object Type',
- {6} 'Near linked reference',
- {7} 'At package location'
- ])),
- wbUnion('Location', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [REFR, PGRE, PMIS, PBEA, ACHR, ACRE, PLYR], True),
- wbFormIDCkNoReach('Cell', [CELL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, CHIP, CMNY, CCRD, IMOD]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Radius', itS32)
- ], cpNormal, True),
- wbStruct(PLD2, 'Location 2', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Near reference',
- {1} 'In cell',
- {2} 'Near current location',
- {3} 'Near editor location',
- {4} 'Object ID',
- {5} 'Object Type',
- {6} 'Near linked reference',
- {7} 'At package location'
- ])),
- wbUnion('Location', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [REFR, PGRE, PMIS, PBEA, ACHR, ACRE, PLYR], True),
- wbFormIDCkNoReach('Cell', [CELL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, CHIP, CMNY, CCRD, IMOD]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Radius', itS32)
- ])
- ], [], cpNormal, False, nil, True),
- wbStruct(PSDT, 'Schedule', [
- wbInteger('Month', itS8),
- wbInteger('Day of week', itS8, wbEnum([
- 'Sunday',
- 'Monday',
- 'Tuesday',
- 'Wednesday',
- 'Thursday',
- 'Friday',
- 'Saturday',
- 'Weekdays',
- 'Weekends',
- 'Monday, Wednesday, Friday',
- 'Tuesday, Thursday'
- ], [
- -1, 'Any'
- ])),
- wbInteger('Date', itU8),
- wbInteger('Time', itS8),
- wbInteger('Duration', itS32)
- ], cpNormal, True),
- wbStruct(PTDT, 'Target 1', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Specific Reference',
- {1} 'Object ID',
- {2} 'Object Type',
- {3} 'Linked Reference'
- ]), cpNormal, False, nil, nil, 2),
- wbUnion('Target', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [ACHR, ACRE, REFR, PGRE, PMIS, PBEA, PLYR], True),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, LVLN, LVLC, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, FACT, FLST, IDLM, CHIP, CMNY, CCRD, IMOD]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Count / Distance', itS32),
- wbFloat('Unknown')
- ], cpNormal, False, nil, 3),
- wbCTDAs,
- wbRStruct('Idle Animations', [
- wbInteger(IDLF, 'Flags', itU8, wbFlags([
- 'Run in Sequence',
- '',
- 'Do Once'
- ]), cpNormal, True),
- wbStruct(IDLC, '', [
- wbInteger( 'Animation Count', itU8),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 1),
- wbFloat(IDLT, 'Idle Timer Setting', cpNormal, True),
- wbArray(IDLA, 'Animations', wbFormIDCk('Animation', [IDLE]), 0, nil, wbIDLAsAfterSet, cpNormal, True),
- wbByteArray(IDLB, 'Unused', 4, cpIgnore)
- ], [], cpNormal, False, nil, False, nil {cannot be totally removed , wbAnimationsAfterSet}),
- wbFormIDCk(CNAM, 'Combat Style', [CSTY]),
- wbEmpty(PKED, 'Eat Marker'),
- wbInteger(PKE2, 'Escort Distance', itU32),
- wbFloat(PKFD, 'Follow - Start Location - Trigger Radius'),
- wbStruct(PKPT, 'Patrol Flags', [
- wbInteger('Repeatable', itU8, wbEnum(['No', 'Yes']), cpNormal, False, nil, nil, 1),
- wbByteArray('Unused', 1)
- ], cpNormal, False, nil, 1),
- wbStruct(PKW3, 'Use Weapon Data', [
- wbInteger('Flags', itU32, wbFlags([
- 'Always Hit',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Do No Damage',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Crouch To Reload',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Hold Fire When Blocked'
- ])),
- wbInteger('Fire Rate', itU8, wbEnum([
- 'Auto Fire',
- 'Volley Fire'
- ])),
- wbInteger('Fire Count', itU8, wbEnum([
- 'Number of Bursts',
- 'Repeat Fire'
- ])),
- wbInteger('Number of Bursts', itU16),
- wbStruct('Shoots Per Volleys', [
- wbInteger('Min', itU16),
- wbInteger('Max', itU16)
- ]),
- wbStruct('Pause Between Volleys', [
- wbFloat('Min'),
- wbFloat('Max')
- ]),
- wbByteArray('Unused', 4)
- ]),
- wbStruct(PTD2, 'Target 2', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Specific reference',
- {1} 'Object ID',
- {2} 'Object Type',
- {3} 'Linked Reference'
- ])),
- wbUnion('Target', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [ACHR, ACRE, REFR, PGRE, PMIS, PBEA, PLYR], True),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, LVLN, LVLC, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, FACT, FLST, CHIP, CMNY, CCRD, IMOD]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Count / Distance', itS32),
- wbFloat('Unknown')
- ], cpNormal, False, nil, 3),
- wbEmpty(PUID, 'Use Item Marker'),
- wbEmpty(PKAM, 'Ambush Marker'),
- wbStruct(PKDD, 'Dialogue Data', [
- wbFloat('FOV'),
- wbFormIDCk('Topic', [DIAL, NULL]),
- wbInteger('Flags', itU32, wbFlags([
- 'No Headtracking',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Don''t Control Target Movement'
- ])),
- wbByteArray('Unused', 4),
- wbInteger('Dialogue Type', itU32, wbEnum([
- 'Conversation',
- 'Say To'
- ])),
- wbByteArray('Unknown', 4)
- ], cpNormal, False, nil, 3),
- wbStruct(PLD2, 'Location 2 (again??)', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Near reference',
- {1} 'In cell',
- {2} 'Near current location',
- {3} 'Near editor location',
- {4} 'Object ID',
- {5} 'Object Type',
- {6} 'Near linked reference',
- {7} 'At package location'
- ])),
- wbUnion('Location', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [REFR, PGRE, PMIS, PBEA, ACHR, ACRE, PLYR], True),
- wbFormIDCkNoReach('Cell', [CELL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, CHIP, CMNY, CCRD, IMOD]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Radius', itS32)
- ]),
- wbRStruct('OnBegin', [
- wbEmpty(POBA, 'OnBegin Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('OnEnd', [
- wbEmpty(POEA, 'OnEnd Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('OnChange', [
- wbEmpty(POCA, 'OnChange Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], [], cpNormal, True)
- ], False, nil, cpNormal, False, wbPACKAfterLoad);
-
- wbRecord(QUST, 'Quest', [
- wbEDIDReq,
- wbSCRI,
- wbFULL,
- wbICON,
- wbStruct(DATA, 'General', [
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Start game enabled',
- {0x02} '',
- {0x04} 'Allow repeated conversation topics',
- {0x08} 'Allow repeated stages',
- {0x10} 'Unknown 4'
- ])),
- wbInteger('Priority', itU8),
- wbByteArray('Unused', 2),
- wbFloat('Quest Delay')
- ], cpNormal, True, nil, 3),
- wbCTDAs,
- wbRArrayS('Stages', wbRStructSK([0], 'Stage', [
- wbInteger(INDX, 'Stage Index', itS16),
- wbRArray('Log Entries', wbRStruct('Log Entry', [
- wbInteger(QSDT, 'Stage Flags', itU8, wbFlags([
- {0x01} 'Complete Quest',
- {0x02} 'Fail Quest'
- ])),
- wbCTDAs,
- wbString(CNAM, 'Log Entry', 0, cpTranslate),
- wbEmbeddedScriptReq,
- wbFormIDCk(NAM0, 'Next Quest', [QUST])
- ], []))
- ], [])),
- wbRArray('Objectives', wbRStruct('Objective', [
- wbInteger(QOBJ, 'Objective Index', itS32),
- wbString(NNAM, 'Description', 0, cpNormal, True),
- wbRArray('Targets', wbRStruct('Target', [
- wbStruct(QSTA, 'Target', [
- wbFormIDCkNoReach('Target', [REFR, PGRE, PMIS, PBEA, ACRE, ACHR], True),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Compass Marker Ignores Locks'
- ])),
- wbByteArray('Unused', 3)
- ]),
- wbCTDAs
- ], []))
- ], []))
- ]);
-
- wbHeadPartIndexEnum := wbEnum([
- 'Head',
- 'Ears',
- 'Mouth',
- 'Teeth Lower',
- 'Teeth Upper',
- 'Tongue',
- 'Left Eye',
- 'Right Eye'
- ]);
-
- wbBodyPartIndexEnum := wbEnum([
- 'Upper Body',
- 'Left Hand',
- 'Right Hand',
- 'Upper Body Texture'
- ]);
-
- wbRecord(RACE, 'Race', [
- wbEDIDReq,
- wbFULLReq,
- wbDESCReq,
- wbXNAMs,
- wbStruct(DATA, '', [
- wbArrayS('Skill Boosts', wbStructSK([0], 'Skill Boost', [
- wbInteger('Skill', itS8, wbActorValueEnum),
- wbInteger('Boost', itS8)
- ]), 7),
- wbByteArray('Unused', 2),
- wbFloat('Male Height'),
- wbFloat('Female Height'),
- wbFloat('Male Weight'),
- wbFloat('Female Weight'),
- wbInteger('Flags', itU32, wbFlags([
- 'Playable',
- '',
- 'Child'
- ]))
- ], cpNormal, True),
- wbFormIDCk(ONAM, 'Older', [RACE]),
- wbFormIDCk(YNAM, 'Younger', [RACE]),
- wbEmpty(NAM2, 'Unknown Marker', cpNormal, True),
- wbArray(VTCK, 'Voices', wbFormIDCk('Voice', [VTYP]), ['Male', 'Female'], cpNormal, True),
- wbArray(DNAM, 'Default Hair Styles', wbFormIDCk('Default Hair Style', [HAIR, NULL]), ['Male', 'Female'], cpNormal, True),
- wbArray(CNAM, 'Default Hair Colors', wbInteger('Default Hair Color', itU8, wbEnum([
- 'Bleached',
- 'Brown',
- 'Chocolate',
- 'Platinum',
- 'Cornsilk',
- 'Suede',
- 'Pecan',
- 'Auburn',
- 'Ginger',
- 'Honey',
- 'Gold',
- 'Rosewood',
- 'Black',
- 'Chestnut',
- 'Steel',
- 'Champagne'
- ])), ['Male', 'Female'], cpNormal, True),
- wbFloat(PNAM, 'FaceGen - Main clamp', cpNormal, True),
- wbFloat(UNAM, 'FaceGen - Face clamp', cpNormal, True),
- wbByteArray(ATTR, 'Unused', 0, cpNormal, True),
- wbRStruct('Head Data', [
- wbEmpty(NAM0, 'Head Data Marker', cpNormal, True),
- wbRStruct('Male Head Data', [
- wbEmpty(MNAM, 'Male Data Marker', cpNormal, True),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbHeadPartIndexEnum),
- wbMODLReq,
- wbICON
- ], [], cpNormal, False, nil, False, nil, wbHeadPartsAfterSet), cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Female Head Data', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbHeadPartIndexEnum),
- wbMODLReq,
- wbICON
- ], [], cpNormal, False, nil, False, nil, wbHeadPartsAfterSet), cpNormal, True)
- ], [], cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Body Data', [
- wbEmpty(NAM1, 'Body Data Marker', cpNormal, True),
- wbRStruct('Male Body Data', [
- wbEmpty(MNAM, 'Male Data Marker'),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbBodyPartIndexEnum),
- wbICON,
- wbMODLReq
- ], []), cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Female Body Data', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbBodyPartIndexEnum),
- wbICON,
- wbMODLReq
- ], []), cpNormal, True)
- ], [], cpNormal, True)
- ], [], cpNormal, True),
- wbArrayS(HNAM, 'Hairs', wbFormIDCk('Hair', [HAIR]), 0, cpNormal, True),
- wbArrayS(ENAM, 'Eyes', wbFormIDCk('Eye', [EYES]), 0, cpNormal, True),
- wbRStruct('FaceGen Data', [
- wbRStruct('Male FaceGen Data', [
- wbEmpty(MNAM, 'Male Data Marker', cpNormal, True),
- wbFaceGen,
- wbInteger(SNAM, 'Unknown', itU16, nil, cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Female FaceGen Data', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbFaceGen,
- wbInteger(SNAM, 'Unknown', itU16, nil, cpNormal, True) // will effectivly overwrite the SNAM from the male :)
- ], [], cpNormal, True)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(REFR, 'Placed Object', [
- wbEDID,
- {
- wbStruct(RCLR, 'Linked Reference Color (Old Format?)', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ], cpIgnore),}
- wbByteArray(RCLR, 'Unused', 0, cpIgnore),
- wbFormIDCk(NAME, 'Base', [TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, LVLN, LVLC,
- MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, CHIP,
- MSTT, NOTE, PWAT, SCOL, TACT, TERM, TXST, CCRD, IMOD, CMNY], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- {--- ?? ---}
- wbXRGD,
- wbXRGB,
-
- {--- Primitive ---}
- wbStruct(XPRM, 'Primitive', [
- wbStruct('Bounds', [
- wbFloat('X', cpNormal, True, 2, 4),
- wbFloat('Y', cpNormal, True, 2, 4),
- wbFloat('Z', cpNormal, True, 2, 4)
- ]),
- wbStruct('Color', [
- {84} wbFloat('Red', cpNormal, False, 255, 0),
- {88} wbFloat('Green', cpNormal, False, 255, 0),
- {92} wbFloat('Blue', cpNormal, False, 255, 0)
- ]),
- wbFloat('Unknown'),
- wbInteger('Type', itU32, wbEnum([
- 'None',
- 'Box',
- 'Sphere',
- 'Portal Box'
- ]))
- ]),
- wbInteger(XTRI, 'Collision Layer', itU32, wbEnum([
- 'Unidentified',
- 'Static',
- 'AnimStatic',
- 'Transparent',
- 'Clutter',
- 'Weapon',
- 'Projectile',
- 'Spell',
- 'Biped',
- 'Trees',
- 'Props',
- 'Water',
- 'Trigger',
- 'Terrain',
- 'Trap',
- 'Non Collidable',
- 'Cloud Trap',
- 'Ground',
- 'Portal',
- 'Debris Small',
- 'Debris Large',
- 'Acustic Space',
- 'Actor Zone',
- 'Projectile Zone',
- 'Gas Trap',
- 'Shell Casing',
- 'Transparent Small',
- 'Invisible Wall',
- 'Transparent Small Anim',
- 'Dead Bip',
- 'Char Controller',
- 'Avoid Box',
- 'Collision Box',
- 'Camera Sphere',
- 'Door Detection',
- 'Camera Pick',
- 'Item Pick',
- 'Line Of Sight',
- 'Path Pick',
- 'Custom Pick 1',
- 'Custom Pick 2',
- 'Spell Explosion',
- 'Dropping Pick'
- ])),
- wbEmpty(XMBP, 'MultiBound Primitive Marker'),
-
- {--- Bound Contents ---}
-
- {--- Bound Data ---}
- wbStruct(XMBO, 'Bound Half Extents', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
-
- {--- Teleport ---}
- wbStruct(XTEL, 'Teleport Destination', [
- wbFormIDCk('Door', [REFR], True),
- wbPosRot,
- wbInteger('Flags', itU32, wbFlags([
- 'No Alarm'
- ]))
- ]),
-
- {--- Map Data ---}
- wbRStruct('Map Marker', [
- wbEmpty(XMRK, 'Map Marker Data'),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- {0x01} 'Visible',
- {0x02} 'Can Travel To',
- {0x04} '"Show All" Hidden'
- ]), cpNormal, True),
- wbFULLReq,
- wbStruct(TNAM, '', [
- wbInteger('Type', itU8, wbEnum([
- 'None',
- 'City',
- 'Settlement',
- 'Encampment',
- 'Natural Landmark',
- 'Cave',
- 'Factory',
- 'Monument',
- 'Military',
- 'Office',
- 'Town Ruins',
- 'Urban Ruins',
- 'Sewer Ruins',
- 'Metro',
- 'Vault'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCk(WMI1, 'Reputation', [REPU])
- ], []),
-
- {--- Audio Data ---}
- wbRStruct('Audio Data', [
- wbEmpty(MMRK, 'Audio Marker'),
- wbUnknown(FULL),
- wbFormIDCk(CNAM, 'Audio Location', [ALOC]),
- wbInteger(BNAM, 'Flags', itU32, wbFlags(['Use Controller Values'])),
- wbFloat(MNAM, 'Layer 2 Trigger %', cpNormal, True, 100),
- wbFloat(NNAM, 'Layer 3 Trigger %', cpNormal, True, 100)
- ], []),
-
- wbInteger(XSRF, 'Special Rendering Flags', itU32, wbFlags([
- 'Unknown 0',
- 'Imposter',
- 'Use Full Shader in LOD'
- ])),
- wbByteArray(XSRD, 'Special Rendering Data', 4),
-
- {--- X Target Data ---}
- wbFormIDCk(XTRG, 'Target', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA], True),
-
- {--- Leveled Actor ----}
- wbXLCM,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Radio ---}
- wbStruct(XRDO, 'Radio Data', [
- wbFloat('Range Radius'),
- wbInteger('Broadcast Range Type', itU32, wbEnum([
- 'Radius',
- 'Everywhere',
- 'Worldspace and Linked Interiors',
- 'Linked Interiors',
- 'Current Cell Only'
- ])),
- wbFloat('Static Percentage'),
- wbFormIDCkNoReach('Position Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, NULL])
- ]),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Lock ---}
- wbStruct(XLOC, 'Lock Data', [
- wbInteger('Level', itU8),
- wbByteArray('Unused', 3),
- wbFormIDCkNoReach('Key', [KEYM, NULL]),
- wbInteger('Flags', itU8, wbFlags(['', '', 'Leveled Lock'])),
- wbByteArray('Unused', 3),
- wbByteArray('Unknown', 8)
- ], cpNormal, False, nil, 5),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
- wbFloat(XRAD, 'Radiation'),
- wbFloat(XCHG, 'Charge'),
- wbRStruct('Ammo', [
- wbFormIDCk(XAMT, 'Type', [AMMO], False, cpNormal, True),
- wbInteger(XAMC, 'Count', itS32, nil, cpNormal, True)
- ], []),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Lit Water ---}
- wbRArrayS('Lit Water',
- wbFormIDCk(XLTW, 'Water', [REFR])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbString(XATO, 'Activation Prompt'),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbInteger(XACT, 'Action Flag', itU32, wbFlags([
- 'Use Default',
- 'Activate',
- 'Open',
- 'Open by Default'
- ])),
- wbEmpty(ONAM, 'Open by Default'),
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- Generated Data ---}
- wbStruct(XNDP, 'Navigation Door Link', [
- wbFormIDCk('Navigation Mesh', [NAVM]),
- wbInteger('Teleport Marker Triangle', itS16, wbREFRNavmeshTriangleToStr, wbStringToInt),
- wbByteArray('Unused', 2)
- ]),
-
- wbArray(XPOD, 'Portal Data', wbFormIDCk('Room', [REFR, NULL]), 2),
- wbStruct(XPTL, 'Portal Data', [
- wbStruct('Size', [
- wbFloat('Width', cpNormal, False, 2),
- wbFloat('Height', cpNormal, False, 2)
- ]),
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation (Quaternion?)', [
- wbFloat('q1'),
- wbFloat('q2'),
- wbFloat('q3'),
- wbFloat('q4')
- ])
- ]),
-
- wbInteger(XSED, 'SpeedTree Seed', itU8),
-
- wbRStruct('Room Data', [
- wbStruct(XRMR, 'Header', [
- wbInteger('Linked Rooms Count', itU16),
- wbByteArray('Unknown', 2)
- ]),
- wbRArrayS('Linked Rooms',
- wbFormIDCk(XLRM, 'Linked Room', [REFR])
- )
- ], []),
-
- wbStruct(XOCP, 'Occlusion Plane Data', [
- wbStruct('Size', [
- wbFloat('Width', cpNormal, False, 2),
- wbFloat('Height', cpNormal, False, 2)
- ]),
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation (Quaternion?)', [
- wbFloat('q1'),
- wbFloat('q2'),
- wbFloat('q3'),
- wbFloat('q4')
- ])
- ]),
- wbArray(XORD, 'Linked Occlusion Planes', wbFormIDCk('Plane', [REFR, NULL]), [
- 'Right',
- 'Left',
- 'Bottom',
- 'Top'
- ]),
-
- wbXLOD,
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo, cpNormal, False, wbREFRAfterLoad);
-
-
- wbRecord(REGN, 'Region', [
- wbEDID,
- wbICON,
- wbStruct(RCLR, 'Map Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCkNoReach(WNAM, 'Worldspace', [WRLD]),
-
- wbRArray('Region Areas', wbRStruct('Region Area', [
- wbInteger(RPLI, 'Edge Fall-off', itU32),
- wbArray(RPLD, 'Region Point List Data', wbStruct('Point', [
- wbFloat('X'),
- wbFloat('Y')
- ]), 0, wbRPLDAfterLoad)
- ], [])),
-
- wbRArrayS('Region Data Entries', wbRStructSK([0], 'Region Data Entry', [
- {always starts with an RDAT}
- wbStructSK(RDAT, [0], 'Data Header', [
- wbInteger('Type', itU32, wbEnum([
- {0}'',
- {1}'',
- {2}'Objects',
- {3}'Weather',
- {4}'Map',
- {5}'Land',
- {6}'Grass',
- {7}'Sound',
- {8}'Imposter',
- {9}''
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Override'
- ])),
- wbInteger('Priority', itU8),
- wbByteArray('Unused')
- ], cpNormal, True),
-
- {followed by one of these: }
-
- {--- Objects ---}
- wbArray(RDOT, 'Objects', wbStruct('Object', [
- wbFormIDCk('Object', [TREE, STAT, LTEX]),
- wbInteger('Parent Index', itU16, wbHideFFFF),
- wbByteArray('Unused', 2),
- wbFloat('Density'),
- wbInteger('Clustering', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbInteger('Flags', itU8, wbFlags([
- {0}'Conform to slope',
- {1}'Paint Vertices',
- {2}'Size Variance +/-',
- {3}'X +/-',
- {4}'Y +/-',
- {5}'Z +/-',
- {6}'Tree',
- {7}'Huge Rock'
- ])),
- wbInteger('Radius wrt Parent', itU16),
- wbInteger('Radius', itU16),
- wbFloat('Min Height'),
- wbFloat('Max Height'),
- wbFloat('Sink'),
- wbFloat('Sink Variance'),
- wbFloat('Size Variance'),
- wbStruct('Angle Variance', [
- wbInteger('X', itU16),
- wbInteger('Y', itU16),
- wbInteger('Z', itU16)
- ]),
- wbByteArray('Unused', 2),
- wbByteArray('Unknown', 4)
- ]), 0, nil, nil, cpNormal, False, wbREGNObjectsDontShow),
-
- {--- Map ---}
- wbString(RDMP, 'Map Name', 0, cpTranslate, False, wbREGNMapDontShow),
-
- {--- Grass ---}
- wbArrayS(RDGS, 'Grasses', wbStructSK([0], 'Grass', [
- wbFormIDCk('Grass', [GRAS]),
- wbByteArray('Unknown',4)
- ]), 0, cpNormal, False, nil, nil, wbREGNGrassDontShow),
-
- {--- Sound ---}
- wbInteger(RDMD, 'Music Type', itU32, wbMusicEnum, cpIgnore, False, False, wbNeverShow),
- wbFormIDCk(RDMO, 'Music', [MUSC], False, cpNormal, False, wbREGNSoundDontShow),
- wbFormIDCk(RDSI, 'Incidental MediaSet', [MSET], False, cpNormal, False, wbREGNSoundDontShow),
- wbRArray('Battle MediaSets', wbFormIDCk(RDSB, 'Battle MediaSet', [MSET]), cpNormal, False, nil, nil, wbREGNSoundDontShow),
- wbArrayS(RDSD, 'Sounds', wbStructSK([0], 'Sound', [
- wbFormIDCk('Sound', [SOUN]),
- wbInteger('Flags', itU32, wbFlags([
- 'Pleasant',
- 'Cloudy',
- 'Rainy',
- 'Snowy'
- ])),
- wbInteger('Chance', itU32, wbScaledInt4ToStr, wbScaledInt4ToInt)
- ]), 0, cpNormal, False, nil, nil, wbREGNSoundDontShow),
-
- {--- Weather ---}
- wbArrayS(RDWT, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR]),
- wbInteger('Chance', itU32),
- wbFormIDCk('Global', [GLOB, NULL])
- ]), 0, cpNormal, False, nil, nil, wbREGNWeatherDontShow),
-
- {--- Imposter ---}
- wbArrayS(RDID, 'Imposters', wbFormIDCk('Imposter', [REFR]), 0, cpNormal, False, nil, nil, wbREGNImposterDontShow)
- ], []))
- ], True);
-
- wbRecord(SOUN, 'Sound', [
- wbEDIDReq,
- wbOBNDReq,
- wbString(FNAM, 'Sound Filename'),
- wbInteger(RNAM, 'Random Chance %', itU8),
- wbRUnion('Sound Data', [
- wbStruct(SNDD, 'Sound Data', [
- wbInteger('Minimum Attentuation Distance', itU8, wbMul(5)),
- wbInteger('Maximum Attentuation Distance', itU8, wbMul(100)),
- wbInteger('Frequency Adjustment %', itS8),
- wbByteArray('Unused', 1),
- wbInteger('Flags', itU32, wbFlags([
- {0x0001} 'Random Frequency Shift',
- {0x0002} 'Play At Random',
- {0x0004} 'Environment Ignored',
- {0x0008} 'Random Location',
- {0x0010} 'Loop',
- {0x0020} 'Menu Sound',
- {0x0040} '2D',
- {0x0080} '360 LFE',
- {0x0100} 'Dialogue Sound',
- {0x0200} 'Envelope Fast',
- {0x0400} 'Envelope Slow',
- {0x0800} '2D Radius',
- {0x1000} 'Mute When Submerged',
- {0x2000} 'Start at Random Position'
- ])),
- wbInteger('Static attentuation cdB', itS16),
- wbInteger('Stop time ', itU8),
- wbInteger('Start time ', itU8),
- wbArray('Attenuation Curve', wbInteger('Point', itS16), 5),
- wbInteger('Reverb Attenuation Control', itS16),
- wbInteger('Priority', itS32),
-// wbByteArray('Unknown', 8)
- wbInteger('x', itS32),
- wbInteger('y', itS32)
-
- ], cpNormal, True),
- wbStruct(SNDX, 'Sound Data', [
- wbInteger('Minimum attentuation distance', itU8, wbMul(5)),
- wbInteger('Maximum attentuation distance', itU8, wbMul(100)),
- wbInteger('Frequency adjustment %', itS8),
- wbByteArray('Unused', 1),
- wbInteger('Flags', itU32, wbFlags([
- {0x0001} 'Random Frequency Shift',
- {0x0002} 'Play At Random',
- {0x0004} 'Environment Ignored',
- {0x0008} 'Random Location',
- {0x0010} 'Loop',
- {0x0020} 'Menu Sound',
- {0x0040} '2D',
- {0x0080} '360 LFE',
- {0x0100} 'Dialogue Sound',
- {0x0200} 'Envelope Fast',
- {0x0400} 'Envelope Slow',
- {0x0800} '2D Radius',
- {0x1000} 'Mute When Submerged'
- ])),
- wbInteger('Static attentuation cdB', itS16),
- wbInteger('Stop time ', itU8),
- wbInteger('Start time ', itU8)
- ], cpNormal, True)
- ], [], cpNormal, True),
- wbArray(ANAM, 'Attenuation Curve', wbInteger('Point', itS16), 5, nil, nil, cpNormal, False, wbNeverShow),
- wbInteger(GNAM, 'Reverb Attenuation Control', itS16, nil, cpNormal, False, False, wbNeverShow),
- wbInteger(HNAM, 'Priority', itS32, nil, cpNormal, False, False, wbNeverShow)
- ], False, nil, cpNormal, False, wbSOUNAfterLoad);
-
- wbRecord(SPEL, 'Actor Effect', [
- wbEDIDReq,
- wbFULL,
- wbStruct(SPIT, '', [
- wbInteger('Type', itU32, wbEnum([
- {0} 'Actor Effect',
- {1} 'Disease',
- {2} 'Power',
- {3} 'Lesser Power',
- {4} 'Ability',
- {5} 'Poison',
- {6} '',
- {7} '',
- {8} '',
- {9} '',
- {10} 'Addiction'
- ])),
- wbInteger('Cost (Unused)', itU32),
- wbInteger('Level (Unused)', itU32, wbEnum([
- {0} 'Unused'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- {0x00000001} 'No Auto-Calc',
- {0x00000002} 'Immune to Silence 1?',
- {0x00000004} 'PC Start Effect',
- {0x00000008} 'Immune to Silence 2?',
- {0x00000010} 'Area Effect Ignores LOS',
- {0x00000020} 'Script Effect Always Applies',
- {0x00000040} 'Disable Absorb/Reflect',
- {0x00000080} 'Force Touch Explode'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(STAT, 'Static', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODL,
- wbInteger(BRUS, 'Passthrough Sound', itS8, wbEnum([
- 'BushA',
- 'BushB',
- 'BushC',
- 'BushD',
- 'BushE',
- 'BushF',
- 'BushG',
- 'BushH',
- 'BushI',
- 'BushJ'
- ], [
- -1, 'NONE'
- ])),
- wbFormIDCk(RNAM, 'Sound - Looping/Random', [SOUN])
- ]);
-
- wbRecord(TES4, 'Main File Header', [
- wbStruct(HEDR, 'Header', [
- wbFloat('Version'),
- wbInteger('Number of Records', itU32),
- wbInteger('Next Object ID', itU32)
- ], cpNormal, True),
- wbByteArray(OFST, 'Unknown', 0, cpIgnore),
- wbByteArray(DELE, 'Unknown', 0, cpIgnore),
- wbString(CNAM, 'Author', 0, cpTranslate, True),
- wbString(SNAM, 'Description', 0, cpTranslate),
- wbRArray('Master Files', wbRStruct('Master File', [
- wbString(MAST, 'Filename', 0, cpNormal, True),
- wbByteArray(DATA, 'Unused', 8, cpIgnore, True)
- ], [ONAM])),
- wbArray(ONAM, 'Overriden Forms', wbFormIDCk('Form', [REFR, ACHR, ACRE, PMIS, PBEA, PGRE, LAND, NAVM]), 0, nil, nil, cpNormal, False, wbTES4ONAMDontShow),
- wbByteArray(SCRN, 'Screenshot')
- ], True, nil, cpNormal, True, wbRemoveOFST);
-
- wbRecord(TREE, 'Tree', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbICONReq,
- wbArrayS(SNAM, 'SpeedTree Seeds', wbInteger('SpeedTree Seed', itU32), 0, cpNormal, True),
- wbStruct(CNAM, 'Tree Data', [
- wbFloat('Leaf Curvature'),
- wbFloat('Minimum Leaf Angle'),
- wbFloat('Maximum Leaf Angle'),
- wbFloat('Branch Dimming Value'),
- wbFloat('Leaf Dimming Value'),
- wbInteger('Shadow Radius', itS32),
- wbFloat('Rock Speed'),
- wbFloat('Rustle Speed')
- ], cpNormal, True),
- wbStruct(BNAM, 'Billboard Dimensions', [
- wbFloat('Width'),
- wbFloat('Height')
- ], cpNormal, True)
- ]);
-end;
-
-procedure DefineFNVf;
-begin
- wbRecord(WATR, 'Water', [
- wbEDIDReq,
- wbFULL,
- wbString(NNAM, 'Noise Map', 0, cpNormal, True),
- wbInteger(ANAM, 'Opacity', itU8, nil, cpNormal, True),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- {0}'Causes Damage',
- {1}'Reflective'
- ]), cpNormal, True),
- wbString(MNAM, 'Material ID', 0, cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN]),
- wbFormIDCk(XNAM, 'Actor Effect', [SPEL]),
- wbInteger(DATA, 'Damage', itU16, nil, cpNormal, True, True),
- wbRUnion('Visual Data', [
- wbStruct(DNAM, 'Visual Data', [
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Water Properties - Sun Power'),
- wbFloat('Water Properties - Reflectivity Amount'),
- wbFloat('Water Properties - Fresnel Amount'),
- wbByteArray('Unused', 4),
- wbFloat('Fog Properties - Above Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Above Water - Fog Distance - Far Plane'),
- wbStruct('Shallow Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Deep Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Reflection Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbByteArray('Unused', 4),
- wbFloat('Rain Simulator - Force'),
- wbFloat('Rain Simulator - Velocity'),
- wbFloat('Rain Simulator - Falloff'),
- wbFloat('Rain Simulator - Dampner'),
- wbFloat('Displacement Simulator - Starting Size'),
- wbFloat('Displacement Simulator - Force'),
- wbFloat('Displacement Simulator - Velocity'),
- wbFloat('Displacement Simulator - Falloff'),
- wbFloat('Displacement Simulator - Dampner'),
- wbFloat('Rain Simulator - Starting Size'),
- wbFloat('Noise Properties - Normals - Noise Scale'),
- wbFloat('Noise Properties - Noise Layer One - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer One - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Speed'),
- wbFloat('Noise Properties - Normals - Depth Falloff Start'),
- wbFloat('Noise Properties - Normals - Depth Falloff End'),
- wbFloat('Fog Properties - Above Water - Fog Amount'),
- wbFloat('Noise Properties - Normals - UV Scale'),
- wbFloat('Fog Properties - Under Water - Fog Amount'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Far Plane'),
- wbFloat('Water Properties - Distortion Amount'),
- wbFloat('Water Properties - Shininess'),
- wbFloat('Water Properties - Reflection HDR Multiplier'),
- wbFloat('Water Properties - Light Radius'),
- wbFloat('Water Properties - Light Brightness'),
- wbFloat('Noise Properties - Noise Layer One - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Two - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Three - UV Scale'),
- wbFloat('Noise Properties - Noise Layer One - Amplitude Scale'),
- wbFloat('Noise Properties - Noise Layer Two - Amplitude Scale'),
- wbFloat('Noise Properties - Noise Layer Three - Amplitude Scale')
- ], cpNormal, True, nil, 46),
- wbStruct(DATA, 'Visual Data', [
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Water Properties - Sun Power'),
- wbFloat('Water Properties - Reflectivity Amount'),
- wbFloat('Water Properties - Fresnel Amount'),
- wbByteArray('Unused', 4),
- wbFloat('Fog Properties - Above Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Above Water - Fog Distance - Far Plane'),
- wbStruct('Shallow Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Deep Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Reflection Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbByteArray('Unused', 4),
- wbFloat('Rain Simulator - Force'),
- wbFloat('Rain Simulator - Velocity'),
- wbFloat('Rain Simulator - Falloff'),
- wbFloat('Rain Simulator - Dampner'),
- wbFloat('Displacement Simulator - Starting Size'),
- wbFloat('Displacement Simulator - Force'),
- wbFloat('Displacement Simulator - Velocity'),
- wbFloat('Displacement Simulator - Falloff'),
- wbFloat('Displacement Simulator - Dampner'),
- wbFloat('Rain Simulator - Starting Size'),
- wbFloat('Noise Properties - Normals - Noise Scale'),
- wbFloat('Noise Properties - Noise Layer One - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer One - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Speed'),
- wbFloat('Noise Properties - Normals - Depth Falloff Start'),
- wbFloat('Noise Properties - Normals - Depth Falloff End'),
- wbFloat('Fog Properties - Above Water - Fog Amount'),
- wbFloat('Noise Properties - Normals - UV Scale'),
- wbFloat('Fog Properties - Under Water - Fog Amount'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Far Plane'),
- wbFloat('Water Properties - Distortion Amount'),
- wbFloat('Water Properties - Shininess'),
- wbFloat('Water Properties - Reflection HDR Multiplier'),
- wbFloat('Water Properties - Light Radius'),
- wbFloat('Water Properties - Light Brightness'),
- wbFloat('Noise Properties - Noise Layer One - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Two - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Three - UV Scale'),
- wbEmpty('Noise Properties - Noise Layer One - Amplitude Scale'),
- wbEmpty('Noise Properties - Noise Layer Two - Amplitude Scale'),
- wbEmpty('Noise Properties - Noise Layer Three - Amplitude Scale'),
- wbInteger('Damage (Old Format)', itU16)
- ], cpNormal, True)
- ], [], cpNormal, True),
- wbStruct(GNAM, 'Related Waters (Unused)', [
- wbFormIDCk('Daytime', [WATR, NULL]),
- wbFormIDCk('Nighttime', [WATR, NULL]),
- wbFormIDCk('Underwater', [WATR, NULL])
- ], cpNormal, True)
- ], False, nil, cpNormal, False, wbWATRAfterLoad);
-
- wbRecord(WEAP, 'Weapon', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbEITM,
- wbInteger(EAMT, 'Enchantment Charge Amount', itS16),
- wbFormIDCkNoReach(NAM0, 'Ammo', [AMMO, FLST]),
- wbDEST,
- wbREPL,
- wbETYPReq,
- wbBIPL,
- wbYNAM,
- wbZNAM,
- wbRStruct('Shell Casing Model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO2S
- ], []),
- wbRStruct('Scope Model', [
- wbString(MOD3, 'Model Filename'),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO3S
- ], []),
- wbFormIDCK(EFSD, 'Scope Effect', [EFSH]),
- wbRStruct('World Model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO4S
- ], []),
- wbString(MWD1, 'Model - Mod 1'),
- wbString(MWD2, 'Model - Mod 2'),
- wbString(MWD3, 'Model - Mod 1 and 2'),
- wbString(MWD4, 'Model - Mod 3'),
- wbString(MWD5, 'Model - Mod 1 and 3'),
- wbString(MWD6, 'Model - Mod 2 and 3'),
- wbString(MWD7, 'Model - Mod 1, 2 and 3'),
- {wbRStruct( 'Model with Mods', [
- wbString(MWD1, 'Mod 1'),
- wbString(MWD2, 'Mod 2'),
- wbString(MWD3, 'Mod 1 and 2'),
- wbString(MWD4, 'Mod 3'),
- wbString(MWD5, 'Mod 1 and 3'),
- wbString(MWD6, 'Mod 2 and 3'),
- wbString(MWD7, 'Mod 1, 2 and 3')
- ], [], cpNormal, False, nil, True),}
-
- wbString(VANM, 'VATS Attack Name'),
- wbString(NNAM, 'Embedded Weapon Node'),
-
- wbFormIDCk(INAM, 'Impact DataSet', [IPDS]),
- wbFormIDCk(WNAM, '1st Person Model', [STAT]),
- wbFormIDCk(WNM1, '1st Person Model - Mod 1', [STAT]),
- wbFormIDCk(WNM2, '1st Person Model - Mod 2', [STAT]),
- wbFormIDCk(WNM3, '1st Person Model - Mod 1 and 2', [STAT]),
- wbFormIDCk(WNM4, '1st Person Model - Mod 3', [STAT]),
- wbFormIDCk(WNM5, '1st Person Model - Mod 1 and 3', [STAT]),
- wbFormIDCk(WNM6, '1st Person Model - Mod 2 and 3', [STAT]),
- wbFormIDCk(WNM7, '1st Person Model - Mod 1, 2 and 3', [STAT]),
- {wbRStruct('1st Person Models with Mods', [
- wbFormIDCk(WNM1, 'Mod 1', [STAT]),
- wbFormIDCk(WNM2, 'Mod 2', [STAT]),
- wbFormIDCk(WNM3, 'Mod 1 and 2', [STAT]),
- wbFormIDCk(WNM4, 'Mod 3', [STAT]),
- wbFormIDCk(WNM5, 'Mod 1 and 3', [STAT]),
- wbFormIDCk(WNM6, 'Mod 2 and 3', [STAT]),
- wbFormIDCk(WNM7, 'Mod 1, 2 and 3', [STAT])
- ], [], cpNormal, False, nil, True),}
- wbFormIDCk(WMI1, 'Weapon Mod 1', [IMOD]),
- wbFormIDCk(WMI2, 'Weapon Mod 2', [IMOD]),
- wbFormIDCk(WMI3, 'Weapon Mod 3', [IMOD]),
- {wbRStruct('Weapon Mods', [
- wbFormIDCk(WMI1, 'Mod 1', [IMOD]),
- wbFormIDCk(WMI2, 'Mod 2', [IMOD]),
- wbFormIDCk(WMI3, 'Mod 3', [IMOD])
- ], [], cpNormal, False, nil, True),}
- wbRStruct('Sound - Gun', [
- wbFormIDCk(SNAM, 'Shoot 3D', [SOUN]),
- wbFormIDCk(SNAM, 'Shoot Dist', [SOUN])
- ], []),
- //wbFormIDCk(SNAM, 'Sound - Gun - Shoot 3D', [SOUN]),
- //wbFormIDCk(SNAM, 'Sound - Gun - Shoot Dist', [SOUN]),
- wbFormIDCk(XNAM, 'Sound - Gun - Shoot 2D', [SOUN]),
- wbFormIDCk(NAM7, 'Sound - Gun - Shoot 3D Looping', [SOUN]),
- wbFormIDCk(TNAM, 'Sound - Melee - Swing / Gun - No Ammo', [SOUN]),
- wbFormIDCk(NAM6, 'Sound - Block', [SOUN]),
- wbFormIDCk(UNAM, 'Sound - Idle', [SOUN]),
- wbFormIDCk(NAM9, 'Sound - Equip', [SOUN]),
- wbFormIDCk(NAM8, 'Sound - Unequip', [SOUN]),
- wbRStruct('Sound - Mod 1', [
- wbFormIDCk(WMS1, 'Shoot 3D', [SOUN]),
- wbFormIDCk(WMS1, 'Shoot Dist', [SOUN])
- ], []),
- //wbFormIDCk(WMS1, 'Sound - Mod 1 - Shoot 3D', [SOUN]),
- //wbFormIDCk(WMS1, 'Sound - Mod 1 - Shoot Dist', [SOUN]),
- wbFormIDCk(WMS2, 'Sound - Mod 1 - Shoot 2D', [SOUN]),
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbInteger('Health', itS32),
- wbFloat('Weight'),
- wbInteger('Base Damage', itS16),
- wbInteger('Clip Size', itU8)
- ], cpNormal, True),
- wbStruct(DNAM, '', [
- {00} wbInteger('Animation Type', itU32, wbWeaponAnimTypeEnum),
- {04} wbFloat('Animation Multiplier'),
- {08} wbFloat('Reach'),
- {12} wbInteger('Flags 1', itU8, wbFlags([
- 'Ignores Normal Weapon Resistance',
- 'Is Automatic',
- 'Has Scope',
- 'Can''t Drop',
- 'Hide Backpack',
- 'Embedded Weapon',
- 'Don''t Use 1st Person IS Animations',
- 'Non-Playable'
- ])),
- {13} wbInteger('Grip Animation', itU8, wbEnum([
- ], [
- 230, 'HandGrip1',
- 231, 'HandGrip2',
- 232, 'HandGrip3',
- 233, 'HandGrip4',
- 234, 'HandGrip5',
- 235, 'HandGrip6',
- 255, 'DEFAULT'
- ])),
- {14} wbInteger('Ammo Use', itU8),
- {15} wbInteger('Reload Animation', itU8, wbReloadAnimEnum),
- {16} wbFloat('Min Spread'),
- {20} wbFloat('Spread'),
- {24} wbFloat('Unknown'),
- {28} wbFloat('Sight FOV'),
- {32} wbFloat,
- {36} wbFormIDCk('Projectile', [PROJ, NULL]),
- {40} wbInteger('Base VATS To-Hit Chance', itU8),
- {41} wbInteger('Attack Animation', itU8, wbEnum([
- ], [
- 26, 'AttackLeft',
- 32, 'AttackRight',
- 38, 'Attack3',
- 44, 'Attack4',
- 50, 'Attack5',
- 56, 'Attack6',
- 62, 'Attack7',
- 68, 'Attack8',
- 144, 'Attack9',
- 74, 'AttackLoop',
- 80, 'AttackSpin',
- 86, 'AttackSpin2',
- 114, 'AttackThrow',
- 120, 'AttackThrow2',
- 126, 'AttackThrow3',
- 132, 'AttackThrow4',
- 138, 'AttackThrow5',
- 150, 'AttackThrow6',
- 156, 'AttackThrow7',
- 162, 'AttackThrow8',
- 102, 'PlaceMine',
- 108, 'PlaceMine2',
- 255, 'DEFAULT'
- ])),
- {42} wbInteger('Projectile Count', itU8),
- {43} wbInteger('Embedded Weapon - Actor Value', itU8, wbEnum([
- {00} 'Perception',
- {01} 'Endurance',
- {02} 'Left Attack',
- {03} 'Right Attack',
- {04} 'Left Mobility',
- {05} 'Right Mobilty',
- {06} 'Brain'
- ])),
- {44} wbFloat('Min Range'),
- {48} wbFloat('Max Range'),
- {52} wbInteger('On Hit', itU32, wbEnum([
- 'Normal formula behavior',
- 'Dismember Only',
- 'Explode Only',
- 'No Dismember/Explode'
- ])),
- {56} wbInteger('Flags 2', itU32, wbFlags([
- {0x00000001}'Player Only',
- {0x00000002}'NPCs Use Ammo',
- {0x00000004}'No Jam After Reload',
- {0x00000008}'Override - Action Points',
- {0x00000010}'Minor Crime',
- {0x00000020}'Range - Fixed',
- {0x00000040}'Not Used In Normal Combat',
- {0x00000080}'Override - Damage to Weapon Mult',
- {0x00000100}'Don''t Use 3rd Person IS Animations',
- {0x00000200}'Short Burst',
- {0x00000400}'Rumble Alternate',
- {0x00000800}'Long Burst',
- {0x00001000}'Scope has NightVision',
- {0x00002000}'Scope from Mod'
- ])),
- {60} wbFloat('Animation Attack Multiplier'),
- {64} wbFloat('Fire Rate'),
- {68} wbFloat('Override - Action Points'),
- {72} wbFloat('Rumble - Left Motor Strength'),
- {76} wbFloat('Rumble - Right Motor Strength'),
- {80} wbFloat('Rumble - Duration'),
- {84} wbFloat('Override - Damage to Weapon Mult'),
- {88} wbFloat('Attack Shots/Sec'),
- {92} wbFloat('Reload Time'),
- {96} wbFloat('Jam Time'),
- {100} wbFloat('Aim Arc'),
- {104} wbInteger('Skill', itS32, wbActorValueEnum),
- {108} wbInteger('Rumble - Pattern', itU32, wbEnum([
- 'Constant',
- 'Square',
- 'Triangle',
- 'Sawtooth'
- ])),
- {112} wbFloat('Rumble - Wavelength'),
- {116} wbFloat('Limb Dmg Mult'),
- {120} wbInteger('Resist Type', itS32, wbActorValueEnum),
- {124} wbFloat('Sight Usage'),
- {128} wbFloat('Semi-Automatic Fire Delay Min'),
- {132} wbFloat('Semi-Automatic Fire Delay Max'),
- wbFloat,
- wbInteger('Effect - Mod 1', itU32, wbModEffectEnum),
- wbInteger('Effect - Mod 2', itU32, wbModEffectEnum),
- wbInteger('Effect - Mod 3', itU32, wbModEffectEnum),
- wbFloat('Value A - Mod 1'),
- wbFloat('Value A - Mod 2'),
- wbFloat('Value A - Mod 3'),
- wbInteger('Power Attack Animation Override', itU32, wbEnum([
- ], [
- 0, '0?',
- 97, 'AttackCustom1Power',
- 98, 'AttackCustom2Power',
- 99, 'AttackCustom3Power',
- 100, 'AttackCustom4Power',
- 101, 'AttackCustom5Power',
- 255, 'DEFAULT'
- ])),
- wbInteger('Strength Req', itU32),
- wbByteArray('Unknown', 1),
- wbInteger('Reload Animation - Mod', itU8, wbReloadAnimEnum),
- wbByteArray('Unknown', 2),
- wbFloat('Regen Rate'),
- wbFloat('Kill Impulse'),
- wbFloat('Value B - Mod 1'),
- wbFloat('Value B - Mod 2'),
- wbFloat('Value B - Mod 3'),
- wbFloat('Impulse Dist'),
- wbInteger('Skill Req', itU32)
- ], cpNormal, True, nil, 36),
-
- wbStruct(CRDT, 'Critical Data', [
- {00} wbInteger('Critical Damage', itU16),
- {09} wbByteArray('Unused', 2),
- {04} wbFloat('Crit % Mult'),
- {08} wbInteger('Flags', itU8, wbFlags([
- 'On Death'
- ])),
- {09} wbByteArray('Unused', 3),
- {12} wbFormIDCk('Effect', [SPEL, NULL])
- ], cpNormal, True),
- wbStruct(VATS, 'VATS', [
- wbFormIDCk('Effect',[SPEL, NULL]),
- wbFloat('Skill'),
- wbFloat('Dam. Mult'),
- wbFloat('AP'),
- wbInteger('Silent', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Mod Required', itU8, wbEnum(['No', 'Yes'])),
- wbByteArray('Unused', 2)
- ]),
- wbInteger(VNAM, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True)
- ], True, nil, cpNormal, False, wbWEAPAfterLoad);
-
- if wbSimpleRecords then
- wbRecord(WRLD, 'Worldspace', [
- wbEDIDReq,
- wbFULL,
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbRStruct('Parent', [
- wbFormIDCk(WNAM, 'Worldspace', [WRLD]),
- wbInteger(PNAM, 'Flags', itU16, wbFlags([
- {0x00000001}'Use Land Data',
- {0x00000002}'Use LOD Data',
- {0x00000004}'Use Map Data',
- {0x00000008}'Use Water Data',
- {0x00000010}'Use Climate Data',
- {0x00000020}'Use Image Space Data'
- ], True), cpNormal, True)
- ], []),
- wbFormIDCk(CNAM, 'Climate', [CLMT]),
- wbFormIDCk(NAM2, 'Water', [WATR]),
- wbFormIDCk(NAM3, 'LOD Water Type', [WATR]),
- wbFloat(NAM4, 'LOD Water Height'),
- wbStruct(DNAM, 'Land Data', [
- wbFloat('Default Land Height'),
- wbFloat('Default Water Height')
- ]),
- wbICON,
- wbStruct(MNAM, 'Map Data', [
- wbStruct('Usable Dimensions', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32)
- ]),
- wbStruct('Cell Coordinates', [
- wbStruct('NW Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbStruct('SE Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ])
- ])
- ]),
- wbStruct(ONAM, 'World Map Offset Data', [
- wbFloat('World Map Scale'),
- wbFloat('Cell X Offset'),
- wbFloat('Cell Y Offset')
- ], cpNormal, True),
- wbFormIDCk(INAM, 'Image Space', [IMGS]),
- wbInteger(DATA, 'Flags', itU8, wbFlags([ // LoadForm supports a DWord here, but only first byte would be used.
- {0x01} 'Small World',
- {0x02} 'Can''t Fast Travel',
- {0x04} '',
- {0x08} '',
- {0x10} 'No LOD Water',
- {0x20} 'No LOD Noise',
- {0x40} 'Don''t Allow NPC Fall Damage',
- {0x80} 'Needs Water Adjustment'
- ]), cpNormal, True),
- wbRStruct('Object Bounds', [
- wbStruct(NAM0, 'Min', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True),
- wbStruct(NAM9, 'Max', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True)
- ], []),
- wbFormIDCk(ZNAM, 'Music', [MUSC]),
- wbString(NNAM, 'Canopy Shadow', 0, cpNormal, True),
- wbString(XNAM, 'Water Noise Texture', 0, cpNormal, True),
- wbRArrayS('Swapped Impacts', wbStructExSK(IMPS, [0, 1], [2], 'Swapped Impact', [
- wbInteger('Material Type', itU32, wbImpactMaterialTypeEnum),
- wbFormIDCkNoReach('Old', [IPCT]),
- wbFormIDCk('New', [IPCT, NULL])
- ])),
- wbArray(IMPF, 'Footstep Materials', wbString('Unknown', 30), [
- 'ConcSolid',
- 'ConcBroken',
- 'MetalSolid',
- 'MetalHollow',
- 'MetalSheet',
- 'Wood',
- 'Sand',
- 'Dirt',
- 'Grass',
- 'Water'
- ]),
- wbByteArray(OFST, 'Offset Data')
- ], False, nil, cpNormal, False, wbRemoveOFST)
- else
- wbRecord(WRLD, 'Worldspace', [
- wbEDIDReq,
- wbFULL,
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbRStruct('Parent', [
- wbFormIDCk(WNAM, 'Worldspace', [WRLD]),
- wbInteger(PNAM, 'Flags', itU16, wbFlags([
- {0x00000001}'Use Land Data',
- {0x00000002}'Use LOD Data',
- {0x00000004}'Use Map Data',
- {0x00000008}'Use Water Data',
- {0x00000010}'Use Climate Data',
- {0x00000020}'Use Image Space Data' // in order to use this "Image Space" needs to be NULL.
- // Other parent flags are checked before the form value.
- ], True), cpNormal, True)
- ], []),
- wbFormIDCk(CNAM, 'Climate', [CLMT]),
- wbFormIDCk(NAM2, 'Water', [WATR]),
- wbFormIDCk(NAM3, 'LOD Water Type', [WATR]),
- wbFloat(NAM4, 'LOD Water Height'),
- wbStruct(DNAM, 'Land Data', [
- wbFloat('Default Land Height'),
- wbFloat('Default Water Height')
- ]),
- wbICON,
- wbStruct(MNAM, 'Map Data', [
- wbStruct('Usable Dimensions', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32)
- ]),
- wbStruct('Cell Coordinates', [
- wbStruct('NW Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbStruct('SE Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ])
- ])
- ]),
- wbStruct(ONAM, 'World Map Offset Data', [
- wbFloat('World Map Scale'),
- wbFloat('Cell X Offset'),
- wbFloat('Cell Y Offset')
- ], cpNormal, True),
- wbFormIDCk(INAM, 'Image Space', [IMGS]),
- wbInteger(DATA, 'Flags', itU8, wbFlags([ // LoadForm supports a DWord here, but only first byte would be used.
- {0x01} 'Small World',
- {0x02} 'Can''t Fast Travel',
- {0x04} '',
- {0x08} '',
- {0x10} 'No LOD Water',
- {0x20} 'No LOD Noise',
- {0x40} 'Don''t Allow NPC Fall Damage',
- {0x80} 'Needs Water Adjustment'
- ]), cpNormal, True),
- wbRStruct('Object Bounds', [
- wbStruct(NAM0, 'Min', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True),
- wbStruct(NAM9, 'Max', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True)
- ], []),
- wbFormIDCk(ZNAM, 'Music', [MUSC]),
- wbString(NNAM, 'Canopy Shadow', 0, cpNormal, True),
- wbString(XNAM, 'Water Noise Texture', 0, cpNormal, True),
- wbRArrayS('Swapped Impacts', wbStructExSK(IMPS, [0, 1], [2], 'Swapped Impact', [
- wbInteger('Material Type', itU32, wbImpactMaterialTypeEnum),
- wbFormIDCkNoReach('Old', [IPCT]),
- wbFormIDCk('New', [IPCT, NULL])
- ])),
- wbArray(IMPF, 'Footstep Materials', wbString('Unknown', 30), [
- 'ConcSolid',
- 'ConcBroken',
- 'MetalSolid',
- 'MetalHollow',
- 'MetalSheet',
- 'Wood',
- 'Sand',
- 'Dirt',
- 'Grass',
- 'Water'
- ]),
- wbArray(OFST, 'Offset Data', wbArray('Rows', wbInteger('Offset', itU32), wbOffsetDataColsCounter), 0) // cannot be saved by GECK
- ], False, nil, cpNormal, False, wbRemoveOFST);
-
- wbRecord(WTHR, 'Weather', [
- wbEDIDReq,
- wbFormIDCk(_0_IAD, 'Sunrise Image Space Modifier', [IMAD]),
- wbFormIDCk(_1_IAD, 'Day Image Space Modifier', [IMAD]),
- wbFormIDCk(_2_IAD, 'Sunset Image Space Modifier', [IMAD]),
- wbFormIDCk(_3_IAD, 'Night Image Space Modifier', [IMAD]),
- wbFormIDCk(_4_IAD, 'Unknown', [IMAD]),
- wbFormIDCk(_5_IAD, 'Unknown', [IMAD]),
- wbString(DNAM, 'Cloud Textures - Layer 0', 0, cpNormal, True),
- wbString(CNAM, 'Cloud Textures - Layer 1', 0, cpNormal, True),
- wbString(ANAM, 'Cloud Textures - Layer 2', 0, cpNormal, True),
- wbString(BNAM, 'Cloud Textures - Layer 3', 0, cpNormal, True),
- wbMODL,
- wbByteArray(LNAM, 'Unknown', 4, cpNormal, True),
- wbArray(ONAM, 'Cloud Speed', wbInteger('Layer', itU8{, wbDiv(2550)}), 4, nil, nil, cpNormal, True),
- wbArray(PNAM, 'Cloud Layer Colors',
- wbArray('Layer',
- wbStruct('Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- ['Sunrise', 'Day', 'Sunset', 'Night', 'High Noon', 'Midnight']
- ),
- 4),
- wbArray(NAM0, 'Colors by Types/Times',
- wbArray('Type',
- wbStruct('Time', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- ['Sunrise', 'Day', 'Sunset', 'Night', 'High Noon', 'Midnight']
- ),
- ['Sky-Upper','Fog','Unused','Ambient','Sunlight','Sun','Stars','Sky-Lower','Horizon','Unused']
- , cpNormal, True),
- wbStruct(FNAM, 'Fog Distance', [
- wbFloat('Day - Near'),
- wbFloat('Day - Far'),
- wbFloat('Night - Near'),
- wbFloat('Night - Far'),
- wbFloat('Day - Power'),
- wbFloat('Night - Fower')
- ], cpNormal, True),
- wbByteArray(INAM, 'Unused', 304, cpIgnore, True),
- wbStruct(DATA, '', [
- wbInteger('Wind Speed', itU8),
- wbInteger('Cloud Speed (Lower)', itU8),
- wbInteger('Cloud Speed (Upper)', itU8),
- wbInteger('Trans Delta', itU8),
- wbInteger('Sun Glare', itU8),
- wbInteger('Sun Damage', itU8),
- wbInteger('Precipitation - Begin Fade In', itU8),
- wbInteger('Precipitation - End Fade Out', itU8),
- wbInteger('Thunder/Lightning - Begin Fade In', itU8),
- wbInteger('Thunder/Lightning - End Fade Out', itU8),
- wbInteger('Thunder/Lightning - Frequency', itU8),
- wbInteger('Weather Classification', itU8, wbWthrDataClassification),
- wbStruct('Lightning Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8)
- ])
- ], cpNormal, True),
- wbRArray('Sounds', wbStruct(SNAM, 'Sound', [
- wbFormIDCk('Sound', [SOUN]),
- wbInteger('Type', itU32, wbEnum([
- {0}'Default',
- {1}'Precip',
- {2}'Wind',
- {3}'Thunder'
- ]))
- ]))
- ]);
-
- wbRecord(IMOD, 'Item Mod', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDESC,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ])
- ]);
-
- wbRecord(ALOC, 'Media Location Controller', [
- wbEDIDReq,
- wbFULL,
- wbByteArray(NAM1, 'Flags and Enums, messily combined'),
- wbUnknown(NAM2),
- wbUnknown(NAM3),
- wbFloat(NAM4, 'Location Delay'),
- wbInteger(NAM5, 'Day Start', itU32, wbAlocTime),
- wbInteger(NAM6, 'Night Start', itU32, wbAlocTime),
- wbFloat(NAM7, 'Retrigger Delay'),
- wbRArrayS('Neutral Sets',
- wbFormIDCk(HNAM, 'Media Set', [MSET])
- ),
- wbRArrayS('Ally Sets',
- wbFormIDCk(ZNAM, 'Media Set', [MSET])
- ),
- wbRArrayS('Friend Sets',
- wbFormIDCk(XNAM, 'Media Set', [MSET])
- ),
- wbRArrayS('Enemy Sets',
- wbFormIDCk(YNAM, 'Media Set', [MSET])
- ),
- wbRArrayS('Location Sets',
- wbFormIDCk(LNAM, 'Media Set', [MSET])
- ),
- wbRArrayS('Battle Sets',
- wbFormIDCk(GNAM, 'Media Set', [MSET])
- ),
- wbFormIDCk(RNAM, 'Conditional Faction', [FACT]),
- wbUnknown(FNAM)
- ]);
-
- wbRecord(MSET, 'Media Set', [
- wbEDIDReq,
- wbFULL,
- wbInteger(NAM1, 'Type', itU32, wbEnum([
- 'Battle Set',
- 'Location Set',
- 'Dungeon Set',
- 'Incidental Set'
- ], [
- -1, 'No Set'
- ])),
- wbString(NAM2, 'Loop (B) / Battle (D) / Day Outer (L)'),
- wbString(NAM3, 'Explore (D) / Day Middle (L)'),
- wbString(NAM4, 'Suspense (D) / Day Inner (L)'),
- wbString(NAM5, 'Night Outer (L)'),
- wbString(NAM6, 'Night Middle (L)'),
- wbString(NAM7, 'Night Inner (L)'),
- wbFloat(NAM8, 'Loop dB (B) / Battle dB (D) / Day Outer dB (L)'),
- wbFloat(NAM9, 'Explore dB (D) / Day Middle dB (L)'),
- wbFloat(NAM0, 'Suspense dB (D) / Day Inner dB (L)'),
- wbFloat(ANAM, 'Night Outer dB (L)'),
- wbFloat(BNAM, 'Night Middle dB (L)'),
- wbFloat(CNAM, 'Night Inner dB (L)'),
- wbFloat(JNAM, 'Day Outer Boundary % (L)'),
- wbFloat(KNAM, 'Day Middle Boundary % (L)'),
- wbFloat(LNAM, 'Day Inner Boundary % (L)'),
- wbFloat(MNAM, 'Night Outer Boundary % (L)'),
- wbFloat(NNAM, 'Night Middle Boundary % (L)'),
- wbFloat(ONAM, 'Night Inner Boundary % (L)'),
- wbInteger(PNAM, 'Enable Flags', itU8, wbFlags([
- {0x01} 'Day Outer',
- {0x02} 'Day Middle',
- {0x04} 'Day Inner',
- {0x08} 'Night Outer',
- {0x10} 'Night Middle',
- {0x20} 'Night Inner'
- ])),
- wbFloat(DNAM, 'Wait Time (B) / Minimum Time On (D,L) / Daytime Min (I)'),
- wbFloat(ENAM, 'Loop Fade Out (B) / Looping/Random Crossfade Overlap (D,L) / Nighttime Min (I)'),
- wbFloat(FNAM, 'Recovery Time (B) / Layer Crossfade Time (D,L) / Daytime Max (I)'),
- wbFloat(GNAM, 'Nighttime Max (I)'),
- wbFormIDCk(HNAM, 'Intro (B,D) / Daytime (I)', [SOUN]),
- wbFormIDCk(INAM, 'Outro (B,D) / Nighttime (I)', [SOUN]),
- wbUnknown(DATA)
- ]);
-
- wbRecord(AMEF, 'Ammo Effect', [
- wbEDIDReq,
- wbFULL,
- wbStruct(DATA, 'Data', [
- wbInteger('Type', itU32, wbEnum([
- 'Damage Mod',
- 'DR Mod',
- 'DT Mod',
- 'Spread Mod',
- 'Weapon Condition Mod',
- 'Fatigue Mod'
- ])),
- wbInteger('Operation', itU32, wbEnum([
- 'Add',
- 'Multiply',
- 'Subtract'
- ])),
- wbFloat('Value')
- ])
- ]);
-
- wbRecord(CCRD, 'Caravan Card', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbYNAM,
- wbZNAM,
- wbRStruct('High Res Image', [
- wbString(TX00, 'Face'),
- wbString(TX01, 'Back')
- ], []),
- wbRStruct('Card', [
- wbInteger(INTV, 'Suit', itU32, wbEnum([
- '',
- 'Hearts',
- 'Spades',
- 'Diamonds',
- 'Clubs',
- 'Joker'
- ])),
- wbInteger(INTV, 'Value', itU32, wbEnum([
- '',
- 'Ace',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '',
- 'Jack',
- 'Queen',
- 'King',
- 'Joker'
- ]))
- ], []),
- wbInteger(DATA, 'Value', itU32)
- ]);
-
- wbRecord(CDCK, 'Caravan Deck', [
- wbEDIDReq,
- wbFULL,
- wbRArrayS('Cards',
- wbFormIDCk(CARD, 'Card', [CCRD])
- ),
- wbInteger(DATA, 'Count (broken)', itU32)
- ]);
-
- wbRecord(CHAL, 'Challenge', [
- wbEDIDReq,
- wbFULL,
- wbICON,
- wbSCRI,
- wbDESC,
- wbStruct(DATA, 'Data', [
- wbInteger('Type', itU32, wbEnum([
- {00} 'Kill from a Form List',
- {01} 'Kill a specific FormID',
- {02} 'Kill any in a category',
- {03} 'Hit an Enemy',
- {04} 'Discover a Map Marker',
- {05} 'Use an Item',
- {06} 'Acquire an Item',
- {07} 'Use a Skill',
- {08} 'Do Damage',
- {09} 'Use an Item from a List',
- {10} 'Acquire an Item from a List',
- {11} 'Miscellaneous Stat',
- {12} 'Craft Using an Item',
- {13} 'Scripted Challenge'
- ])),
- wbInteger('Threshold', itU32),
- wbInteger('Flags', itU32, wbFlags([
- 'Start Disabled',
- 'Recurring',
- 'Show Zero Progress'
- ])),
- wbInteger('Interval', itU32),
- wbByteArray('(depends on type)', 2),
- wbByteArray('(depends on type)', 2),
- wbByteArray('(depends on type)', 4)
- ]),
- wbFormID(SNAM, '(depends on type)'),
- wbFormID(XNAM, '(depends on type)')
- ]);
-
- wbRecord(CHIP, 'Casino Chip', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbDEST,
- wbYNAM,
- wbZNAM
- ]);
-
- wbRecord(CMNY, 'Caravan Money', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbYNAM,
- wbZNAM,
- wbInteger(DATA, 'Absolute Value', itU32)
- ]);
-
- wbRecord(CSNO, 'Casino', [
- wbEDIDReq,
- wbFULL,
- wbStruct(DATA, 'Data', [
- wbFloat('Decks % Before Shuffle'),
- wbFloat('BlackJack Payout Ratio'),
- wbArray('Slot Reel Stops', wbInteger('Reel', itU32),[
- 'Symbol 1',
- 'Symbol 2',
- 'Symbol 3',
- 'Symbol 4',
- 'Symbol 5',
- 'Symbol 6',
- 'Symbol W'
- ]),
- wbInteger('Number of Decks', itU32),
- wbInteger('Max Winnings', itU32),
- wbFormIDCk('Currency', [CHIP]),
- wbFormIDCk('Casino Winnings Quest', [QUST]),
- wbInteger('Flags', itU32, wbFlags([
- 'Dealer Stay on Soft 17'
- ]))
- ]),
- wbRStruct('Casino Chip Models', [
- wbString(MODL, '$1 Chip'),
- wbString(MODL, '$5 Chip'),
- wbString(MODL, '$10 Chip'),
- wbString(MODL, '$25 Chip'),
- wbString(MODL, '$100 Chip'),
- wbString(MODL, '$500 Chip'),
- wbString(MODL, 'Roulette Chip')
- ], []),
- wbString(MODL, 'Slot Machine Model'),
- wbString(MOD2, 'Slot Machine Model (again?)'),
- wbString(MOD3, 'BlackJack Table Model'),
- wbString(MODT, 'BlackJack Table Model related'),
- wbString(MOD4, 'Roulette Table Model'),
- wbRStruct('Slot Reel Textures', [
- wbString(ICON, 'Symbol 1'),
- wbString(ICON, 'Symbol 2'),
- wbString(ICON, 'Symbol 3'),
- wbString(ICON, 'Symbol 4'),
- wbString(ICON, 'Symbol 5'),
- wbString(ICON, 'Symbol 6'),
- wbString(ICON, 'Symbol W')
- ], []),
- wbRStruct('BlackJack Decks', [
- wbString(ICO2, 'Deck 1'),
- wbString(ICO2, 'Deck 2'),
- wbString(ICO2, 'Deck 3'),
- wbString(ICO2, 'Deck 4')
- ], [])
- ]);
-
- wbRecord(DEHY, 'Dehydration Stage', [
- wbEDIDReq,
- wbStruct(DATA, '', [
- wbInteger('Trigger Threshold', itU32),
- wbFormIDCk('Actor Effect', [SPEL])
- ], cpNormal, True)
- ]);
-
- wbRecord(HUNG, 'Hunger Stage', [
- wbEDIDReq,
- wbStruct(DATA, '', [
- wbInteger('Trigger Threshold', itU32),
- wbFormIDCk('Actor Effect', [SPEL])
- ], cpNormal, True)
- ]);
-
- wbRecord(LSCT, 'Load Screen Type', [
- wbEDIDReq,
- wbStruct(DATA, 'Data', [
- wbInteger('Type', itU32, wbEnum([
- 'None',
- 'XP Progress',
- 'Objective',
- 'Tip',
- 'Stats'
- ])),
- wbStruct('Data 1', [
- wbInteger('X', itU32),
- wbInteger('Y', itU32),
- wbInteger('Width', itU32),
- wbInteger('Height', itU32),
- wbFloat('Orientation', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbInteger('Font', itU32, wbEnum([
- '',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8'
- ])),
- wbStruct('Font Color', [
- wbFloat('R'),
- wbFloat('G'),
- wbFloat('B')
- ]),
- wbInteger('Font', itU32, wbEnum([
- '',
- 'Left',
- 'Center',
- '',
- 'Right'
- ]))
- ]),
- wbByteArray('Unknown', 20),
- wbStruct('Data 2', [
- wbInteger('Font', itU32, wbEnum([
- '',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8'
- ])),
- wbStruct('Font Color', [
- wbFloat('R'),
- wbFloat('G'),
- wbFloat('B')
- ]),
- wbByteArray('', 4),
- wbInteger('Stats', itU32, wbEnum([
- '',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8'
- ]))
- ])
- ])
- ]);
-
- wbRecord(RCCT, 'Recipe Category', [
- wbEDIDReq,
- wbFULL,
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Subcategory?',
- '',
- '',
- '',
- '',
- '',
- '',
- ''
- ]))
- ]);
-
- wbRecord(RCPE, 'Recipe', [
- wbEDIDReq,
- wbFULL,
- wbCTDAs,
- wbStruct(DATA, 'Data', [
- wbInteger('Skill', itS32, wbActorValueEnum),
- wbInteger('Level', itU32),
- wbFormIDCk('Category', [RCCT, NULL]), // Some of DeadMoney are NULL
- wbFormIDCk('Sub-Category', [RCCT])
- ]),
- wbRStructs('Ingredients', 'Ingredient', [
- wbFormIDCk(RCIL, 'Item', [ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, NOTE, IMOD, CMNY, CCRD, CHIP, LIGH], False, cpNormal, True),
- wbInteger(RCQY, 'Quantity', itU32, nil, cpNormal, True)
- ], []),
- wbRStructs('Outputs', 'Output', [
- wbFormIDCk(RCOD, 'Item', [ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, NOTE, IMOD, CMNY, CCRD, CHIP, LIGH], False, cpNormal, True),
- wbInteger(RCQY, 'Quantity', itU32, nil, cpNormal, True)
- ], [])
- ]);
-
- wbRecord(REPU, 'Reputation', [
- wbEDIDReq,
- wbFULL,
- wbICON,
- wbFloat(DATA, 'Value')
- ]);
-
- wbRecord(SLPD, 'Sleep Deprivation Stage', [
- wbEDIDReq,
- wbStruct(DATA, '', [
- wbInteger('Trigger Threshold', itU32),
- wbFormIDCk('Actor Effect', [SPEL])
- ], cpNormal, True)
- ]);
-
- wbAddGroupOrder(GMST);
- wbAddGroupOrder(TXST);
- wbAddGroupOrder(MICN);
- wbAddGroupOrder(GLOB);
- wbAddGroupOrder(CLAS);
- wbAddGroupOrder(FACT);
- wbAddGroupOrder(HDPT);
- wbAddGroupOrder(HAIR);
- wbAddGroupOrder(EYES);
- wbAddGroupOrder(RACE);
- wbAddGroupOrder(SOUN);
- wbAddGroupOrder(ASPC);
- wbAddGroupOrder(MGEF);
- wbAddGroupOrder(SCPT);
- wbAddGroupOrder(LTEX);
- wbAddGroupOrder(ENCH);
- wbAddGroupOrder(SPEL);
- wbAddGroupOrder(ACTI);
- wbAddGroupOrder(TACT);
- wbAddGroupOrder(TERM);
- wbAddGroupOrder(ARMO);
- wbAddGroupOrder(BOOK);
- wbAddGroupOrder(CONT);
- wbAddGroupOrder(DOOR);
- wbAddGroupOrder(INGR);
- wbAddGroupOrder(LIGH);
- wbAddGroupOrder(MISC);
- wbAddGroupOrder(STAT);
- wbAddGroupOrder(SCOL);
- wbAddGroupOrder(MSTT);
- wbAddGroupOrder(PWAT);
- wbAddGroupOrder(GRAS);
- wbAddGroupOrder(TREE);
- wbAddGroupOrder(FURN);
- wbAddGroupOrder(WEAP);
- wbAddGroupOrder(AMMO);
- wbAddGroupOrder(NPC_);
- wbAddGroupOrder(CREA);
- wbAddGroupOrder(LVLC);
- wbAddGroupOrder(LVLN);
- wbAddGroupOrder(KEYM);
- wbAddGroupOrder(ALCH);
- wbAddGroupOrder(IDLM);
- wbAddGroupOrder(NOTE);
- wbAddGroupOrder(COBJ);
- wbAddGroupOrder(PROJ);
- wbAddGroupOrder(LVLI);
- wbAddGroupOrder(WTHR);
- wbAddGroupOrder(CLMT);
- wbAddGroupOrder(REGN);
- wbAddGroupOrder(NAVI);
- wbAddGroupOrder(DIAL);
- wbAddGroupOrder(QUST);
- wbAddGroupOrder(IDLE);
- wbAddGroupOrder(PACK);
- wbAddGroupOrder(CSTY);
- wbAddGroupOrder(LSCR);
- wbAddGroupOrder(ANIO);
- wbAddGroupOrder(WATR);
- wbAddGroupOrder(EFSH);
- wbAddGroupOrder(EXPL);
- wbAddGroupOrder(DEBR);
- wbAddGroupOrder(IMGS);
- wbAddGroupOrder(IMAD);
- wbAddGroupOrder(FLST);
- wbAddGroupOrder(PERK);
- wbAddGroupOrder(BPTD);
- wbAddGroupOrder(ADDN);
- wbAddGroupOrder(AVIF);
- wbAddGroupOrder(RADS);
- wbAddGroupOrder(CAMS);
- wbAddGroupOrder(CPTH);
- wbAddGroupOrder(VTYP);
- wbAddGroupOrder(IPCT);
- wbAddGroupOrder(IPDS);
- wbAddGroupOrder(ARMA);
- wbAddGroupOrder(ECZN);
- wbAddGroupOrder(MESG);
- wbAddGroupOrder(RGDL);
- wbAddGroupOrder(DOBJ);
- wbAddGroupOrder(LGTM);
- wbAddGroupOrder(MUSC);
- wbAddGroupOrder(IMOD);
- wbAddGroupOrder(REPU);
- wbAddGroupOrder(RCPE);
- wbAddGroupOrder(RCCT);
- wbAddGroupOrder(CHIP);
- wbAddGroupOrder(CSNO);
- wbAddGroupOrder(LSCT);
- wbAddGroupOrder(MSET);
- wbAddGroupOrder(ALOC);
- wbAddGroupOrder(CHAL);
- wbAddGroupOrder(AMEF);
- wbAddGroupOrder(CCRD);
- wbAddGroupOrder(CMNY);
- wbAddGroupOrder(CDCK);
- wbAddGroupOrder(DEHY);
- wbAddGroupOrder(HUNG);
- wbAddGroupOrder(SLPD);
- // Forced at the end.
- wbAddGroupOrder(CELL);
- wbAddGroupOrder(WRLD);
-end;
-
-procedure DefineFNV;
-begin
- DefineFNVa;
- DefineFNVb;
- DefineFNVc;
- DefineFNVd;
- DefineFNVe;
- DefineFNVf;
-end;
-
-end.
diff --git a/lib/xedit/wbDefinitionsFO3.pas b/lib/xedit/wbDefinitionsFO3.pas
deleted file mode 100644
index 103a65d..0000000
--- a/lib/xedit/wbDefinitionsFO3.pas
+++ /dev/null
@@ -1,10758 +0,0 @@
-{*******************************************************************************
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
-*******************************************************************************}
-
-unit wbDefinitionsFO3;
-
-{$I wbDefines.inc}
-
-interface
-
-uses
- wbInterface;
-
-var
- wbAggroRadiusFlags: IwbFlagsDef;
- wbPKDTFlags: IwbFlagsDef;
- wbRecordFlagsFlags: IwbFlagsDef;
- wbServiceFlags: IwbFlagsDef;
- wbTemplateFlags: IwbFlagsDef;
-
- wbAgressionEnum: IwbEnumDef;
- wbAlignmentEnum: IwbEnumDef;
- wbArchtypeEnum: IwbEnumDef;
- wbAssistanceEnum: IwbEnumDef;
- wbAttackAnimationEnum: IwbEnumDef;
- wbAxisEnum: IwbEnumDef;
- wbBlendModeEnum: IwbEnumDef;
- wbBlendOpEnum: IwbEnumDef;
- wbBodyLocationEnum: IwbEnumDef;
- wbBodyPartIndexEnum: IwbEnumDef;
- wbConfidenceEnum: IwbEnumDef;
- wbCreatureTypeEnum: IwbEnumDef;
- wbCrimeTypeEnum: IwbEnumDef;
- wbCriticalStageEnum: IwbEnumDef;
- wbEquipTypeEnum: IwbEnumDef;
- wbFormTypeEnum: IwbEnumDef;
- wbFunctionsEnum: IwbEnumDef;
- wbHeadPartIndexEnum: IwbEnumDef;
- wbImpactMaterialTypeEnum: IwbEnumDef;
- wbMenuModeEnum: IwbEnumDef;
- wbMiscStatEnum: IwbEnumDef;
- wbModEffectEnum: IwbEnumDef;
- wbMoodEnum: IwbEnumDef;
- wbMusicEnum: IwbEnumDef;
- wbObjectTypeEnum: IwbEnumDef;
- wbPKDTType: IwbEnumDef;
- wbPlayerActionEnum: IwbEnumDef;
- wbQuadrantEnum: IwbEnumDef;
- wbReloadAnimEnum: IwbEnumDef;
- wbSexEnum: IwbEnumDef;
- wbSkillEnum: IwbEnumDef;
- wbSoundLevelEnum: IwbEnumDef;
- wbSpecializationEnum: IwbEnumDef;
- wbVatsValueFunctionEnum: IwbEnumDef;
- wbWeaponAnimTypeEnum: IwbEnumDef;
- wbZTestFuncEnum: IwbEnumDef;
-
-procedure DefineFO3;
-
-implementation
-
-uses
- Types,
- Classes,
- SysUtils,
- Math,
- Variants,
- wbHelpers;
-
-const
- _00_IAD: TwbSignature = #$00'IAD';
- _40_IAD: TwbSignature = #$40'IAD';
- _01_IAD: TwbSignature = #$01'IAD';
- _41_IAD: TwbSignature = #$41'IAD';
- _02_IAD: TwbSignature = #$02'IAD';
- _42_IAD: TwbSignature = #$42'IAD';
- _03_IAD: TwbSignature = #$03'IAD';
- _43_IAD: TwbSignature = #$43'IAD';
- _04_IAD: TwbSignature = #$04'IAD';
- _44_IAD: TwbSignature = #$44'IAD';
- _05_IAD: TwbSignature = #$05'IAD';
- _45_IAD: TwbSignature = #$45'IAD';
- _06_IAD: TwbSignature = #$06'IAD';
- _46_IAD: TwbSignature = #$46'IAD';
- _07_IAD: TwbSignature = #$07'IAD';
- _47_IAD: TwbSignature = #$47'IAD';
- _08_IAD: TwbSignature = #$08'IAD';
- _48_IAD: TwbSignature = #$48'IAD';
- _09_IAD: TwbSignature = #$09'IAD';
- _49_IAD: TwbSignature = #$49'IAD';
- _0A_IAD: TwbSignature = #$0A'IAD';
- _4A_IAD: TwbSignature = #$4A'IAD';
- _0B_IAD: TwbSignature = #$0B'IAD';
- _4B_IAD: TwbSignature = #$4B'IAD';
- _0C_IAD: TwbSignature = #$0C'IAD';
- _4C_IAD: TwbSignature = #$4C'IAD';
- _0D_IAD: TwbSignature = #$0D'IAD';
- _4D_IAD: TwbSignature = #$4D'IAD';
- _0E_IAD: TwbSignature = #$0E'IAD';
- _4E_IAD: TwbSignature = #$4E'IAD';
- _0F_IAD: TwbSignature = #$0F'IAD';
- _4F_IAD: TwbSignature = #$4F'IAD';
- _10_IAD: TwbSignature = #$10'IAD';
- _50_IAD: TwbSignature = #$50'IAD';
- _11_IAD: TwbSignature = #$11'IAD';
- _51_IAD: TwbSignature = #$51'IAD';
- _12_IAD: TwbSignature = #$12'IAD';
- _52_IAD: TwbSignature = #$52'IAD';
- _13_IAD: TwbSignature = #$13'IAD';
- _53_IAD: TwbSignature = #$53'IAD';
- _14_IAD: TwbSignature = #$14'IAD';
- _54_IAD: TwbSignature = #$54'IAD';
-
- _0_IAD : TwbSignature = #0'IAD';
- _1_IAD : TwbSignature = #1'IAD';
- _2_IAD : TwbSignature = #2'IAD';
- _3_IAD : TwbSignature = #3'IAD';
- ACBS : TwbSignature = 'ACBS';
- ACHR : TwbSignature = 'ACHR';
- ACRE : TwbSignature = 'ACRE';
- ACTI : TwbSignature = 'ACTI';
- ADDN : TwbSignature = 'ADDN';
- AIDT : TwbSignature = 'AIDT';
- ALCH : TwbSignature = 'ALCH';
- AMMO : TwbSignature = 'AMMO';
- ANAM : TwbSignature = 'ANAM';
- ANIO : TwbSignature = 'ANIO';
- ARMA : TwbSignature = 'ARMA';
- ARMO : TwbSignature = 'ARMO';
- ASPC : TwbSignature = 'ASPC';
- ATTR : TwbSignature = 'ATTR';
- ATXT : TwbSignature = 'ATXT';
- AVIF : TwbSignature = 'AVIF';
- BIPL : TwbSignature = 'BIPL';
- BMCT : TwbSignature = 'BMCT';
- BMDT : TwbSignature = 'BMDT';
- BNAM : TwbSignature = 'BNAM';
- BOOK : TwbSignature = 'BOOK';
- BPND : TwbSignature = 'BPND';
- BPNI : TwbSignature = 'BPNI';
- BPNN : TwbSignature = 'BPNN';
- BPNT : TwbSignature = 'BPNT';
- BPTD : TwbSignature = 'BPTD';
- BPTN : TwbSignature = 'BPTN';
- BTXT : TwbSignature = 'BTXT';
- CAMS : TwbSignature = 'CAMS';
- CELL : TwbSignature = 'CELL';
- CLAS : TwbSignature = 'CLAS';
- CLMT : TwbSignature = 'CLMT';
- CNAM : TwbSignature = 'CNAM';
- CNTO : TwbSignature = 'CNTO';
- COBJ : TwbSignature = 'COBJ';
- COED : TwbSignature = 'COED';
- CONT : TwbSignature = 'CONT';
- CPTH : TwbSignature = 'CPTH';
- CRDT : TwbSignature = 'CRDT';
- CREA : TwbSignature = 'CREA';
- CSAD : TwbSignature = 'CSAD';
- CSCR : TwbSignature = 'CSCR';
- CSDC : TwbSignature = 'CSDC';
- CSDI : TwbSignature = 'CSDI';
- CSDT : TwbSignature = 'CSDT';
- CSSD : TwbSignature = 'CSSD';
- CSTD : TwbSignature = 'CSTD';
- CSTY : TwbSignature = 'CSTY';
- CTDA : TwbSignature = 'CTDA';
- DATA : TwbSignature = 'DATA';
- DEBR : TwbSignature = 'DEBR';
- DELE : TwbSignature = 'DELE';
- DESC : TwbSignature = 'DESC';
- DEST : TwbSignature = 'DEST';
- DIAL : TwbSignature = 'DIAL';
- DMDL : TwbSignature = 'DMDL';
- DMDT : TwbSignature = 'DMDT';
- DNAM : TwbSignature = 'DNAM';
- DOBJ : TwbSignature = 'DOBJ';
- DODT : TwbSignature = 'DODT';
- DOOR : TwbSignature = 'DOOR';
- DSTD : TwbSignature = 'DSTD';
- DSTF : TwbSignature = 'DSTF';
- EAMT : TwbSignature = 'EAMT';
- ECZN : TwbSignature = 'ECZN';
- EDID : TwbSignature = 'EDID';
- EFID : TwbSignature = 'EFID';
- EFIT : TwbSignature = 'EFIT';
- EFSD : TwbSignature = 'EFSD';
- EFSH : TwbSignature = 'EFSH';
- EITM : TwbSignature = 'EITM';
- ENAM : TwbSignature = 'ENAM';
- ENCH : TwbSignature = 'ENCH';
- ENIT : TwbSignature = 'ENIT';
- EPF2 : TwbSignature = 'EPF2';
- EPF3 : TwbSignature = 'EPF3';
- EPFD : TwbSignature = 'EPFD';
- EPFT : TwbSignature = 'EPFT';
- ESCE : TwbSignature = 'ESCE';
- ETYP : TwbSignature = 'ETYP';
- EXPL : TwbSignature = 'EXPL';
- EYES : TwbSignature = 'EYES';
- FACT : TwbSignature = 'FACT';
- FGGA : TwbSignature = 'FGGA';
- FGGS : TwbSignature = 'FGGS';
- FGTS : TwbSignature = 'FGTS';
- FLST : TwbSignature = 'FLST';
- FLTV : TwbSignature = 'FLTV';
- FNAM : TwbSignature = 'FNAM';
- FULL : TwbSignature = 'FULL';
- FURN : TwbSignature = 'FURN';
- GLOB : TwbSignature = 'GLOB';
- GMST : TwbSignature = 'GMST';
- GNAM : TwbSignature = 'GNAM';
- GRAS : TwbSignature = 'GRAS';
- HAIR : TwbSignature = 'HAIR';
- HCLR : TwbSignature = 'HCLR';
- HDPT : TwbSignature = 'HDPT';
- HEDR : TwbSignature = 'HEDR';
- HNAM : TwbSignature = 'HNAM';
- ICO2 : TwbSignature = 'ICO2';
- ICON : TwbSignature = 'ICON';
- IDLA : TwbSignature = 'IDLA';
- IDLB : TwbSignature = 'IDLB';
- IDLC : TwbSignature = 'IDLC';
- IDLE : TwbSignature = 'IDLE';
- IDLF : TwbSignature = 'IDLF';
- IDLM : TwbSignature = 'IDLM';
- IDLT : TwbSignature = 'IDLT';
- IMAD : TwbSignature = 'IMAD';
- IMGS : TwbSignature = 'IMGS';
- INAM : TwbSignature = 'INAM';
- INDX : TwbSignature = 'INDX';
- INFO : TwbSignature = 'INFO';
- INGR : TwbSignature = 'INGR';
- IPCT : TwbSignature = 'IPCT';
- IPDS : TwbSignature = 'IPDS';
- ITXT : TwbSignature = 'ITXT';
- JNAM : TwbSignature = 'JNAM';
- KEYM : TwbSignature = 'KEYM';
- KFFZ : TwbSignature = 'KFFZ';
- KNAM : TwbSignature = 'KNAM';
- LAND : TwbSignature = 'LAND';
- LGTM : TwbSignature = 'LGTM';
- LIGH : TwbSignature = 'LIGH';
- LNAM : TwbSignature = 'LNAM';
- LSCR : TwbSignature = 'LSCR';
- LTEX : TwbSignature = 'LTEX';
- LTMP : TwbSignature = 'LTMP';
- LVLC : TwbSignature = 'LVLC';
- LVLD : TwbSignature = 'LVLD';
- LVLF : TwbSignature = 'LVLF';
- LVLG : TwbSignature = 'LVLG';
- LVLI : TwbSignature = 'LVLI';
- LVLN : TwbSignature = 'LVLN';
- LVLO : TwbSignature = 'LVLO';
- MAST : TwbSignature = 'MAST';
- MESG : TwbSignature = 'MESG';
- MGEF : TwbSignature = 'MGEF';
- MICN : TwbSignature = 'MICN';
- MICO : TwbSignature = 'MICO';
- MIC2 : TwbSignature = 'MIC2';
- MISC : TwbSignature = 'MISC';
- MNAM : TwbSignature = 'MNAM';
- MO2B : TwbSignature = 'MO2B';
- MO2S : TwbSignature = 'MO2S';
- MO2T : TwbSignature = 'MO2T';
- MO3B : TwbSignature = 'MO3B';
- MO3S : TwbSignature = 'MO3S';
- MO3T : TwbSignature = 'MO3T';
- MO4B : TwbSignature = 'MO4B';
- MO4S : TwbSignature = 'MO4S';
- MO4T : TwbSignature = 'MO4T';
- MOD2 : TwbSignature = 'MOD2';
- MOD3 : TwbSignature = 'MOD3';
- MOD4 : TwbSignature = 'MOD4';
- MODB : TwbSignature = 'MODB';
- MODD : TwbSignature = 'MODD';
- MODL : TwbSignature = 'MODL';
- MODS : TwbSignature = 'MODS';
- MODT : TwbSignature = 'MODT';
- MOSD : TwbSignature = 'MOSD';
- MSTT : TwbSignature = 'MSTT';
- MUSC : TwbSignature = 'MUSC';
- IMPS : TwbSignature = 'IMPS';
- IMPF : TwbSignature = 'IMPF';
- NAM0 : TwbSignature = 'NAM0';
- NAM1 : TwbSignature = 'NAM1';
- NAM2 : TwbSignature = 'NAM2';
- NAM3 : TwbSignature = 'NAM3';
- NAM4 : TwbSignature = 'NAM4';
- NAM5 : TwbSignature = 'NAM5';
- NAM6 : TwbSignature = 'NAM6';
- NAM7 : TwbSignature = 'NAM7';
- NAM8 : TwbSignature = 'NAM8';
- NAM9 : TwbSignature = 'NAM9';
- NAME : TwbSignature = 'NAME';
- NAVI : TwbSignature = 'NAVI';
- NAVM : TwbSignature = 'NAVM';
- NEXT : TwbSignature = 'NEXT';
- NIFT : TwbSignature = 'NIFT';
- NIFZ : TwbSignature = 'NIFZ';
- NNAM : TwbSignature = 'NNAM';
- NOTE : TwbSignature = 'NOTE';
- NPC_ : TwbSignature = 'NPC_';
- NULL : TwbSignature = 'NULL';
- NVCA : TwbSignature = 'NVCA';
- NVCI : TwbSignature = 'NVCI';
- NVDP : TwbSignature = 'NVDP';
- NVER : TwbSignature = 'NVER';
- NVEX : TwbSignature = 'NVEX';
- NVGD : TwbSignature = 'NVGD';
- NVMI : TwbSignature = 'NVMI';
- NVTR : TwbSignature = 'NVTR';
- NVVX : TwbSignature = 'NVVX';
- OBND : TwbSignature = 'OBND';
- OFST : TwbSignature = 'OFST';
- ONAM : TwbSignature = 'ONAM';
- PACK : TwbSignature = 'PACK';
- PBEA : TwbSignature = 'PBEA';
- PERK : TwbSignature = 'PERK';
- PFIG : TwbSignature = 'PFIG';
- PFPC : TwbSignature = 'PFPC';
- PGAG : TwbSignature = 'PGAG';
- PGRE : TwbSignature = 'PGRE';
- PMIS : TwbSignature = 'PMIS';
- TRGT : TwbSignature = 'TRGT';
- PGRI : TwbSignature = 'PGRI';
- PGRL : TwbSignature = 'PGRL';
- PGRP : TwbSignature = 'PGRP';
- PGRR : TwbSignature = 'PGRR';
- PKAM : TwbSignature = 'PKAM';
- PKDD : TwbSignature = 'PKDD';
- PKDT : TwbSignature = 'PKDT';
- PKE2 : TwbSignature = 'PKE2';
- PKED : TwbSignature = 'PKED';
- PKFD : TwbSignature = 'PKFD';
- PKID : TwbSignature = 'PKID';
- PKPT : TwbSignature = 'PKPT';
- PKW3 : TwbSignature = 'PKW3';
- PLD2 : TwbSignature = 'PLD2';
- PLDT : TwbSignature = 'PLDT';
- PLYR : TwbSignature = 'PLYR';
- PNAM : TwbSignature = 'PNAM';
- POBA : TwbSignature = 'POBA';
- POCA : TwbSignature = 'POCA';
- POEA : TwbSignature = 'POEA';
- PRKC : TwbSignature = 'PRKC';
- PRKE : TwbSignature = 'PRKE';
- PRKF : TwbSignature = 'PRKF';
- PROJ : TwbSignature = 'PROJ';
- PSDT : TwbSignature = 'PSDT';
- PTD2 : TwbSignature = 'PTD2';
- PTDT : TwbSignature = 'PTDT';
- PUID : TwbSignature = 'PUID';
- PWAT : TwbSignature = 'PWAT';
- QNAM : TwbSignature = 'QNAM';
- QOBJ : TwbSignature = 'QOBJ';
- QSDT : TwbSignature = 'QSDT';
- QSTA : TwbSignature = 'QSTA';
- QSTI : TwbSignature = 'QSTI';
- TPIC : TwbSignature = 'TPIC';
- QSTR : TwbSignature = 'QSTR';
- QUST : TwbSignature = 'QUST';
- RACE : TwbSignature = 'RACE';
- RADS : TwbSignature = 'RADS';
- RAFB : TwbSignature = 'RAFB';
- RAFD : TwbSignature = 'RAFD';
- RAGA : TwbSignature = 'RAGA';
- RAPS : TwbSignature = 'RAPS';
- RCLR : TwbSignature = 'RCLR';
- RDAT : TwbSignature = 'RDAT';
- RDMD : TwbSignature = 'RDMD';
- RDMO : TwbSignature = 'RDMO';
- RDMP : TwbSignature = 'RDMP';
- RDGS : TwbSignature = 'RDGS';
- RDOT : TwbSignature = 'RDOT';
- RDSD : TwbSignature = 'RDSD';
- RDWT : TwbSignature = 'RDWT';
- REFR : TwbSignature = 'REFR';
- REGN : TwbSignature = 'REGN';
- REPL : TwbSignature = 'REPL';
- RGDL : TwbSignature = 'RGDL';
- RNAM : TwbSignature = 'RNAM';
- RPLD : TwbSignature = 'RPLD';
- RPLI : TwbSignature = 'RPLI';
- SCDA : TwbSignature = 'SCDA';
- SCHR : TwbSignature = 'SCHR';
- SCOL : TwbSignature = 'SCOL';
- SCPT : TwbSignature = 'SCPT';
- SCRI : TwbSignature = 'SCRI';
- SCRN : TwbSignature = 'SCRN';
- SCRO : TwbSignature = 'SCRO';
- SCRV : TwbSignature = 'SCRV';
- SCTX : TwbSignature = 'SCTX';
- SCVR : TwbSignature = 'SCVR';
- SLCP : TwbSignature = 'SLCP';
- SLSD : TwbSignature = 'SLSD';
- SNAM : TwbSignature = 'SNAM';
- SNDD : TwbSignature = 'SNDD';
- SNDX : TwbSignature = 'SNDX';
- SOUL : TwbSignature = 'SOUL';
- SOUN : TwbSignature = 'SOUN';
- SPEL : TwbSignature = 'SPEL';
- SPIT : TwbSignature = 'SPIT';
- SPLO : TwbSignature = 'SPLO';
- STAT : TwbSignature = 'STAT';
- TACT : TwbSignature = 'TACT';
- TCLF : TwbSignature = 'TCLF';
- TCLT : TwbSignature = 'TCLT';
- TERM : TwbSignature = 'TERM';
- TES4 : TwbSignature = 'TES4';
- TNAM : TwbSignature = 'TNAM';
- TPLT : TwbSignature = 'TPLT';
- TRDT : TwbSignature = 'TRDT';
- TREE : TwbSignature = 'TREE';
- TX00 : TwbSignature = 'TX00';
- TX01 : TwbSignature = 'TX01';
- TX02 : TwbSignature = 'TX02';
- TX03 : TwbSignature = 'TX03';
- TX04 : TwbSignature = 'TX04';
- TX05 : TwbSignature = 'TX05';
- TXST : TwbSignature = 'TXST';
- UNAM : TwbSignature = 'UNAM';
- VCLR : TwbSignature = 'VCLR';
- VHGT : TwbSignature = 'VHGT';
- VNAM : TwbSignature = 'VNAM';
- VNML : TwbSignature = 'VNML';
- VTCK : TwbSignature = 'VTCK';
- VTEX : TwbSignature = 'VTEX';
- VTXT : TwbSignature = 'VTXT';
- VTYP : TwbSignature = 'VTYP';
- WATR : TwbSignature = 'WATR';
- WEAP : TwbSignature = 'WEAP';
- WLST : TwbSignature = 'WLST';
- WNAM : TwbSignature = 'WNAM';
- WRLD : TwbSignature = 'WRLD';
- WTHR : TwbSignature = 'WTHR';
- XACT : TwbSignature = 'XACT';
- XAMC : TwbSignature = 'XAMC';
- XAMT : TwbSignature = 'XAMT';
- XAPD : TwbSignature = 'XAPD';
- XAPR : TwbSignature = 'XAPR';
- XCAS : TwbSignature = 'XCAS';
- XCCM : TwbSignature = 'XCCM';
- XCET : TwbSignature = 'XCET';
- XCHG : TwbSignature = 'XCHG';
- XCIM : TwbSignature = 'XCIM';
- XCLC : TwbSignature = 'XCLC';
- XCLL : TwbSignature = 'XCLL';
- XCLP : TwbSignature = 'XCLP';
- XCLR : TwbSignature = 'XCLR';
- XCLW : TwbSignature = 'XCLW';
- XCMO : TwbSignature = 'XCMO';
- XCMT : TwbSignature = 'XCMT';
- XCNT : TwbSignature = 'XCNT';
- XCWT : TwbSignature = 'XCWT';
- XEMI : TwbSignature = 'XEMI';
- XESP : TwbSignature = 'XESP';
- XEZN : TwbSignature = 'XEZN';
- XGLB : TwbSignature = 'XGLB';
- XHLP : TwbSignature = 'XHLP';
- XDCR : TwbSignature = 'XDCR';
- XHLT : TwbSignature = 'XHLT';
- XIBS : TwbSignature = 'XIBS';
- XLCM : TwbSignature = 'XLCM';
- XLKR : TwbSignature = 'XLKR';
- XLOC : TwbSignature = 'XLOC';
- XLOD : TwbSignature = 'XLOD';
- XLRM : TwbSignature = 'XLRM';
- XLTW : TwbSignature = 'XLTW';
- XMBO : TwbSignature = 'XMBO';
- XMBP : TwbSignature = 'XMBP';
- XMBR : TwbSignature = 'XMBR';
- XMRC : TwbSignature = 'XMRC';
- XMRK : TwbSignature = 'XMRK';
- XNAM : TwbSignature = 'XNAM';
- XNDP : TwbSignature = 'XNDP';
- XOCP : TwbSignature = 'XOCP';
- XORD : TwbSignature = 'XORD';
- XOWN : TwbSignature = 'XOWN';
- XPOD : TwbSignature = 'XPOD';
- XPTL : TwbSignature = 'XPTL';
- XPPA : TwbSignature = 'XPPA';
- XPRD : TwbSignature = 'XPRD';
- XPRM : TwbSignature = 'XPRM';
- XPWR : TwbSignature = 'XPWR';
- XRAD : TwbSignature = 'XRAD';
- XRDO : TwbSignature = 'XRDO';
- XRDS : TwbSignature = 'XRDS';
- XRGB : TwbSignature = 'XRGB';
- XRGD : TwbSignature = 'XRGD';
- XRMR : TwbSignature = 'XRMR';
- XRNK : TwbSignature = 'XRNK';
- XRTM : TwbSignature = 'XRTM';
- XSCL : TwbSignature = 'XSCL';
- XSED : TwbSignature = 'XSED';
- XSRF : TwbSignature = 'XSRF';
- XSRD : TwbSignature = 'XSRD';
- XTEL : TwbSignature = 'XTEL';
- XTRG : TwbSignature = 'XTRG';
- XTRI : TwbSignature = 'XTRI';
- XXXX : TwbSignature = 'XXXX';
- YNAM : TwbSignature = 'YNAM';
- ZNAM : TwbSignature = 'ZNAM';
-
-var
- wbPKDTSpecificFlagsUnused : Boolean;
- wbEDID: IwbSubRecordDef;
- wbEDIDReq: IwbSubRecordDef;
- wbBMDT: IwbSubRecordDef;
- wbYNAM: IwbSubRecordDef;
- wbZNAM: IwbSubRecordDef;
- wbCOED: IwbSubRecordDef;
- wbXLCM: IwbSubRecordDef;
- wbEITM: IwbSubRecordDef;
- wbREPL: IwbSubRecordDef;
- wbBIPL: IwbSubRecordDef;
- wbOBND: IwbSubRecordDef;
- wbOBNDReq: IwbSubRecordDef;
- wbDEST: IwbSubRecordStructDef;
- wbDESTActor: IwbSubRecordStructDef;
- wbDODT: IwbSubRecordDef;
- wbXOWN: IwbSubRecordDef;
- wbXGLB: IwbSubRecordDef;
- wbXRGD: IwbSubRecordDef;
- wbXRGB: IwbSubRecordDef;
- wbSLSD: IwbSubRecordDef;
- wbSPLO: IwbSubRecordDef;
- wbSPLOs: IwbSubRecordArrayDef;
- wbCNTO: IwbSubRecordStructDef;
- wbCNTOs: IwbSubRecordArrayDef;
- wbAIDT: IwbSubRecordDef;
- wbCSDT: IwbSubRecordStructDef;
- wbCSDTs: IwbSubRecordArrayDef;
- wbFULL: IwbSubRecordDef;
- wbFULLActor: IwbSubRecordDef;
- wbFULLReq: IwbSubRecordDef;
- wbXNAM: IwbSubRecordDef;
- wbXNAMs: IwbSubRecordArrayDef;
- wbDESC: IwbSubRecordDef;
- wbDESCReq: IwbSubRecordDef;
- wbXSCL: IwbSubRecordDef;
- wbDATAPosRot : IwbSubRecordDef;
- wbPosRot : IwbStructDef;
- wbMODD: IwbSubRecordDef;
- wbMOSD: IwbSubRecordDef;
- wbMODL: IwbSubRecordStructDef;
- wbMODS: IwbSubRecordDef;
- wbMO2S: IwbSubRecordDef;
- wbMO3S: IwbSubRecordDef;
- wbMO4S: IwbSubRecordDef;
- wbMODLActor: IwbSubRecordStructDef;
- wbMODLReq: IwbSubRecordStructDef;
- wbCTDA: IwbSubRecordDef;
- wbSCHRReq: IwbSubRecordDef;
- wbCTDAs: IwbSubRecordArrayDef;
- wbCTDAsReq: IwbSubRecordArrayDef;
- wbSCROs: IwbSubRecordArrayDef;
- wbPGRP: IwbSubRecordDef;
- wbEmbeddedScript: IwbSubRecordStructDef;
- wbEmbeddedScriptPerk: IwbSubRecordStructDef;
- wbEmbeddedScriptReq: IwbSubRecordStructDef;
- wbSCRI: IwbSubRecordDef;
- wbSCRIActor: IwbSubRecordDef;
- wbFaceGen: IwbSubRecordStructDef;
- wbFaceGenNPC: IwbSubRecordStructDef;
- wbENAM: IwbSubRecordDef;
- wbFGGS: IwbSubRecordDef;
- wbXLOD: IwbSubRecordDef;
- wbXESP: IwbSubRecordDef;
- wbICON: IwbSubRecordStructDef;
- wbICONReq: IwbSubRecordStructDef;
- wbActorValue: IwbIntegerDef;
- wbETYP: IwbSubRecordDef;
- wbETYPReq: IwbSubRecordDef;
- wbEFID: IwbSubRecordDef;
- wbEFIT: IwbSubRecordDef;
- wbEffects: IwbSubRecordArrayDef;
- wbEffectsReq: IwbSubRecordArrayDef;
- wbBPNDStruct: IwbSubRecordDef;
- wbTimeInterpolator: IwbStructDef;
- wbColorInterpolator: IwbStructDef;
-
-function wbNVTREdgeToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Index : Integer;
- Flags : Cardinal;
- IsExternal : Boolean;
- Container : IwbContainerElementRef;
-begin
- Result := '';
- IsExternal := False;
- if Supports(aElement, IwbContainerElementRef, Container) then begin
- Index := StrToIntDef(Copy(Container.Name, 11, 1), -1);
- if (Index >= 0) and (Index <= 2) then begin
- Flags := Container.ElementNativeValues['..\..\Flags'];
- IsExternal := Flags and (Cardinal(1) shl Index) <> 0;
- end;
- end;
-
- if IsExternal then begin
- case aType of
- ctToStr: begin
- Result := IntToStr(aInt);
- if Container.ElementExists['..\..\..\..\NVEX\Connection #' + IntToStr(aInt)] then
- Result := Result + ' (Triangle #' +
- Container.ElementValues['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Triangle'] + ' in ' +
- Container.ElementValues['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Navigation Mesh'] + ')'
- else
- Result := Result + ' ';
- end;
- ctToSortKey:
- if Container.ElementExists['..\..\..\..\NVEX\Connection #' + IntToStr(aInt)] then
- Result :=
- Container.ElementSortKeys['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Navigation Mesh', True] + '|' +
- Container.ElementSortKeys['..\..\..\..\NVEX\Connection #' + IntToStr(aInt) + '\Triangle', True];
- ctCheck:
- if Container.ElementExists['..\..\..\..\NVEX\Connection #' + IntToStr(aInt)] then
- Result := ''
- else
- Result := 'NVEX\Connection #' + IntToStr(aInt) + ' is missing';
- end
- end else
- case aType of
- ctToStr: Result := IntToStr(aInt);
- end;
-end;
-
-function wbNVTREdgeToInt(const aString: string; const aElement: IwbElement): Int64;
-begin
- Result := StrToInt64(aString);
-end;
-
-
-function wbEPFDActorValueToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- AsCardinal : Cardinal;
- AsFloat : Single;
-begin
- AsCardinal := aInt;
- AsFloat := PSingle(@AsCardinal)^;
- aInt := Round(AsFloat);
- case aType of
- ctToStr: Result := wbActorValueEnum.ToString(aInt, aElement);
- ctToSortKey: Result := wbActorValueEnum.ToSortKey(aInt, aElement);
- ctCheck: Result := wbActorValueEnum.Check(aInt, aElement);
- ctToEditValue: Result := wbActorValueEnum.ToEditValue(aInt, aElement);
- ctEditType: Result := 'ComboBox';
- ctEditInfo: Result := wbActorValueEnum.EditInfo[aInt, aElement];
- end;
-end;
-
-function wbEPFDActorValueToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- AsCardinal : Cardinal;
- AsFloat : Single;
-begin
- AsFloat := wbActorValueEnum.FromEditValue(aString, aElement);
- PSingle(@AsCardinal)^ := AsFloat;
- Result := AsCardinal;
-end;
-
-function wbCTDAParam2VariableNameToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- //Container2 : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
- ScriptRef : IwbElement;
- Script : IwbMainRecord;
- Variables : TStringList;
- LocalVars : IwbContainerElementRef;
- LocalVar : IwbContainerElementRef;
- i, j : Integer;
- s : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- MainRecord := nil;
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-{ if Param1.NativeValue = 0 then
- if Supports(Container.Container, IwbContainerElementRef, Container) then
- for i := 0 to Pred(Container.ElementCount) do
- if Supports(Container.Elements[i], IwbContainerElementRef, Container2) then
- if SameText(Container2.ElementValues['Function'], 'GetIsID') then begin
- Param1 := Container2.ElementByName['Parameter #1'];
- if Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Break;
- end;}
-
- if not Assigned(MainRecord) then
- Exit;
-
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) then
- MainRecord := BaseRecord;
-
- ScriptRef := MainRecord.RecordBySignature['SCRI'];
-
- if not Assigned(ScriptRef) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- if not Supports(ScriptRef.LinksTo, IwbMainRecord, Script) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- Script := Script.HighestOverrideOrSelf[aElement._File.LoadOrder];
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- Variables := TStringList.Create;
- else
- Variables := nil;
- end;
- try
- if Supports(Script.ElementByName['Local Variables'], IwbContainerElementRef, LocalVars) then begin
- for i := 0 to Pred(LocalVars.ElementCount) do
- if Supports(LocalVars.Elements[i], IwbContainerElementRef, LocalVar) then begin
- j := LocalVar.ElementNativeValues['SLSD\Index'];
- s := LocalVar.ElementNativeValues['SCVR'];
- if Assigned(Variables) then
- Variables.AddObject(s, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := s;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- Variables.Sort;
- Result := Variables.CommaText;
- end;
- end;
- finally
- FreeAndNil(Variables);
- end;
-end;
-
-function wbCTDAParam2VariableNameToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
- ScriptRef : IwbElement;
- Script : IwbMainRecord;
- LocalVars : IwbContainerElementRef;
- LocalVar : IwbContainerElementRef;
- i, j : Integer;
- s : string;
-begin
- Result := StrToInt64Def(aString, Low(Cardinal));
- if Result <> Low(Cardinal) then
- Exit;
-
- if not Assigned(aElement) then
- raise Exception.Create('aElement not specified');
-
- Container := GetContainerRefFromUnionOrValue(aElement);
-
- if not Assigned(Container) then
- raise Exception.Create('Container not assigned');
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- raise Exception.Create('Could not find "Parameter #1"');
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- raise Exception.Create('"Parameter #1" does not reference a valid main record');
-
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) then
- MainRecord := BaseRecord;
-
- ScriptRef := MainRecord.RecordBySignature['SCRI'];
-
- if not Assigned(ScriptRef) then
- raise Exception.Create('"'+MainRecord.ShortName+'" does not contain a SCRI subrecord');
-
- if not Supports(ScriptRef.LinksTo, IwbMainRecord, Script) then
- raise Exception.Create('"'+MainRecord.ShortName+'" does not have a valid script');
-
- Script := Script.HighestOverrideOrSelf[aElement._File.LoadOrder];
-
- if Supports(Script.ElementByName['Local Variables'], IwbContainerElementRef, LocalVars) then begin
- for i := 0 to Pred(LocalVars.ElementCount) do
- if Supports(LocalVars.Elements[i], IwbContainerElementRef, LocalVar) then begin
- j := LocalVar.ElementNativeValues['SLSD\Index'];
- s := LocalVar.ElementNativeValues['SCVR'];
- if SameText(s, Trim(aString)) then begin
- Result := j;
- Exit;
- end;
- end;
- end;
-
- raise Exception.Create('Variable "'+aString+'" was not found in "'+MainRecord.ShortName+'"');
-end;
-
-function wbCTDAParam2QuestStageToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Stages : IwbContainerElementRef;
- Stage : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Stages'], IwbContainerElementRef, Stages) then begin
- for i := 0 to Pred(Stages.ElementCount) do
- if Supports(Stages.Elements[i], IwbContainerElementRef, Stage) then begin
- j := Stage.ElementNativeValues['INDX'];
- s := Trim(Stage.ElementValues['Log Entries\Log Entry\CNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbPerkDATAQuestStageToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Stages : IwbContainerElementRef;
- Stage : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Quest'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Stages'], IwbContainerElementRef, Stages) then begin
- for i := 0 to Pred(Stages.ElementCount) do
- if Supports(Stages.Elements[i], IwbContainerElementRef, Stage) then begin
- j := Stage.ElementNativeValues['INDX'];
- s := Trim(Stage.ElementValues['Log Entries\Log Entry\CNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbCTDAParam2QuestObjectiveToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Objectives : IwbContainerElementRef;
- Objective : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Objectives'], IwbContainerElementRef, Objectives) then begin
- for i := 0 to Pred(Objectives.ElementCount) do
- if Supports(Objectives.Elements[i], IwbContainerElementRef, Objective) then begin
- j := Objective.ElementNativeValues['QOBJ'];
- s := Trim(Objective.ElementValues['NNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbCTDAParam2QuestStageToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i : Integer;
- s : string;
-begin
- i := 1;
- s := Trim(aString);
- while (i <= Length(s)) and (s[i] in ['0'..'9']) do
- Inc(i);
- s := Copy(s, 1, Pred(i));
-
- Result := StrToInt(s);
-end;
-
-function wbCTDAParam2QuestObjectiveToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i : Integer;
- s : string;
-begin
- i := 1;
- s := Trim(aString);
- while (i <= Length(s)) and (s[i] in ['0'..'9']) do
- Inc(i);
- s := Copy(s, 1, Pred(i));
-
- Result := StrToInt(s);
-end;
-
-
-function wbClmtMoonsPhaseLength(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- PhaseLength : Byte;
- Masser : Boolean;
- Secunda : Boolean;
-begin
- Result := '';
- if aType = ctToSortKey then begin
- Result := IntToHex64(aInt, 2);
- end else if aType = ctToStr then begin
- PhaseLength := aInt mod 64;
- Masser := (aInt and 64) <> 0;
- Secunda := (aInt and 128) <> 0;
- if Masser then
- if Secunda then
- Result := 'Masser, Secunda / '
- else
- Result := 'Masser / '
- else
- if Secunda then
- Result := 'Secunda / '
- else
- Result := 'No Moon / ';
- Result := Result + IntToStr(PhaseLength);
- end;
-end;
-
-function wbClmtTime(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- Result := TimeToStr( EncodeTime(aInt div 6, (aInt mod 6) * 10, 0, 0) )
- else
- Result := '';
-end;
-
-function wbREFRNavmeshTriangleToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Navmesh : IwbElement;
- MainRecord : IwbMainRecord;
- Triangles : IwbContainerElementRef;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt);
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Navmesh := Container.Elements[0];
-
- if not Assigned(Navmesh) then
- Exit;
-
- if not Supports(Navmesh.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> NAVM then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- if not wbSimpleRecords and (aType = ctCheck) and Supports(MainRecord.ElementByPath['NVTR'], IwbContainerElementRef, Triangles) then
- if aInt >= Triangles.ElementCount then
- Result := '';
-end;
-
-function wbStringToInt(const aString: string; const aElement: IwbElement): Int64;
-begin
- Result := StrToIntDef(aString, 0);
-end;
-
-
-var
- wbCtdaTypeFlags : IwbFlagsDef;
-
-function wbCtdaTypeToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- s: string;
-begin
- Result := '';
- case aType of
- ctEditType:
- Result := 'CheckComboBox';
- ctEditInfo:
- Result := 'Equal,Greater,Lesser,Or,"Use Global","Run on Target"';
- ctToEditValue: begin
- Result := '000000';
- case aInt and $F0 of
- $00 : Result[1] := '1';
- $40 : Result[2] := '1';
- $60 : begin
- Result[1] := '1';
- Result[2] := '1';
- end;
- $80 : Result[3] := '1';
- $A0 : begin
- Result[1] := '1';
- Result[3] := '1';
- end;
- end;
- if (aInt and $01) <> 0 then
- Result[4] := '1';
- if (aInt and $02) <> 0 then
- Result[6] := '1';
- if (aInt and $04) <> 0 then
- Result[5] := '1';
- end;
- ctToStr: begin
- case aInt and $F0 of
- $00 : Result := 'Equal to';
- $20 : Result := 'Not equal to';
- $40 : Result := 'Greater than';
- $60 : Result := 'Greater than or equal to';
- $80 : Result := 'Less than';
- $A0 : Result := 'Less than or equal to';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.ToString(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: begin
- case aInt and $F0 of
- $00, $20, $40, $60, $80, $A0 : Result := '';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.Check(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- end;
-end;
-
-function wbCtdaTypeToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- s: string;
-begin
- s := aString + '000000';
-// Result := 0;
- if s[1] = '1' then begin
- if s[2] = '1' then begin
- if s[3] = '1' then begin
- Result := $00;
- end else begin
- Result := $60;
- end;
- end else begin
- if s[3] = '1' then begin
- Result := $A0;
- end else begin
- Result := $00;
- end;
- end;
- end else begin
- if s[2] = '1' then begin
- if s[3] = '1' then begin
- Result := $20;
- end else begin
- Result := $40;
- end;
- end else begin
- if s[3] = '1' then begin
- Result := $80;
- end else begin
- Result := $20;
- end;
- end;
- end;
- if s[4] = '1' then
- Result := Result or $01;
- if s[6] = '1' then
- Result := Result or $02;
- if s[5] = '1' then
- Result := Result or $04;
-end;
-
-procedure wbHeadPartsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainerElementRef;
-begin
- if wbBeginInternalEdit then try
- if Supports(aElement, IwbContainerElementRef, Container) then
- if (Container.Elements[0].NativeValue = 1) and (Container.ElementCount > 2) then
- Container.RemoveElement(1);
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMESGDNAMAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : Integer;
- Container : IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := Integer(aOldValue) and 1;
- NewValue := Integer(aNewValue) and 1;
- if NewValue = OldValue then
- Exit;
- if NewValue = 1 then
- Container.RemoveElement('TNAM')
- else
- Container.Add('TNAM', True);
- end;
-end;
-
-procedure wbGMSTEDIDAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : string;
- Container : IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := aOldValue;
- NewValue := aNewValue;
- if (Length(OldValue) < 1) or (Length(OldValue) < 1) or (OldValue[1] <> NewValue[1]) then begin
- Container.RemoveElement('DATA');
- Container.Add('DATA', True);
- end;
- end;
-end;
-
-procedure wbFLSTEDIDAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : string;
- OldOrdered, NewOrdered : Boolean;
- Container : IwbContainerElementRef;
-const
- OrderedList = 'OrderedList';
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := aOldValue;
- NewValue := aNewValue;
-
- if Length(OldValue) > Length(OrderedList) then
- Delete(OldValue, 1, Length(OldValue)-Length(OrderedList));
- if Length(NewValue) > Length(OrderedList) then
- Delete(NewValue, 1, Length(NewValue)-Length(OrderedList));
-
- OldOrdered := SameText(OldValue, OrderedList);
- NewOrdered := SameText(NewValue, OrderedList);
-
- if OldOrdered <> NewOrdered then
- Container.RemoveElement('FormIDs');
- end;
-end;
-
-procedure wbCtdaTypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue: Integer;
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- OldValue := aOldValue and $04;
- NewValue := aNewValue and $04;
- if OldValue <> NewValue then
- Container.ElementNativeValues['..\Comparison Value'] := 0;
-
- if aNewValue and $02 then begin
- Container.ElementNativeValues['..\Run On'] := 1;
- if Integer(Container.ElementNativeValues['..\Run On']) = 1 then
- aElement.NativeValue := Byte(aNewValue) and not $02;
- end;
-end;
-
-function wbMODTCallback(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Strings: TDynStrings;
- i: Integer;
-begin
- Result := '';
- if wbLoaderDone and (aType in [ctToStr, ctToSortKey] ) then begin
- Strings := wbContainerHandler.ResolveHash(aInt);
- for i := Low(Strings) to High(Strings) do
- Result := Result + Strings[i] + ', ';
- SetLength(Result, Length(Result) -2 );
- end;
-end;
-
-
-function wbIdleAnam(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not $C0 of
- 0: Result := 'Idle';
- 1: Result := 'Movement';
- 2: Result := 'Left Arm';
- 3: Result := 'Left Hand';
- 4: Result := 'Weapon';
- 5: Result := 'Weapon Up';
- 6: Result := 'Weapon Down';
- 7: Result := 'Special Idle';
- 20: Result := 'Whole Body';
- 21: Result := 'Upper Body';
- else
- Result := '';
- end;
-
- if (aInt and $80) = 0 then
- Result := Result + ', Must return a file';
- if (aInt and $40) = 1 then
- Result := Result + ', Unknown Flag';
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- end;
- ctCheck: begin
- case aInt and not $C0 of
- 0..7, 20, 21: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbScaledInt4ToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-const
- PlusMinus : array[Boolean] of string = ('+', '-');
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- ctToSortKey: begin
- Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- if Length(Result) < 22 then
- Result := StringOfChar('0', 22 - Length(Result)) + Result;
- Result := PlusMinus[aInt < 0] + Result;
- end;
- ctCheck: Result := '';
- end;
-end;
-
-function wbScaledInt4ToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- f: Extended;
-begin
- f := StrToFloat(aString);
- f := f * 10000;
- Result := Round(f);
-end;
-
-function wbHideFFFF(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- if aInt = $FFFF then
- Result := 'None'
- else
- Result := IntToStr(aInt);
-end;
-
-function wbAtxtPosition(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt div 17, 2) + IntToHex64(aInt mod 17, 2)
- else if aType = ctCheck then begin
- if (aInt < 0) or (aInt > 288) then
- Result := ''
- else
- Result := '';
- end else if aType = ctToStr then
- Result := IntToStr(aInt) + ' -> ' + IntToStr(aInt div 17) + ':' + IntToStr(aInt mod 17);
-end;
-
-function wbGLOBFNAM(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt of
- Ord('s'): Result := 'Short';
- Ord('l'): Result := 'Long';
- Ord('f'): Result := 'Float';
- else
- Result := '';
- end;
- end;
- ctToSortKey: Result := Chr(aInt);
- ctCheck: begin
- case aInt of
- Ord('s'), Ord('l'), Ord('f'): Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPlacedAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- s: string;
- Cell: IwbMainRecord;
- Position: TwbVector;
- Grid: TwbGridCell;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['NAME'];
- if Assigned(Rec) then begin
- s := Trim(Rec.Value);
- if s <> '' then
- Result := 'places ' + s;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
-
- // grid position of persistent reference in exterior persistent cell (interior cells are not persistent)
- if Supports(aMainRecord.Container, IwbGroupRecord, Container) then
- Cell := IwbGroupRecord(Container).ChildrenOf;
- if Assigned(Cell) and Cell.IsPersistent and (Cell.Signature = 'CELL') then
- if aMainRecord.GetPosition(Position) then begin
- Grid := wbPositionToGridCell(Position);
- Result := Result + ' at ' + IntToStr(Grid.x) + ',' + IntToStr(Grid.y);
- end;
- end;
- end;
-end;
-
-function wbINFOAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Container: IwbContainer;
- s: string;
-begin
- Result := Trim(aMainRecord.ElementValues['Responses\Response\NAM1']);
- if Result <> '' then
- Result := '''' + Result + '''';
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
- end;
- end;
-
- s := Trim(aMainRecord.ElementValues['QSTI']);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'for ' + s;
- end;
-end;
-
-function wbNAVMAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec : IwbRecord;
- Element : IwbElement;
- s : string;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['DATA'];
- if Assigned(Rec) then begin
- Element := Rec.ElementByName['Cell'];
- if Assigned(Element) then
- Element := Element.LinksTo;
- if Assigned(Element) then
- s := Trim(Element.Name);
- if s <> '' then
- Result := 'for ' + s;
- end;
-end;
-
-function wbCellAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- GroupRecord : IwbGroupRecord;
- s: string;
-begin
- Result := '';
-
- if not aMainRecord.IsPersistent then begin
- Rec := aMainRecord.RecordBySignature['XCLC'];
- if Assigned(Rec) then
- Result := 'at ' + Rec.Elements[0].Value + ',' + Rec.Elements[1].Value;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and not
- (Supports(Container, IwbGroupRecord, GroupRecord) and (GroupRecord.GroupType = 1)) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := wbFormID.ToString(GroupRecord.GroupLabel, aMainRecord);
- if s <> '' then begin
- if Result <> '' then
- s := s + ' ';
- Result := 'in ' + s + Result;
- end;
- end;
-end;
-
-function wbWthrDataClassification(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not 192 of
- 0: Result := 'None';
- 1: Result := 'Pleasant';
- 2: Result := 'Cloudy';
- 4: Result := 'Rainy';
- 8: Result := 'Snow';
- else
- Result := '';
- end;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2)
- end;
- ctCheck: begin
- case aInt and not 192 of
- 0, 1, 2, 4, 8: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbNOTETNAMDecide(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rDATA: IwbRecord;
-begin
- Result := 0;
- rDATA := aElement.Container.RecordBySignature[DATA];
- if Assigned(rDATA) then
- if rDATA.NativeValue = 3 then //Voice
- Result := 1;
-end;
-
-function wbNOTESNAMDecide(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rDATA: IwbRecord;
-begin
- Result := 0;
- rDATA := aElement.Container.RecordBySignature[DATA];
- if Assigned(rDATA) then
- if rDATA.NativeValue = 3 then //Voice
- Result := 1;
-end;
-
-function wbIPDSDATACount(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-begin
- if Assigned(aBasePtr) and Assigned(aEndPtr) then
- Result := (Cardinal(aBasePtr) - Cardinal(aBasePtr)) div 4
- else
- Result := 12;
-end;
-
-function wbNAVINAVMGetCount1(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- DataContainer : IwbDataContainer;
-begin
- Result := 0;
-
- if Supports(aElement, IwbDataContainer, DataContainer) then begin
- if DataContainer.ElementType = etArray then
- if not Supports(DataContainer.Container, IwbDataContainer, DataContainer) then
- Exit;
- Assert(DataContainer.Name = 'Data');
- Result := PWord(Cardinal(DataContainer.DataBasePtr) + 3*3*4)^;
- end;
-end;
-
-function wbNAVINAVMGetCount2(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- DataContainer : IwbDataContainer;
-begin
- Result := 0;
-
- if Supports(aElement, IwbDataContainer, DataContainer) then begin
- if DataContainer.ElementType = etArray then
- if not Supports(DataContainer.Container, IwbDataContainer, DataContainer) then
- Exit;
- Assert(DataContainer.Name = 'Data');
- Result := PWord(Cardinal(DataContainer.DataBasePtr) + 3*3*4 + 2)^;
- end;
-end;
-
-procedure wbCTDARunOnAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- if aOldValue <> aNewValue then
- if aNewValue <> 2 then
- aElement.Container.ElementNativeValues['Reference'] := 0;
-end;
-
-procedure wbPERKPRKETypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainerElementRef;
-// rDATA : IwbRecord;
-begin
- if aOldValue <> aNewValue then
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- if Supports(Container.Container, IwbContainerElementRef, Container) then begin
- Container.RemoveElement('DATA');
- Container.Add('DATA', True);
- Container.RemoveElement('Perk Conditions');
- Container.RemoveElement('Entry Point Function Parameters');
- if aNewValue = 2 then begin
- Container.Add('EPFT', True);
- Container.ElementNativeValues['DATA\Entry Point\Function'] := 2;
- end;
- end;
- end;
-end;
-
-function wbMGEFFAssocItemDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- Archtype : Variant;
- DataContainer : IwbDataContainer;
- Element : IwbElement;
-const
- OffsetArchtype = 56;
-
-begin
- Result := 1;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- VarClear(ArchType);
- Element := Container.ElementByName['Archtype'];
- if Assigned(Element) then
- ArchType := Element.NativeValue
- else if Supports(Container, IwbDataContainer, DataContainer) and
- DataContainer.IsValidOffset(aBasePtr, aEndPtr, OffsetArchtype) then
- begin // we are part of a proper structure
- aBasePtr := Pointer(Cardinal(aBasePtr) + OffsetArchtype);
- ArchType := PCardinal(aBasePtr)^;
- end;
-
- if not VarIsEmpty(ArchType) then
- case Integer(ArchType) of
- 01: Result := 2;//Script
- 18: Result := 3;//Bound Item
- 19: Result := 4;//Summon Creature
- else
- Result := 0;
- end;
-end;
-
-procedure wbMGEFFAssocItemAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainer;
- Element : IwbElement;
-begin
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if (aNewValue <> 0) then begin
- Element := Container.ElementByName['Archtype'];
- if Assigned(Element) and Element.NativeValue = 0 then
- Element.NativeValue := $FF; // Signals ArchType that it should not mess with us on the next change!
- end;
-end;
-
-procedure wbMGEFArchtypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if (aNewValue < $FF) and (aOldValue < $FF) then begin
- Container.ElementNativeValues['..\Assoc. Item'] := 0;
- case Integer(aNewValue) of
- 11: Container.ElementNativeValues['..\Actor Value'] := 48;//Invisibility
- 12: Container.ElementNativeValues['..\Actor Value'] := 49;//Chameleon
- 24: Container.ElementNativeValues['..\Actor Value'] := 47;//Paralysis
- else
- Container.ElementNativeValues['..\Actor Value'] := -1;
- end;
- end;
-end;
-
-procedure wbCounterEffectsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterByPathAfterSet('DATA - Data\Counter effect count', aElement);
-end;
-
-procedure wbMGEFAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerByPathAfterSet('DATA - Data\Counter effect count', 'Counter Effects', aElement);
-end;
-
-function wbCTDAReferenceDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Integer(Container.ElementNativeValues['Run On']) = 2 then
- Result := 1;
-end;
-
-function wbNAVINVMIDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- case Integer(Container.ElementNativeValues['Type']) of
- $00: Result :=1;
- $20: Result :=2;
- $30: Result :=3;
- end;
-end;
-
-function wbIMGSSkinDimmerDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize in [132, 148] then
- Result := 1;
-end;
-
-function wbCOEDOwnerDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- LinksTo : IwbElement;
- MainRecord : IwbMainRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- LinksTo := Container.ElementByName['Owner'].LinksTo;
-
- if Supports(LinksTo, IwbMainRecord, MainRecord) then
- if MainRecord.Signature = 'NPC_' then
- Result := 1
- else if MainRecord.Signature = 'FACT' then
- Result := 2;
-end;
-
-function wbCreaLevelDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
- i: Int64;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- i := Container.ElementByName['Flags'].NativeValue;
- if i and $00000080 <> 0 then
- Result := 1;
-end;
-
-
-function wbGMSTUnionDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rEDID: IwbRecord;
- s: string;
-begin
- Result := 1;
- rEDID := aElement.Container.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > 0 then
- case s[1] of
- 's': Result := 0;
- 'f': Result := 2;
- end;
- end;
-end;
-
-function wbFLSTLNAMIsSorted(const aContainer: IwbContainer): Boolean;
-var
- rEDID : IwbRecord;
- s : string;
- _File : IwbFile;
- MainRecord : IwbMainRecord;
-const
- OrderedList = 'OrderedList';
-begin
- Result := wbSortFLST; {>>> Should not be sorted according to Arthmoor and JustinOther, left as sorted for compatibility <<<}
- rEDID := aContainer.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > Length(OrderedList) then
- Delete(s, 1, Length(s)-Length(OrderedList));
- if SameText(s, OrderedList) then
- Result := False;
- end;
- if Result then begin
- MainRecord := aContainer.ContainingMainRecord;
- if not Assigned(MainRecord) then
- Exit;
- MainRecord := MainRecord.MasterOrSelf;
- if not Assigned(MainRecord) then
- Exit;
- _File := MainRecord._File;
- if not Assigned(_File) then
- Exit;
- if not SameText(_File.FileName, 'WeaponModKits.esp') then
- Exit;
- case (MainRecord.FormID and $FFFFFF) of
- $0130EB, $0130ED, $01522D, $01522E, $0158D5, $0158D6, $0158D7, $0158D8, $0158D9, $0158DA, $0158DC, $0158DD, $018E20:
- Result := False;
- end;
- end;
-end;
-
-function wbPerkDATADecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rPRKE: IwbRecord;
- eType: IwbElement;
-begin
- Result := 0;
- rPRKE := aElement.Container.RecordBySignature[PRKE];
- if Assigned(rPRKE) then begin
- eType := rPRKE.ElementByName['Type'];
- if Assigned(eType) then begin
- Result := eType.NativeValue;
- end;
- end;
-end;
-
-function wbEPFDDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainerElementRef;
-begin
- Result := 0;
- if not Assigned(aElement) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, Container) then
- Exit;
- Result := Container.ElementNativeValues['EPFT'];
- if Result = 2 then
- if Integer(Container.ElementNativeValues['..\DATA\Entry Point\Function']) = 5 then
- Result := 5;
-end;
-
-type
- TCTDAFunctionParamType = (
- ptNone,
- ptInteger,
- ptVariableName, //Integer
- ptSex, //Enum: Male, Female
- ptActorValue, //Enum: wbActorValue
- ptCrimeType, //?? Enum
- ptAxis, //?? Char
- ptQuestStage, //?? Integer
- ptMiscStat, //?? Enum
- ptAlignment, //?? Enum
- ptEquipType, //?? Enum
- ptFormType, //?? Enum
- ptCriticalStage, //?? Enum
-
- ptObjectReference, //REFR, ACHR, ACRE, PGRE
- ptInventoryObject, //ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, ARMA
- ptActor, //ACHR, ACRE
- ptVoiceType, //VTYP
- ptIdleForm, //IDLE
- ptFormList, //FLST
- ptNote, //NOTE
- ptQuest, //QUST
- ptFaction, //FACT
- ptWeapon, //WEAP
- ptCell, //CELL
- ptClass, //CLAS
- ptRace, //RACE
- ptActorBase, //NPC_, CREA
- ptGlobal, //GLOB
- ptWeather, //WTHR
- ptPackage, //PACK
- ptEncounterZone, //ECZN
- ptPerk, //PERK
- ptOwner, //FACT, NPC_
- ptFurniture, //FURN
- ptMagicItem, //SPEL
- ptMagicEffect, //MGEF
- ptWorldspace, //WRLD
- ptVATSValueFunction,
- ptVATSValueParam,
- ptCreatureType,
- ptMenuMode,
- ptPlayerAction,
- ptBodyLocation,
- ptReferencableObject //TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM
- );
-
- PCTDAFunction = ^TCTDAFunction;
- TCTDAFunction = record
- Index: Integer;
- Name: string;
- ParamType1: TCTDAFunctionParamType;
- ParamType2: TCTDAFunctionParamType;
- end;
-
-const
- wbCTDAFunctions : array[0..243] of TCTDAFunction = (
- (Index: 1; Name: 'GetDistance'; ParamType1: ptObjectReference),
- (Index: 5; Name: 'GetLocked'),
- (Index: 6; Name: 'GetPos'; ParamType1: ptAxis),
- (Index: 8; Name: 'GetAngle'; ParamType1: ptAxis),
- (Index: 10; Name: 'GetStartingPos'; ParamType1: ptAxis),
- (Index: 11; Name: 'GetStartingAngle'; ParamType1: ptAxis),
- (Index: 12; Name: 'GetSecondsPassed'),
- (Index: 14; Name: 'GetActorValue'; ParamType1: ptActorValue),
- (Index: 18; Name: 'GetCurrentTime'),
- (Index: 24; Name: 'GetScale'),
- (Index: 25; Name: 'IsMoving'),
- (Index: 26; Name: 'IsTurning'),
- (Index: 27; Name: 'GetLineOfSight'; ParamType1: ptObjectReference),
- (Index: 32; Name: 'GetInSameCell'; ParamType1: ptObjectReference),
- (Index: 35; Name: 'GetDisabled'),
- (Index: 36; Name: 'MenuMode'; ParamType1: ptMenuMode),
- (Index: 39; Name: 'GetDisease'),
- (Index: 40; Name: 'GetVampire'),
- (Index: 41; Name: 'GetClothingValue'),
- (Index: 42; Name: 'SameFaction'; ParamType1: ptActor),
- (Index: 43; Name: 'SameRace'; ParamType1: ptActor),
- (Index: 44; Name: 'SameSex'; ParamType1: ptActor),
- (Index: 45; Name: 'GetDetected'; ParamType1: ptActor),
- (Index: 46; Name: 'GetDead'),
- (Index: 47; Name: 'GetItemCount'; ParamType1: ptInventoryObject),
- (Index: 48; Name: 'GetGold'),
- (Index: 49; Name: 'GetSleeping'),
- (Index: 50; Name: 'GetTalkedToPC'),
- (Index: 53; Name: 'GetScriptVariable'; ParamType1: ptObjectReference; ParamType2: ptVariableName),
- (Index: 56; Name: 'GetQuestRunning'; ParamType1: ptQuest),
- (Index: 58; Name: 'GetStage'; ParamType1: ptQuest),
- (Index: 59; Name: 'GetStageDone'; ParamType1: ptQuest; ParamType2: ptQuestStage),
- (Index: 60; Name: 'GetFactionRankDifference'; ParamType1: ptFaction; ParamType2: ptActor),
- (Index: 61; Name: 'GetAlarmed'),
- (Index: 62; Name: 'IsRaining'),
- (Index: 63; Name: 'GetAttacked'),
- (Index: 64; Name: 'GetIsCreature'),
- (Index: 65; Name: 'GetLockLevel'),
- (Index: 66; Name: 'GetShouldAttack'; ParamType1: ptActor),
- (Index: 67; Name: 'GetInCell'; ParamType1: ptCell),
- (Index: 68; Name: 'GetIsClass'; ParamType1: ptClass),
- (Index: 69; Name: 'GetIsRace'; ParamType1: ptRace),
- (Index: 70; Name: 'GetIsSex'; ParamType1: ptSex),
- (Index: 71; Name: 'GetInFaction'; ParamType1: ptFaction),
- (Index: 72; Name: 'GetIsID'; ParamType1: ptReferencableObject),
- (Index: 73; Name: 'GetFactionRank'; ParamType1: ptFaction),
- (Index: 74; Name: 'GetGlobalValue'; ParamType1: ptGlobal),
- (Index: 75; Name: 'IsSnowing'),
- (Index: 76; Name: 'GetDisposition'; ParamType1: ptActor),
- (Index: 77; Name: 'GetRandomPercent'),
- (Index: 79; Name: 'GetQuestVariable'; ParamType1: ptQuest; ParamType2: ptVariableName),
- (Index: 80; Name: 'GetLevel'),
- (Index: 81; Name: 'GetArmorRating'),
- (Index: 84; Name: 'GetDeadCount'; ParamType1: ptActorBase),
- (Index: 91; Name: 'GetIsAlerted'),
- (Index: 98; Name: 'GetPlayerControlsDisabled'; ParamType1: ptInteger; ParamType2: ptInteger{; ParamType3: ptInteger; ParamType4: ptInteger; ParamType5: ptInteger; ParamType6: ptInteger; ParamType7: ptInteger}),
- (Index: 99; Name: 'GetHeadingAngle'; ParamType1: ptObjectReference),
- (Index: 101; Name: 'IsWeaponOut'),
- (Index: 102; Name: 'IsTorchOut'),
- (Index: 103; Name: 'IsShieldOut'),
- (Index: 106; Name: 'IsFacingUp'),
- (Index: 107; Name: 'GetKnockedState'),
- (Index: 108; Name: 'GetWeaponAnimType'),
- (Index: 109; Name: 'IsWeaponSkillType'; ParamType1: ptActorValue),
- (Index: 110; Name: 'GetCurrentAIPackage'),
- (Index: 111; Name: 'IsWaiting'),
- (Index: 112; Name: 'IsIdlePlaying'),
- (Index: 116; Name: 'GetMinorCrimeCount'),
- (Index: 117; Name: 'GetMajorCrimeCount'),
- (Index: 118; Name: 'GetActorAggroRadiusViolated'),
- (Index: 122; Name: 'GetCrime'; ParamType1: ptActor; ParamType2: ptCrimeType),
- (Index: 123; Name: 'IsGreetingPlayer'),
- (Index: 125; Name: 'IsGuard'),
- (Index: 127; Name: 'HasBeenEaten'),
- (Index: 128; Name: 'GetFatiguePercentage'),
- (Index: 129; Name: 'GetPCIsClass'; ParamType1: ptClass),
- (Index: 130; Name: 'GetPCIsRace'; ParamType1: ptRace),
- (Index: 131; Name: 'GetPCIsSex'; ParamType1: ptSex),
- (Index: 132; Name: 'GetPCInFaction'; ParamType1: ptFaction),
- (Index: 133; Name: 'SameFactionAsPC'),
- (Index: 134; Name: 'SameRaceAsPC'),
- (Index: 135; Name: 'SameSexAsPC'),
- (Index: 136; Name: 'GetIsReference'; ParamType1: ptObjectReference),
- (Index: 141; Name: 'IsTalking'),
- (Index: 142; Name: 'GetWalkSpeed'),
- (Index: 143; Name: 'GetCurrentAIProcedure'),
- (Index: 144; Name: 'GetTrespassWarningLevel'),
- (Index: 145; Name: 'IsTrespassing'),
- (Index: 146; Name: 'IsInMyOwnedCell'),
- (Index: 147; Name: 'GetWindSpeed'),
- (Index: 148; Name: 'GetCurrentWeatherPercent'),
- (Index: 149; Name: 'GetIsCurrentWeather'; ParamType1: ptWeather),
- (Index: 150; Name: 'IsContinuingPackagePCNear'),
- (Index: 153; Name: 'CanHaveFlames'),
- (Index: 154; Name: 'HasFlames'),
- (Index: 157; Name: 'GetOpenState'),
- (Index: 159; Name: 'GetSitting'),
- (Index: 160; Name: 'GetFurnitureMarkerID'),
- (Index: 161; Name: 'GetIsCurrentPackage'; ParamType1: ptPackage),
- (Index: 162; Name: 'IsCurrentFurnitureRef'; ParamType1: ptObjectReference),
- (Index: 163; Name: 'IsCurrentFurnitureObj'; ParamType1: ptFurniture),
- (Index: 170; Name: 'GetDayOfWeek'),
- (Index: 172; Name: 'GetTalkedToPCParam'; ParamType1: ptActor),
- (Index: 175; Name: 'IsPCSleeping'),
- (Index: 176; Name: 'IsPCAMurderer'),
- (Index: 180; Name: 'GetDetectionLevel'; ParamType1: ptActor),
- (Index: 182; Name: 'GetEquipped'; ParamType1: ptInventoryObject),
- (Index: 185; Name: 'IsSwimming'),
- (Index: 190; Name: 'GetAmountSoldStolen'),
- (Index: 192; Name: 'GetIgnoreCrime'),
- (Index: 193; Name: 'GetPCExpelled'; ParamType1: ptFaction),
- (Index: 195; Name: 'GetPCFactionMurder'; ParamType1: ptFaction),
- (Index: 197; Name: 'GetPCEnemyofFaction'; ParamType1: ptFaction),
- (Index: 199; Name: 'GetPCFactionAttack'; ParamType1: ptFaction),
- (Index: 203; Name: 'GetDestroyed'),
- (Index: 214; Name: 'HasMagicEffect'; ParamType1: ptMagicEffect),
- (Index: 215; Name: 'GetDefaultOpen'),
- (Index: 219; Name: 'GetAnimAction'),
- (Index: 223; Name: 'IsSpellTarget'; ParamType1: ptMagicItem),
- (Index: 224; Name: 'GetVATSMode'),
- (Index: 225; Name: 'GetPersuasionNumber'),
- (Index: 226; Name: 'GetSandman'),
- (Index: 227; Name: 'GetCannibal'),
- (Index: 228; Name: 'GetIsClassDefault'; ParamType1: ptClass),
- (Index: 229; Name: 'GetClassDefaultMatch'),
- (Index: 230; Name: 'GetInCellParam'; ParamType1: ptCell; ParamType2: ptObjectReference),
- (Index: 235; Name: 'GetVatsTargetHeight'),
- (Index: 237; Name: 'GetIsGhost'),
- (Index: 242; Name: 'GetUnconscious'),
- (Index: 244; Name: 'GetRestrained'),
- (Index: 246; Name: 'GetIsUsedItem'; ParamType1: ptReferencableObject),
- (Index: 247; Name: 'GetIsUsedItemType'; ParamType1: ptFormType),
- (Index: 254; Name: 'GetIsPlayableRace'),
- (Index: 255; Name: 'GetOffersServicesNow'),
- (Index: 258; Name: 'GetUsedItemLevel'),
- (Index: 259; Name: 'GetUsedItemActivate'),
- (Index: 264; Name: 'GetBarterGold'),
- (Index: 265; Name: 'IsTimePassing'),
- (Index: 266; Name: 'IsPleasant'),
- (Index: 267; Name: 'IsCloudy'),
- (Index: 274; Name: 'GetArmorRatingUpperBody'),
- (Index: 277; Name: 'GetBaseActorValue'; ParamType1: ptActorValue),
- (Index: 278; Name: 'IsOwner'; ParamType1: ptOwner),
- (Index: 280; Name: 'IsCellOwner'; ParamType1: ptCell; ParamType2: ptOwner),
- (Index: 282; Name: 'IsHorseStolen'),
- (Index: 285; Name: 'IsLeftUp'),
- (Index: 286; Name: 'IsSneaking'),
- (Index: 287; Name: 'IsRunning'),
- (Index: 288; Name: 'GetFriendHit'),
- (Index: 289; Name: 'IsInCombat'),
- (Index: 300; Name: 'IsInInterior'),
- (Index: 304; Name: 'IsWaterObject'),
- (Index: 306; Name: 'IsActorUsingATorch'),
- (Index: 309; Name: 'IsXBox'),
- (Index: 310; Name: 'GetInWorldspace'; ParamType1: ptWorldSpace),
- (Index: 312; Name: 'GetPCMiscStat'; ParamType1: ptMiscStat),
- (Index: 313; Name: 'IsActorEvil'),
- (Index: 314; Name: 'IsActorAVictim'),
- (Index: 315; Name: 'GetTotalPersuasionNumber'),
- (Index: 318; Name: 'GetIdleDoneOnce'),
- (Index: 320; Name: 'GetNoRumors'),
- (Index: 323; Name: 'WhichServiceMenu'),
- (Index: 327; Name: 'IsRidingHorse'),
- (Index: 332; Name: 'IsInDangerousWater'),
- (Index: 338; Name: 'GetIgnoreFriendlyHits'),
- (Index: 339; Name: 'IsPlayersLastRiddenHorse'),
- (Index: 353; Name: 'IsActor'),
- (Index: 354; Name: 'IsEssential'),
- (Index: 358; Name: 'IsPlayerMovingIntoNewSpace'),
- (Index: 361; Name: 'GetTimeDead'),
- (Index: 362; Name: 'GetPlayerHasLastRiddenHorse'),
- (Index: 365; Name: 'IsChild'),
- (Index: 367; Name: 'GetLastPlayerAction'),
- (Index: 368; Name: 'IsPlayerActionActive'; ParamType1: ptPlayerAction),
- (Index: 370; Name: 'IsTalkingActivatorActor'; ParamType1: ptActor),
- (Index: 372; Name: 'IsInList'; ParamType1: ptFormList),
- (Index: 382; Name: 'GetHasNote'; ParamType1: ptNote),
- (Index: 391; Name: 'GetHitLocation'),
- (Index: 392; Name: 'IsPC1stPerson'),
- (Index: 397; Name: 'GetCauseofDeath'),
- (Index: 398; Name: 'IsLimbGone'; ParamType1: ptBodyLocation),
- (Index: 399; Name: 'IsWeaponInList'; ParamType1: ptFormList),
- (Index: 403; Name: 'HasFriendDisposition'),
- (Index: 408; Name: 'GetVATSValue'; ParamType1: ptVATSValueFunction; ParamType2: ptVATSValueParam),
- (Index: 409; Name: 'IsKiller'; ParamType1: ptActor),
- (Index: 410; Name: 'IsKillerObject'; ParamType1: ptFormList),
- (Index: 411; Name: 'GetFactionCombatReaction'; ParamType1: ptFaction; ParamType2: ptFaction),
- (Index: 415; Name: 'Exists'; ParamType1: ptObjectReference),
- (Index: 416; Name: 'GetGroupMemberCount'),
- (Index: 417; Name: 'GetGroupTargetCount'),
- (Index: 427; Name: 'GetIsVoiceType'; ParamType1: ptVoiceType),
- (Index: 428; Name: 'GetPlantedExplosive'),
- (Index: 430; Name: 'IsActorTalkingThroughActivator'),
- (Index: 431; Name: 'GetHealthPercentage'),
- (Index: 433; Name: 'GetIsObjectType'; ParamType1: ptFormType),
- (Index: 435; Name: 'GetDialogueEmotion'),
- (Index: 436; Name: 'GetDialogueEmotionValue'),
- (Index: 438; Name: 'GetIsCreatureType'; ParamType1: ptCreatureType),
- (Index: 446; Name: 'GetInZone'; ParamType1: ptEncounterZone),
- (Index: 449; Name: 'HasPerk'; ParamType1: ptPerk),
- (Index: 450; Name: 'GetFactionRelation'; ParamType1: ptActor),
- (Index: 451; Name: 'IsLastIdlePlayed'; ParamType1: ptIdleForm),
- (Index: 454; Name: 'GetPlayerTeammate'),
- (Index: 455; Name: 'GetPlayerTeammateCount'),
- (Index: 459; Name: 'GetActorCrimePlayerEnemy'),
- (Index: 460; Name: 'GetActorFactionPlayerEnemy'),
- (Index: 464; Name: 'IsPlayerGrabbedRef'; ParamType1: ptObjectReference),
- (Index: 471; Name: 'GetDestructionStage'),
- (Index: 474; Name: 'GetIsAlignment'; ParamType1: ptAlignment),
- (Index: 478; Name: 'GetThreatRatio'; ParamType1: ptActor),
- (Index: 480; Name: 'GetIsUsedItemEquipType'; ParamType1: ptEquipType),
- (Index: 489; Name: 'GetConcussed'),
- (Index: 492; Name: 'GetMapMarkerVisible'),
- (Index: 495; Name: 'GetPermanentActorValue'; ParamType1: ptActorValue),
- (Index: 496; Name: 'GetKillingBlowLimb'),
- (Index: 500; Name: 'GetWeaponHealthPerc'),
- (Index: 503; Name: 'GetRadiationLevel'),
- (Index: 510; Name: 'GetLastHitCritical'),
- (Index: 515; Name: 'IsCombatTarget'; ParamType1: ptActor),
- (Index: 518; Name: 'GetVATSRightAreaFree'; ParamType1: ptObjectReference),
- (Index: 519; Name: 'GetVATSLeftAreaFree'; ParamType1: ptObjectReference),
- (Index: 520; Name: 'GetVATSBackAreaFree'; ParamType1: ptObjectReference),
- (Index: 521; Name: 'GetVATSFrontAreaFree'; ParamType1: ptObjectReference),
- (Index: 522; Name: 'GetIsLockBroken'),
- (Index: 523; Name: 'IsPS3'),
- (Index: 524; Name: 'IsWin32'),
- (Index: 525; Name: 'GetVATSRightTargetVisible'; ParamType1: ptObjectReference),
- (Index: 526; Name: 'GetVATSLeftTargetVisible'; ParamType1: ptObjectReference),
- (Index: 527; Name: 'GetVATSBackTargetVisible'; ParamType1: ptObjectReference),
- (Index: 528; Name: 'GetVATSFrontTargetVisible'; ParamType1: ptObjectReference),
- (Index: 531; Name: 'IsInCriticalStage'; ParamType1: ptCriticalStage),
- (Index: 533; Name: 'GetXPForNextLevel'),
- (Index: 546; Name: 'GetQuestCompleted'; ParamType1: ptQuest),
- (Index: 550; Name: 'IsGoreDisabled'),
- (Index: 555; Name: 'GetSpellUsageNum'; ParamType1: ptMagicItem),
- (Index: 557; Name: 'GetActorsInHigh'),
- (Index: 558; Name: 'HasLoaded3D'),
-
- // Added by FOSE:
- (Index: 1024; Name: 'GetFOSEVersion'; ),
- (Index: 1025; Name: 'GetFOSERevision'; ),
- (Index: 1028; Name: 'GetWeight'; ParamType1: ptInventoryObject; ),
- (Index: 1082; Name: 'IsKeyPressed'; ParamType1: ptInteger;),
- (Index: 1165; Name: 'GetWeaponHasScope'; ParamType1: ptInventoryObject; ),
- (Index: 1166; Name: 'IsControlPressed'; ParamType1: ptInteger; ),
- (Index: 1213; Name: 'GetFOSEBeta'; )
- );
-var
- wbCTDAFunctionEditInfo: string;
-
-function wbCTDAParamDescFromIndex(aIndex: Integer): PCTDAFunction;
-var
- L, H, I, C: Integer;
-begin
- Result := nil;
-
- L := Low(wbCTDAFunctions);
- H := High(wbCTDAFunctions);
- while L <= H do begin
- I := (L + H) shr 1;
- C := CmpW32(wbCTDAFunctions[I].Index, aIndex);
- if C < 0 then
- L := I + 1
- else begin
- H := I - 1;
- if C = 0 then begin
- L := I;
- Result := @wbCTDAFunctions[L];
- end;
- end;
- end;
-end;
-
-function wbCTDACompValueDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Integer(Container.ElementByName['Type'].NativeValue) and $04 <> 0 then
- Result := 1;
-end;
-
-function wbCTDAParam1Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType1));
-end;
-
-function wbCTDAParam2VATSValueParam(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Result := Container.ElementByName['Parameter #1'].NativeValue;
-end;
-
-function wbCTDAParam2Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType2));
-end;
-
-function wbCTDAFunctionToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Desc : PCTDAFunction;
- i : Integer;
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := Desc.Name
- else if aType = ctToEditValue then
- Result := IntToStr(aInt)
- else
- Result := '';
- end;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctCheck: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := ''
- else
- Result := '';
- end;
- ctEditType:
- Result := 'ComboBox';
- ctEditInfo: begin
- Result := wbCTDAFunctionEditInfo;
- if Result = '' then begin
- with TStringList.Create do try
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- Add(wbCTDAFunctions[i].Name);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- wbCTDAFunctionEditInfo := Result;
- end;
- end;
- end;
-end;
-
-function wbCTDAFunctionToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i: Integer;
-begin
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- with wbCTDAFunctions[i] do
- if SameText(Name, aString) then begin
- Result := Index;
- Exit;
- end;
- Result := StrToInt64(aString);
-end;
-
-type
- TPERKEntryPointConditionType = (
- epcDefault,
- epcItem,
- epcWeapon,
- epcWeaponTarget,
- epcTarget,
- epcAttacker,
- epcAttackerAttackee,
- epcAttackerAttackerWeapon
- );
-
- TPERKEntryPointFunctionType = (
- epfFloat,
- epfLeveledItem,
- epfScript,
- epfUnknown
- );
-
- TPERKEntryPointFunctionParamType = (
- epfpNone,
- epfpFloat,
- epfpFloatFloat,
- epfpLeveledItem,
- epfpScript
- );
-
- PPERKEntryPoint = ^TPERKEntryPoint;
- TPERKEntryPoint = record
- Name : string;
- Condition : TPERKEntryPointConditionType;
- FunctionType : TPERKEntryPointFunctionType;
- end;
-
- PPERKCondition = ^TPERKCondition;
- TPERKCondition = record
- Count : Integer;
- Caption1 : string;
- Caption2 : string;
- Caption3 : string;
- end;
-
- PPERKFunction = ^TPERKFunction;
- TPERKFunction = record
- Name : string;
- FunctionType : TPERKEntryPointFunctionType;
- ParamType : TPERKEntryPointFunctionParamType;
- end;
-
-const
- wbPERKCondition : array[TPERKEntryPointConditionType] of TPERKCondition = (
- (Count: 1; Caption1: 'Perk Owner'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Item'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Weapon'),
- (Count: 3; Caption1: 'Perk Owner'; Caption2: 'Weapon'; Caption3: 'Target'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Target'),
- (Count: 2; Caption1: 'Perk Owner'; Caption2: 'Attacker'),
- (Count: 3; Caption1: 'Perk Owner'; Caption2: 'Attacker'; Caption3: 'Attackee'),
- (Count: 3; Caption1: 'Perk Owner'; Caption2: 'Attacker'; Caption3: 'Attacker Weapon')
- );
-
- wbPERKFunctions : array[0..9] of TPERKFunction = (
- (Name: ''; FunctionType: epfUnknown; ParamType: epfpNone),
- (Name: 'Set Value'; FunctionType: epfFloat; ParamType: epfpFloat),
- (Name: 'Add Value'; FunctionType: epfFloat; ParamType: epfpFloat),
- (Name: 'Multiply Value'; FunctionType: epfFloat; ParamType: epfpFloat),
- (Name: 'Add Range To Value'; FunctionType: epfFloat; ParamType: epfpFloatFloat),
- (Name: 'Add Actor Value Mult'; FunctionType: epfFloat; ParamType: epfpFloatFloat),
- (Name: ''; FunctionType: epfUnknown; ParamType: epfpNone),
- (Name: ''; FunctionType: epfUnknown; ParamType: epfpNone),
- (Name: 'Add Leveled List'; FunctionType: epfLeveledItem; ParamType: epfpLeveledItem),
- (Name: 'Add Activate Choice'; FunctionType: epfScript; ParamType: epfpScript)
- );
-
- wbPERKEntryPoints : array[0..36] of TPERKEntryPoint = (
- (Name: 'Calculate Weapon Damage'; Condition: epcWeaponTarget),
- (Name: 'Calculate My Critical Hit Chance'; Condition: epcWeaponTarget),
- (Name: 'Calculate My Critical Hit Damage'; Condition: epcWeaponTarget),
- (Name: 'Calculate Weapon Attack AP Cost'; Condition: epcWeapon),
- (Name: 'Calculate Mine Explode Chance'; Condition: epcItem),
- (Name: 'Adjust Range Penalty'; Condition: epcWeapon),
- (Name: 'Adjust Limb Damage'; Condition: epcAttackerAttackerWeapon),
- (Name: 'Calculate Weapon Range'; Condition: epcWeapon),
- (Name: 'Calculate To Hit Chance'; Condition: epcWeaponTarget),
- (Name: 'Adjust Experience Points'),
- (Name: 'Adjust Gained Skill Points'),
- (Name: 'Adjust Book Skill Points'),
- (Name: 'Modify Recovered Health'),
- (Name: 'Calculate Inventory AP Cost'),
- (Name: 'Get Disposition'; Condition: epcTarget),
- (Name: 'Get Should Attack'; Condition: epcAttacker),
- (Name: 'Get Should Assist'; Condition: epcAttackerAttackee),
- (Name: 'Calculate Buy Price'; Condition: epcItem),
- (Name: 'Get Bad Karma'),
- (Name: 'Get Good Karma'),
- (Name: 'Ignore Locked Terminal'),
- (Name: 'Add Leveled List On Death'; Condition: epcTarget; FunctionType: epfLeveledItem),
- (Name: 'Get Max Carry Weight'),
- (Name: 'Modify Addiction Chance'),
- (Name: 'Modify Addiction Duration'),
- (Name: 'Modify Positive Chem Duration'),
- (Name: 'Adjust Drinking Radiation'),
- (Name: 'Activate'; Condition: epcTarget; FunctionType: epfScript),
- (Name: 'Mysterious Stranger'),
- (Name: 'Has Paralyzing Palm'),
- (Name: 'Hacking Science Bonus'),
- (Name: 'Ignore Running During Detection'),
- (Name: 'Ignore Broken Lock'),
- (Name: 'Has Concentrated Fire'),
- (Name: 'Calculate Gun Spread'; Condition: epcWeapon),
- (Name: 'Player Kill AP Reward'; Condition: epcWeaponTarget),
- (Name: 'Modify Enemy Critical Hit Chance'; Condition: epcWeaponTarget)
- );
-
- wbPERKFunctionParams: array[TPERKEntryPointFunctionParamType] of string = (
- 'None',
- 'Float',
- 'Float, Float',
- 'Leveled Item',
- 'Script'
- );
-
-procedure wbPERKEntryPointAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldEntryPoint : PPERKEntryPoint;
- NewEntryPoint : PPERKEntryPoint;
- OldCondition : PPERKCondition;
- NewCondition : PPERKCondition;
- OldFunction : PPERKFunction;
- EntryPoint : IwbContainerElementRef;
- Effect : IwbContainerElementRef;
- PerkConditions : IwbContainerElementRef;
- PerkCondition : IwbContainerElementRef;
- Container : IwbContainerElementRef;
- i : Integer;
-begin
- if aOldValue <> aNewValue then begin
- OldEntryPoint := @wbPERKEntryPoints[Integer(aOldValue)];
- NewEntryPoint := @wbPERKEntryPoints[Integer(aNewValue)];
- OldCondition := @wbPERKCondition[OldEntryPoint.Condition];
- NewCondition := @wbPERKCondition[NewEntryPoint.Condition];
- if not Assigned(aElement) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, EntryPoint) then
- Exit;
- i := EntryPoint.ElementNativeValues['Function'];
- if (i >= Low(wbPERKFunctions)) and (i <= High(wbPERKFunctions)) then
- OldFunction := @wbPERKFunctions[i]
- else
- OldFunction := nil;
- if not Assigned(OldFunction) or (OldFunction.FunctionType <> NewEntryPoint.FunctionType) then
- for i := Low(wbPERKFunctions) to High(wbPERKFunctions) do
- with wbPERKFunctions[i] do
- if FunctionType = NewEntryPoint.FunctionType then begin
- EntryPoint.ElementNativeValues['Function'] := i;
- Break;
- end;
- EntryPoint.ElementNativeValues['Perk Condition Tab Count'] := NewCondition.Count;
-
- if not Supports(EntryPoint.Container, IwbContainerElementRef, Container) then
- Exit;
- if not Supports(Container.Container, IwbContainerElementRef, Effect) then
- Exit;
-
- if not Supports(Effect.ElementByName['Perk Conditions'], IwbContainerElementRef, PerkConditions) then
- Exit;
-
- for i := Pred(PerkConditions.ElementCount) downto 0 do
- if Supports(PerkConditions.Elements[i], IwbContainerElementRef, PerkCondition) then
- if Integer(PerkCondition.ElementNativeValues['PRKC']) >= NewCondition.Count then
- PerkCondition.Remove
- else
- case Integer(PerkCondition.ElementNativeValues['PRKC']) of
- 2: if OldCondition.Caption2 <> NewCondition.Caption2 then
- PerkCondition.Remove;
- 3: if OldCondition.Caption3 <> NewCondition.Caption3 then
- PerkCondition.Remove;
- end;
- end;
-end;
-
-function wbPRKCToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- EntryPointVar := Container.ElementNativeValues['..\..\..\DATA\Entry Point\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- Exit;
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- with wbPERKEntryPoints[EntryPoint] do begin
- with wbPERKCondition[Condition] do begin
- case aType of
- ctEditType: Result := 'ComboBox';
- ctEditInfo: with TStringList.Create do try
- if Caption1 <> '' then
- Add(Caption1);
- if Caption2 <> '' then
- Add(Caption2);
- if Caption3 <> '' then
- Add(Caption3);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- else
- if (aInt < 0) or (aInt >= Count) then
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end
- else
- case aType of
- ctToStr, ctToEditValue: case Integer(aInt) of
- 0: Result := Caption1;
- 1: Result := Caption2;
- 2: Result := Caption3;
- end;
- ctCheck: Result := '';
- end;
- end;
- end;
- end;
-end;
-
-function wbPRKCToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
- s : string;
-begin
- s := Trim(aString);
-
- Result := StrToInt64Def(s, Low(Integer));
- if Result <> Low(Integer) then
- Exit;
- if s = '' then begin
- Result := 0;
- Exit;
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- raise Exception.Create('Could not resolve Entry Point');
- EntryPointVar := Container.ElementNativeValues['..\..\..\DATA\Entry Point\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- raise Exception.Create('Could not resolve Entry Point');
-
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then
- raise Exception.Create('Unknown Entry Point #'+IntToStr(EntryPoint));
-
- with wbPERKEntryPoints[EntryPoint] do
- with wbPERKCondition[Condition] do
- if SameText(aString, Caption1) then
- Result := 0
- else if SameText(aString, Caption2) then
- Result := 1
- else if SameText(aString, Caption3) then
- Result := 2
- else
- raise Exception.Create('"'+s+'" is not valid for this Entry Point');
-end;
-
-function wbNeverShow(const aElement: IwbElement): Boolean;
-begin
- Result := wbHideNeverShow;
-end;
-
-function GetREGNType(aElement: IwbElement): Integer;
-var
- Container: IwbContainerElementRef;
-begin
- Result := -1;
- if not Assigned(aElement) then
- Exit;
- while aElement.Name <> 'Region Data Entry' do begin
- aElement := aElement.Container;
- if not Assigned(aElement) then
- Exit;
- end;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- Result := Container.ElementNativeValues['RDAT\Type'];
-end;
-
-function wbREGNObjectsDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 2;
-end;
-
-function wbREGNWeatherDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 3;
-end;
-
-function wbREGNMapDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 4;
-end;
-
-function wbREGNLandDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 5;
-end;
-
-function wbREGNGrassDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 6;
-end;
-
-function wbREGNSoundDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 7;
-end;
-
-function wbMESGTNAMDontShow(const aElement: IwbElement): Boolean;
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- Result := False;
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if Integer(Container.ElementNativeValues['DNAM']) and 1 <> 0 then
- Result := True;
-end;
-
-function wbEPFDDontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Entry Point Function Parameters' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if not (Integer(Container.ElementNativeValues['EPFT']) in [1..3]) then
- Result := True;
-end;
-
-function wbTES4ONAMDontShow(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- Result := False;
- if not Assigned(aElement) then
- Exit;
- MainRecord := aElement.ContainingMainRecord;
- if not Assigned(MainRecord) then
- Exit;
- if not MainRecord.IsESM then
- Result := True;
-end;
-
-
-function wbEPF2DontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Entry Point Function Parameters' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if not (Integer(Container.ElementNativeValues['EPFT']) in [4]) then
- Result := True;
-end;
-
-function wbPERKPRKCDontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Effect' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if Integer(Container.ElementNativeValues['PRKE\Type']) <> 2 then
- Result := True;
-end;
-
-function wbPerkDATAFunctionToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
- i : Integer;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- EntryPointVar := Container.ElementNativeValues['..\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- Exit;
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- with wbPERKEntryPoints[EntryPoint] do begin
- case aType of
- ctEditType: Result := 'ComboBox';
- ctEditInfo: with TStringList.Create do try
- for i := Low(wbPERKFunctions) to High(wbPERKFunctions) do
- if wbPERKFunctions[i].FunctionType = FunctionType then
- if (wbPERKFunctions[i].Name <> '') then
- Add(wbPERKFunctions[i].Name);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- else
- if (aInt < Low(wbPERKFunctions)) or (aInt > High(wbPERKFunctions)) then
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end
- else
- case aType of
- ctToStr, ctToEditValue: begin
- Result := wbPERKFunctions[Integer(aInt)].Name;
- if (aType = ctToStr) and (wbPERKFunctions[Integer(aInt)].FunctionType <> FunctionType) then
- Result := Result + ' ';
- end;
- ctCheck:
- if wbPERKFunctions[Integer(aInt)].FunctionType <> FunctionType then
- Result := ''
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPerkDATAFunctionToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- EntryPointVar : Variant;
- EntryPoint : Integer;
- s : string;
- i : Integer;
-begin
- s := Trim(aString);
-
- Result := StrToInt64Def(s, Low(Integer));
- if Result <> Low(Integer) then
- Exit;
- if s = '' then
- raise Exception.Create('"" is not a valid value for this field');
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- raise Exception.Create('Could not resolve Entry Point');
- EntryPointVar := Container.ElementNativeValues['..\Entry Point'];
- if VarIsNull(EntryPointVar) or VarIsClear(EntryPointVar) then
- raise Exception.Create('Could not resolve Entry Point');
-
- EntryPoint := EntryPointVar;
- if (EntryPoint < Low(wbPERKEntryPoints)) or (EntryPoint > High(wbPERKEntryPoints)) then
- raise Exception.Create('Unknown Entry Point #'+IntToStr(EntryPoint));
-
- with wbPERKEntryPoints[EntryPoint] do
- for i := Low(wbPERKFunctions) to High(wbPERKFunctions) do
- if wbPERKFunctions[i].FunctionType = FunctionType then
- if SameText(s, wbPERKFunctions[i].Name) then begin
- Result := i;
- Exit;
- end;
-
- raise Exception.Create('"'+s+'" is not valid for this Entry Point');
-end;
-
-procedure wbPerkDATAFunctionAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- NewFunction : Integer;
- Container : IwbContainerElementRef;
- OldParamType: Integer;
- NewParamType: Integer;
-begin
- NewFunction := aNewValue;
- if (NewFunction < Low(wbPERKFunctions)) or (NewFunction > High(wbPERKFunctions)) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- OldParamType := Container.ElementNativeValues['..\..\..\Entry Point Function Parameters\EPFT'];
- NewParamType := Ord(wbPERKFunctions[NewFunction].ParamType);
- if (OldParamType = NewParamType) and not VarSameValue(aOldValue, aNewValue) and (NewFunction in [4,5]) then
- Container.ElementNativeValues['..\..\..\Entry Point Function Parameters\EPFT'] := 0;
- Container.ElementNativeValues['..\..\..\Entry Point Function Parameters\EPFT'] := NewParamType;
-end;
-
-function wbPerkEPFTToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- FunctionTypeVar : Variant;
- FunctionType : Integer;
-// i : Integer;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- FunctionTypeVar := Container.ElementNativeValues['..\..\DATA\Entry Point\Function'];
- if VarIsNull(FunctionTypeVar) or VarIsClear(FunctionTypeVar) then
- Exit;
- FunctionType := FunctionTypeVar;
- if (FunctionType < Low(wbPERKFunctions)) or (FunctionType > High(wbPERKFunctions)) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- with wbPERKFunctions[FunctionType] do begin
- case aType of
- ctEditType: Result := 'ComboBox';
- ctEditInfo: Result := '"' + wbPERKFunctionParams[ParamType] + '"';
- else
- if (aInt < Ord(Low(wbPERKFunctionParams))) or (aInt > Ord(High(wbPERKFunctionParams))) then
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end
- else
- case aType of
- ctToStr, ctToEditValue: begin
- Result := wbPERKFunctionParams[TPERKEntryPointFunctionParamType(aInt)];
- if (aType = ctToStr) and (TPERKEntryPointFunctionParamType(aInt) <> ParamType) then
- Result := Result + ' ';
- end;
- ctCheck:
- if TPERKEntryPointFunctionParamType(aInt) <> ParamType then
- Result := Result + ' '
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPerkEPFTToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- FunctionTypeVar : Variant;
- FunctionType : Integer;
- s : string;
-// i : Integer;
- j : TPERKEntryPointFunctionParamType;
-begin
- s := Trim(aString);
-
- Result := StrToInt64Def(s, Low(Integer));
- if Result <> Low(Integer) then
- Exit;
- if s = '' then
- raise Exception.Create('"" is not a valid value for this field');
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- raise Exception.Create('Could not resolve Function');
- FunctionTypeVar := Container.ElementNativeValues['..\..\DATA\Entry Point\Function'];
- if VarIsNull(FunctionTypeVar) or VarIsClear(FunctionTypeVar) then
- raise Exception.Create('Could not resolve Function');
-
- FunctionType := FunctionTypeVar;
- if (FunctionType < Low(wbPERKFunctions)) or (FunctionType > High(wbPERKFunctions)) then
- raise Exception.Create('Unknown Function #'+IntToStr(FunctionType));
-
- with wbPERKFunctions[FunctionType] do begin
- for j := Low(wbPERKFunctionParams) to High(wbPERKFunctionParams) do
- if SameText(s, wbPERKFunctionParams[j]) then begin
- if j <> ParamType then
- raise Exception.Create('"'+s+'" is not a valid Parameter Type for Function "'+Name+'"');
- Result := Ord(j);
- Exit;
- end;
- end;
-
- raise Exception.Create('"'+s+'" is not a valid Parameter Type');
-end;
-
-procedure wbPerkEPFTAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- i: Integer;
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- i := aNewValue;
- if (i < Ord(Low(wbPERKFunctionParams))) or (i> Ord(High(wbPERKFunctionParams))) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, Container) then
- Exit;
- Container.RemoveElement('EPFD');
- Container.RemoveElement('EPF2');
- Container.RemoveElement('EPF3');
- Container.RemoveElement('Embedded Script');
- case TPERKEntryPointFunctionParamType(i) of
- epfpFloat, epfpFloatFloat, epfpLeveledItem:
- Container.Add('EPFD', True);
- epfpScript: begin
- Container.Add('EPF2', True);
- Container.Add('EPF3', True);
- Container.Add('SCHR', True);
- end;
- end;
-end;
-
-procedure wbRemoveOFST(const aElement: IwbElement);
-var
- Container: IwbContainer;
- rOFST: IwbRecord;
-begin
- if not wbRemoveOffsetData then
- Exit;
-
- if Supports(aElement, IwbContainer, Container) then begin
- if wbBeginInternalEdit then try
- Container.RemoveElement(OFST);
- finally
- wbEndInternalEdit;
- end else begin
- rOFST := Container.RecordBySignature[OFST];
- if Assigned(rOFST) then
- Container.RemoveElement(rOFST);
- end;
- end;
-end;
-
-function wbActorTemplateUseTraits(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000001) <> 0;
- end;
-end;
-
-function wbActorTemplateUseStats(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000002) <> 0;
- end;
-end;
-
-function wbActorAutoCalcDontShow(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Flags'];
- Result := (i and $00000010) <> 0;
- end;
-end;
-
-function wbActorTemplateUseStatsAutoCalc(const aElement: IwbElement): Boolean;
-begin
- if not wbActorTemplateHide then
- Result := False
- else
- Result := wbActorTemplateUseStats(aElement) or wbActorAutoCalcDontShow(aElement);
-end;
-
-function wbActorTemplateUseFactions(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000004) <> 0;
- end;
-end;
-
-function wbActorTemplateUseActorEffectList(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000008) <> 0;
- end;
-end;
-
-function wbActorTemplateUseAIData(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000010) <> 0;
- end;
-end;
-
-function wbActorTemplateUseAIPackages(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000020) <> 0;
- end;
-end;
-
-function wbActorTemplateUseModelAnimation(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000040) <> 0;
- end;
-end;
-
-function wbActorTemplateUseBaseData(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000080) <> 0;
- end;
-end;
-
-function wbActorTemplateUseInventory(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000100) <> 0;
- end;
-end;
-
-function wbActorTemplateUseScript(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- if not wbActorTemplateHide then Exit;
- Element := GetElementFromUnion(aElement);
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000200) <> 0;
- end;
-end;
-
-procedure wbCTDAAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- //Size : Cardinal;
- TypeFlags : Cardinal;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- TypeFlags := Container.ElementNativeValues['Type'];
- if (TypeFlags and $02) <> 0 then begin
- if Container.DataSize = 20 then
- Container.DataSize := 28;
- Container.ElementNativeValues['Type'] := TypeFlags and not $02;
- Container.ElementEditValues['Run On'] := 'Target';
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMGEFAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- OldActorValue : Integer;
- NewActorValue : Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- OldActorValue := Container.ElementNativeValues['DATA - Data\Actor Value'];
- NewActorValue := OldActorValue;
- case Integer(Container.ElementNativeValues['DATA - Data\Archtype']) of
- 01, //Script
- 02, //Dispel
- 03, //Cure Disease
- 13, //Light
- 16, //Lock
- 17, //Open
- 18, //Bound Item
- 19, //Summon Creature
- 30, //Cure Paralysis
- 31, //Cure Addiction
- 32, //Cure Poison
- 33: //Concussion
- NewActorValue := -1;
- 11: //Invisibility
- NewActorValue := 48; //Invisibility
- 12: //Chameleon
- NewActorValue := 49; //Chameleon
- 24: //Paralysis
- NewActorValue := 47; //Paralysis
- end;
- if OldActorValue <> NewActorValue then
- Container.ElementNativeValues['DATA - Data\Actor Value'] := NewActorValue;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbPACKAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- NewContainer : IwbContainerElementRef;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- case Integer(Container.ElementNativeValues['PKDT - General\Type']) of
- 0: begin {Find}
- Container.Add('PTDT');
- end;
- 1: begin {Follow}
- Container.Add('PKFD');
- end;
- 2: begin {Escort}
- end;
- 3: begin {Eat}
- Container.Add('PTDT');
- Container.Add('PKED');
- end;
- 4: begin {Sleep}
- if not Container.ElementExists['Locations'] then
- if Supports(Container.Add('Locations'), IwbContainerElementRef, NewContainer) then
- NewContainer.ElementEditValues['PLDT - Location 1\Type'] := 'Near editor location';
- end;
- 5: begin {Wander}
- end;
- 6: begin {Travel}
- end;
- 7: begin {Accompany}
- end;
- 8: begin {Use Item At}
- end;
- 9: begin {Ambush}
- end;
- 10: begin {Flee Not Combat}
- end;
- 12: begin {Sandbox}
- end;
- 13: begin {Patrol}
- if not Container.ElementExists['Locations'] then
- if Supports(Container.Add('Locations'), IwbContainerElementRef, NewContainer) then
- NewContainer.ElementEditValues['PLDT - Location 1\Type'] := 'Near linked reference';
- Container.Add('PKPT');
- end;
- 14: begin {Guard}
- end;
- 15: begin {Dialogue}
- end;
- 16: begin {Use Weapon}
- end;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbNPCAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-// BaseRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementNativeValues['NAM5'] > 255 then
- Container.ElementNativeValues['NAM5'] := 255;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbREFRAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- Container.RemoveElement('RCLR');
-
- if Container.ElementExists['Ammo'] then begin
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) and (BaseRecord.Signature <> 'WEAP') then
- Container.RemoveElement('Ammo');
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbINFOAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if (Integer(Container.ElementNativeValues['DATA\Flags 1']) and $80) = 0 then
- Container.RemoveElement('DNAM');
-
- Container.RemoveElement('SNDD');
-
- if Container.ElementNativeValues['DATA\Type'] = 3 {Persuasion} then
- Container.ElementNativeValues['DATA\Type'] := 0 {Topic};
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbCELLAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
-// Container2 : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-// i : Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if (not Container.ElementExists['XCLW']) and ((Integer(Container.ElementNativeValues['DATA']) and $02) <> 0) then begin
- Container.Add('XCLW', True);
- Container.ElementEditValues['XCLW'] := 'Default';
- end;
-
- if (not Container.ElementExists['XNAM']) and ((Integer(Container.ElementNativeValues['DATA']) and $02) <> 0) then
- Container.Add('XNAM', True);
-
-// if Supports(Container.ElementBySignature[XCLR], IwbContainerElementRef, Container2) then begin
-// for i:= Pred(Container2.ElementCount) downto 0 do
-// if not Supports(Container2.Elements[i].LinksTo, IwbMainRecord, MainRecord) or (MainRecord.Signature <> 'REGN') then
-// Container2.RemoveElement(i);
-// if Container2.ElementCount < 1 then
-// Container2.Remove;
-// end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbEmbeddedScriptAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if Container.ElementEditValues['SCHR\Type'] = 'Quest' then
- Container.ElementEditValues['SCHR\Type'] := 'Object';
- finally
- wbEndInternalEdit;
- end;
-end;
-
-
-procedure wbSOUNAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- OldCntr: IwbContainerElementRef;
- NewCntr: IwbContainerElementRef;
- NewCntr2: IwbContainerElementRef;
- i: Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementExists['SNDD'] then
- Exit;
-
- if not Supports(Container.RemoveElement('SNDX - Sound Data'), IwbContainerElementRef, OldCntr) then
- Exit;
- if not Supports(Container.Add('SNDD', True), IwbContainerElementRef, NewCntr) then
- Exit;
- for i := 0 to Pred(Min(OldCntr.ElementCount, NewCntr.ElementCount)) do
- NewCntr.Elements[i].Assign(Low(Integer), OldCntr.Elements[i], False);
-
- if not Supports(NewCntr.ElementByName['Attenuation Curve'], IwbContainerElementRef, NewCntr2) then
- Assert(False);
- Assert(NewCntr2.ElementCount = 5);
-
- if Supports(Container.RemoveElement('ANAM'), IwbContainerElementRef, OldCntr) then begin
- Assert(OldCntr.ElementCount = 5);
- for i := 0 to Pred(Min(OldCntr.ElementCount, NewCntr2.ElementCount)) do
- NewCntr2.Elements[i].Assign(Low(Integer), OldCntr.Elements[i], False);
- end else begin
- NewCntr2.Elements[0].NativeValue := 100;
- NewCntr2.Elements[1].NativeValue := 50;
- NewCntr2.Elements[2].NativeValue := 20;
- NewCntr2.Elements[3].NativeValue := 5;
- NewCntr2.Elements[4].NativeValue := 0;
- end;
-
- if not Supports(NewCntr.ElementByName['Reverb Attenuation Control'], IwbContainerElementRef, NewCntr2) then
- Assert(False);
-
- if Supports(Container.RemoveElement('GNAM'), IwbContainerElementRef, OldCntr) then
- NewCntr2.Assign(Low(Integer), OldCntr, False)
- else
- NewCntr2.NativeValue := 80;
-
- if not Supports(NewCntr.ElementByName['Priority'], IwbContainerElementRef, NewCntr2) then
- Assert(False);
-
- if Supports(Container.RemoveElement('HNAM'), IwbContainerElementRef, OldCntr) then
- NewCntr2.Assign(Low(Integer), OldCntr, False)
- else
- NewCntr2.NativeValue := 128;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbWATRAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-// AnimationMultiplier : Extended;
-// AnimationAttackMultiplier : Extended;
- OldCntr: IwbContainerElementRef;
- NewCntr: IwbContainerElementRef;
- i: Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementExists['DNAM'] then
- Exit;
-
- if not Supports(Container.RemoveElement('DATA - Visual Data'), IwbContainerElementRef, OldCntr) then
- Exit;
- if not Supports(Container.Add('DNAM', True), IwbContainerElementRef, NewCntr) then
- Exit;
- for i := 0 to Pred(Min(OldCntr.ElementCount, NewCntr.ElementCount)) do
- if OldCntr.Elements[i].Name = 'Damage (Old Format)' then
- Container.ElementNativeValues['DATA - Damage'] := OldCntr.Elements[i].NativeValue
- else
- NewCntr.Elements[i].Assign(Low(Integer), OldCntr.Elements[i], False);
-
- NewCntr.ElementNativeValues['Noise Properties - Noise Layer One - Amplitude Scale'] := 1.0;
- NewCntr.ElementNativeValues['Noise Properties - Noise Layer Two - Amplitude Scale'] := 0.5;
- NewCntr.ElementNativeValues['Noise Properties - Noise Layer Three - Amplitude Scale'] := 0.25;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-
-procedure wbWEAPAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['DNAM'] then
- Exit;
-
- if Container.ElementNativeValues['DNAM\Animation Multiplier'] = 0.0 then
- Container.ElementNativeValues['DNAM\Animation Multiplier'] := 1.0;
- if Container.ElementNativeValues['DNAM\Animation Attack Multiplier'] = 0.0 then
- Container.ElementNativeValues['DNAM\Animation Attack Multiplier'] := 1.0;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMESGAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- IsMessageBox : Boolean;
- HasTimeDelay : Boolean;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- IsMessageBox := (Integer(Container.ElementNativeValues['DNAM']) and 1) = 1;
- HasTimeDelay := Container.ElementExists['TNAM'];
-
- if IsMessageBox = HasTimeDelay then
- if IsMessageBox then
- Container.RemoveElement('TNAM')
- else begin
- if not Container.ElementExists['DNAM'] then
- Container.Add('DNAM', True);
- Container.ElementNativeValues['DNAM'] := Integer(Container.ElementNativeValues['DNAM']) or 1;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-
-procedure wbEFSHAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- FullParticleBirthRatio : Extended;
- PersistantParticleBirthRatio : Extended;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['DATA'] then
- Exit;
-
- FullParticleBirthRatio := Container.ElementNativeValues['DATA\Particle Shader - Full Particle Birth Ratio'];
- PersistantParticleBirthRatio := Container.ElementNativeValues['DATA\Particle Shader - Persistant Particle Birth Ratio'];
-
- if ((FullParticleBirthRatio <> 0) and (FullParticleBirthRatio <= 1)) then begin
- FullParticleBirthRatio := FullParticleBirthRatio * 78.0;
- Container.ElementNativeValues['DATA\Particle Shader - Full Particle Birth Ratio'] := FullParticleBirthRatio;
- end;
-
- if ((PersistantParticleBirthRatio <> 0) and (PersistantParticleBirthRatio <= 1)) then begin
- PersistantParticleBirthRatio := PersistantParticleBirthRatio * 78.0;
- Container.ElementNativeValues['DATA\Particle Shader - Persistant Particle Birth Ratio'] := PersistantParticleBirthRatio;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbFACTAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Container.ElementExists['CNAM'] then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- Container.RemoveElement('CNAM');
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbLIGHAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['FNAM'] then begin
- Container.Add('FNAM', True);
- Container.ElementNativeValues['FNAM'] := 1.0;
- end;
-
- if Container.ElementExists['DATA'] then begin
- if SameValue(Container.ElementNativeValues['DATA\Falloff Exponent'], 0.0) then
- Container.ElementNativeValues['DATA\Falloff Exponent'] := 1.0;
- if SameValue(Container.ElementNativeValues['DATA\FOV'], 0.0) then
- Container.ElementNativeValues['DATA\FOV'] := 90.0;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbEFITAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- Element : IwbElement;
- ActorValue: Variant;
- MainRecord: IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- MainRecord := Container.ContainingMainRecord;
- if not Assigned(MainRecord) or MainRecord.IsDeleted then
- Exit;
-
- Element := Container.ElementByPath['..\EFID'];
- if not Assigned(Element) then
- Exit;
- if not Supports(Element.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
- if MainRecord.Signature <> 'MGEF' then
- Exit;
- ActorValue := MainRecord.ElementNativeValues['DATA - Data\Actor Value'];
- if VarIsNull(ActorValue) or VarIsClear(ActorValue) then
- Exit;
- if VarCompareValue(ActorValue, Container.ElementNativeValues['Actor Value']) <> vrEqual then
- Container.ElementNativeValues['Actor Value'] := ActorValue;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbRPLDAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainer;
- a, b: Single;
- NeedsFlip: Boolean;
-begin
- if wbBeginInternalEdit then try
- if Supports(aElement, IwbContainer, Container) then begin
- NeedsFlip := False;
- if Container.ElementCount > 1 then begin
- a := StrToFloat((Container.Elements[0] as IwbContainer).Elements[0].Value);
- b := StrToFloat((Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[0].Value);
- case CompareValue(a, b) of
- EqualsValue: begin
- a := StrToFloat((Container.Elements[0] as IwbContainer).Elements[1].Value);
- b := StrToFloat((Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[1].Value);
- NeedsFlip := CompareValue(a, b) = GreaterThanValue;
- end;
- GreaterThanValue:
- NeedsFlip := True;
- end;
- end;
- if NeedsFlip then
- Container.ReverseElements;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbPxDTLocationDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Result := Container.ElementByName['Type'].NativeValue;
-end;
-
-function wbPKDTFalloutBehaviorFlagsDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize = 8 then
- Result := 1;
-end;
-
-function wbPKDTSpecificFlagsDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize = 8 then
- Exit;
- Result := Container.ElementByName['Type'].NativeValue + 1;
-end;
-
-procedure wbIDLAsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Element : IwbElement;
- Container : IwbContainer;
- SelfAsContainer : IwbContainer;
-begin
- if wbBeginInternalEdit then try
-// if not wbCounterAfterSet('IDLC - Animation Count', aElement) then
- if Supports(aElement.Container, IwbContainer, Container) then begin
- Element := Container.ElementByPath['IDLC\Animation Count'];
- if Assigned(Element) and Supports(aElement, IwbContainer, SelfAsContainer) and
- (Element.GetNativeValue<>SelfAsContainer.GetElementCount) then
- Element.SetNativeValue(SelfAsContainer.GetElementCount);
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbAnimationsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Element : IwbElement;
- Elems : IwbElement;
- Container : IwbContainer;
-begin
- if wbBeginInternalEdit then try
-// if not wbCounterContainerAfterSet('IDLC - Animation Count', 'IDLA - Animations', aElement) then
- if Supports(aElement, IwbContainer, Container) then begin
- Element := Container.ElementByPath['IDLC\Animation Count'];
- Elems := Container.ElementByName['IDLA - Animations'];
- if Assigned(Element) and not Assigned(Elems) then
- if Element.GetNativeValue<>0 then
- Element.SetNativeValue(0);
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbOffsetDataColsCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbDataContainer;
- Element : IwbElement;
- fResult : Extended;
-begin
- Result := 0;
-
- if Supports(aElement.Container, IwbDataContainer, Container) and (Container.Name = 'OFST - Offset Data') and
- Supports(Container.Container, IwbDataContainer, Container) then begin
- Element := Container.ElementByPath['Object Bounds\NAM0 - Min\X'];
- if Assigned(Element) then begin
- fResult := Element.NativeValue;
- if fResult >= MaxInt then
- Result := 0
- else
- Result := Trunc(fResult);
- Element := Container.ElementByPath['Object Bounds\NAM9 - Max\X'];
- if Assigned(Element) then begin
- fResult := Element.NativeValue;
- if fResult >= MaxInt then
- Result := 1
- else
- Result := Trunc(fResult) - Result + 1;
- end;
- end;
- end;
-end;
-
-procedure DefineFO3a;
-begin
- wbRecordFlags := wbInteger('Record Flags', itU32, wbFlags([
- {0x00000001}'ESM',
- {0x00000002}'',
- {0x00000004}'', // Plugin selected (Editor)
- {0x00000008}'', // Form cannot be saved (Runtime)/Plugin active (Editor)
- {0x00000010}'Form initialized (Runtime only)', // Plugin cannot be active or selected (Editor)
- {0x00000020}'Deleted',
- {0x00000040}'Border Region / Has Tree LOD / Constant / Hidden From Local Map',
- {0x00000080}'Turn Off Fire',
- {0x00000100}'Inaccessible',
- {0x00000200}'Casts shadows / On Local Map / Motion Blur',
- {0x00000400}'Quest item / Persistent reference',
- {0x00000800}'Initially disabled',
- {0x00001000}'Ignored',
- {0x00002000}'No Voice Filter',
- {0x00004000}'Cannot Save (Runtime only)',
- {0x00008000}'Visible when distant',
- {0x00010000}'Random Anim Start / High Priority LOD',
- {0x00020000}'Dangerous / Off limits (Interior cell) / Radio Station (Talking Activator)',
- {0x00040000}'Compressed',
- {0x00080000}'Can''t wait / Platform Specific Texture / Dead',
- {0x00100000}'Unknown 21',
- {0x00200000}'Load Started', // set when beginning to load the form from save
- {0x00400000}'Unknown 23',
- {0x00800000}'Unknown 24',
- {0x01000000}'Destructible (Runtime only)',
- {0x02000000}'Obstacle / No AI Acquire',
- {0x03000000}'NavMesh Generation - Filter',
- {0x08000000}'NavMesh Generation - Bounding Box',
- {0x10000000}'Non-Pipboy / Reflected by Auto Water',
- {0x20000000}'Child Can Use / Refracted by Auto Water',
- {0x40000000}'NavMesh Generation - Ground',
- {0x80000000}'Multibound'
- ]));
-
-(* wbInteger('Record Flags 2', itU32, wbFlags([
- {0x00000001}'Unknown 1',
- {0x00000002}'Unknown 2',
- {0x00000004}'Unknown 3',
- {0x00000008}'Unknown 4',
- {0x00000010}'Unknown 5',
- {0x00000020}'Unknown 6',
- {0x00000040}'Unknown 7',
- {0x00000080}'Unknown 8',
- {0x00000100}'Unknown 9',
- {0x00000200}'Unknown 10',
- {0x00000400}'Unknown 11',
- {0x00000800}'Unknown 12',
- {0x00001000}'Unknown 13',
- {0x00002000}'Unknown 14',
- {0x00004000}'Unknown 15',
- {0x00008000}'Unknown 16',
- {0x00010000}'Unknown 17',
- {0x00020000}'Unknown 18',
- {0x00040000}'Unknown 19',
- {0x00080000}'Unknown 20',
- {0x00100000}'Unknown 21',
- {0x00200000}'Unknown 22',
- {0x00400000}'Unknown 23',
- {0x00800000}'Unknown 24',
- {0x01000000}'Unknown 25',
- {0x02000000}'Unknown 26',
- {0x03000000}'Unknown 27',
- {0x08000000}'Unknown 28',
- {0x10000000}'Unknown 29',
- {0x20000000}'Unknown 30',
- {0x40000000}'Unknown 31',
- {0x80000000}'Unknown 32'
- ])); (**)
-
- wbMainRecordHeader := wbStruct('Record Header', [
- wbString('Signature', 4, cpCritical),
- wbInteger('Data Size', itU32, nil, cpIgnore),
- wbRecordFlags,
- wbFormID('FormID', cpFormID),
- wbByteArray('Version Control Info 1', 4, cpIgnore),
- wbInteger('Form Version', itU16, nil, cpIgnore),
- wbByteArray('Version Control Info 2', 2, cpIgnore)
- ]);
-
- wbSizeOfMainRecordStruct := 24;
-
- wbIgnoreRecords.Add(XXXX);
-
- wbXRGD := wbByteArray(XRGD, 'Ragdoll Data');
- wbXRGB := wbByteArray(XRGB, 'Ragdoll Biped Data');
-
- wbMusicEnum := wbEnum(['Default', 'Public', 'Dungeon']);
- wbSoundLevelEnum := wbEnum([
- 'Loud',
- 'Normal',
- 'Silent'
- ]);
-
- wbWeaponAnimTypeEnum := wbEnum([
- {00} 'Hand to Hand',
- {01} 'Melee (1 Hand)',
- {02} 'Melee (2 Hand)',
- {03} 'Pistol - Balistic (1 Hand)',
- {04} 'Pistol - Energy (1 Hand)',
- {05} 'Rifle - Balistic (2 Hand)',
- {06} 'Rifle - Automatic (2 Hand)',
- {07} 'Rifle - Energy (2 Hand)',
- {08} 'Handle (2 Hand)',
- {09} 'Launcher (2 Hand)',
- {10} 'Grenade Throw (1 Hand)',
- {11} 'Land Mine (1 Hand)',
- {12} 'Mine Drop (1 Hand)'
- ]);
-
- wbReloadAnimEnum := wbEnum([
- 'ReloadA',
- 'ReloadB',
- 'ReloadC',
- 'ReloadD',
- 'ReloadE',
- 'ReloadF',
- 'ReloadG',
- 'ReloadH',
- 'ReloadI',
- 'ReloadJ',
- 'ReloadK'
- ],[255, 'None']);
-
- wbEDID := wbString(EDID, 'Editor ID', 0, cpNormal); // not cpBenign according to Arthmoor
- wbEDIDReq := wbString(EDID, 'Editor ID', 0, cpNormal, True); // not cpBenign according to Arthmoor
- wbFULL := wbString(FULL, 'Name', 0, cpTranslate);
- wbFULLActor := wbString(FULL, 'Name', 0, cpTranslate, False, wbActorTemplateUseBaseData);
- wbFULLReq := wbString(FULL, 'Name', 0, cpNormal, True);
- wbDESC := wbString(DESC, 'Description', 0, cpTranslate);
- wbDESCReq := wbString(DESC, 'Description', 0, cpTranslate, True);
- wbXSCL := wbFloat(XSCL, 'Scale');
- wbOBND := wbStruct(OBND, 'Object Bounds', [
- wbInteger('X1', itS16),
- wbInteger('Y1', itS16),
- wbInteger('Z1', itS16),
- wbInteger('X2', itS16),
- wbInteger('Y2', itS16),
- wbInteger('Z2', itS16)
- ]);
- wbOBNDReq := wbStruct(OBND, 'Object Bounds', [
- wbInteger('X1', itS16),
- wbInteger('Y1', itS16),
- wbInteger('Z1', itS16),
- wbInteger('X2', itS16),
- wbInteger('Y2', itS16),
- wbInteger('Z2', itS16)
- ], cpNormal, True);
- wbREPL := wbFormIDCkNoReach(REPL, 'Repair List', [FLST]);
- wbEITM := wbFormIDCk(EITM, 'Object Effect', [ENCH, SPEL]);
- wbBIPL := wbFormIDCk(BIPL, 'Biped Model List', [FLST]);
- wbCOED := wbStructExSK(COED, [2], [0, 1], 'Extra Data', [
- {00} wbFormIDCkNoReach('Owner', [NPC_, FACT, NULL]),
- {04} wbUnion('Global Variable / Required Rank', wbCOEDOwnerDecider, [
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCk('Global Variable', [GLOB, NULL]),
- wbInteger('Required Rank', itU32)
- ]),
- {08} wbFloat('Item Condition')
- ]);
-
- wbYNAM := wbFormIDCk(YNAM, 'Sound - Pick Up', [SOUN]);
- wbZNAM := wbFormIDCk(ZNAM, 'Sound - Drop', [SOUN]);
-
- wbPosRot :=
- wbStruct('Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ]);
-
- wbDATAPosRot :=
- wbStruct(DATA, 'Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ], cpNormal, True);
-
- wbMODS :=
- wbArrayS(MODS, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
- wbMO2S :=
- wbArrayS(MO2S, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
- wbMO3S :=
- wbArrayS(MO3S, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
- wbMO4S :=
- wbArrayS(MO4S, 'Alternate Textures',
- wbStructSK([0, 2], 'Alternate Texture', [
- wbLenString('3D Name'),
- wbFormIDCk('New Texture', [TXST]),
- wbInteger('3D Index', itS32)
- ]),
- -1);
-
- wbMODD :=
- wbInteger(MODD, 'FaceGen Model Flags', itU8, wbFlags([
- 'Head',
- 'Torso',
- 'Right Hand',
- 'Left Hand'
- ]));
- wbMOSD :=
- wbInteger(MOSD, 'FaceGen Model Flags', itU8, wbFlags([
- 'Head',
- 'Torso',
- 'Right Hand',
- 'Left Hand'
- ]));
-
- wbMODL :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODB, 'Unknown', 4, cpIgnore),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
-// wbArray(MODT, 'Texture Files Hashes',
-// wbByteArray('Unknown', 24, cpBenign),
-// wbArray('Hashes', wbInteger('Hash', itU64, wbMODTCallback), 3),
-// 0, nil, nil, cpBenign),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, nil, True);
-
- wbMODLActor :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODB, 'Unknown', 4, cpIgnore),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
-// wbArray(MODT, 'Texture Files Hashes',
-// wbByteArray('Unknown', 24, cpBenign),
-// wbArray('Hashes', wbInteger('Hash', itU64, wbMODTCallback), 3),
-// 0, nil, nil, cpBenign),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, wbActorTemplateUseModelAnimation, True);
-
- wbMODLReq :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODB, 'Unknown', 4, cpIgnore),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
-// wbArray(MODT, 'Texture Files',
-// wbByteArray('Unknown', 24, cpBenign),
-// wbArray('Hashes', wbInteger('Hash', itU64, wbMODTCallback), 3),
-// 0, nil, nil, cpBenign),
- wbMODS,
- wbMODD
- ], [], cpNormal, True, nil, True);
-
-
- wbDEST := wbRStruct('Destructable', [
- wbStruct(DEST, 'Header', [
- wbInteger('Health', itS32),
- wbInteger('Count', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'VATS Targetable'
- ], True)),
- wbByteArray('Unused', 2)
- ]),
- wbRArray('Stages',
- wbRStruct('Stage', [
- wbStruct(DSTD, 'Destruction Stage Data', [
- wbInteger('Health %', itU8),
- wbInteger('Index', itU8),
- wbInteger('Damage Stage', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'Cap Damage',
- 'Disable',
- 'Destroy'
- ])),
- wbInteger('Self Damage per Second', itS32),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbFormIDCk('Debris', [DEBR, NULL]),
- wbInteger('Debris Count', itS32)
- ], cpNormal, True),
- wbRStructSK([0], 'Model', [
- wbString(DMDL, 'Model Filename'),
- wbByteArray(DMDT, 'Texture Files Hashes', 0, cpIgnore)
-// wbArray(DMDT, 'Unknown',
-// wbByteArray('Unknown', 24, cpBenign),
-// 0, nil, nil, cpBenign)
- ], []),
- wbEmpty(DSTF, 'End Marker', cpNormal, True)
- ], [])
- )
- ], []);
-
- wbDESTActor := wbRStruct('Destructable', [
- wbStruct(DEST, 'Header', [
- wbInteger('Health', itS32),
- wbInteger('Count', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'VATS Targetable'
- ])),
- wbByteArray('Unused', 2)
- ]),
- wbRArray('Stages',
- wbRStruct('Stage', [
- wbStruct(DSTD, 'Destruction Stage Data', [
- wbInteger('Health %', itU8),
- wbInteger('Index', itU8),
- wbInteger('Damage Stage', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'Cap Damage',
- 'Disable',
- 'Destroy'
- ])),
- wbInteger('Self Damage per Second', itS32),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbFormIDCk('Debris', [DEBR, NULL]),
- wbInteger('Debris Count', itS32)
- ], cpNormal, True),
- wbRStructSK([0], 'Model', [
- wbString(DMDL, 'Model Filename'),
- wbByteArray(DMDT, 'Texture Files Hashes', 0, cpIgnore)
-// wbArray(DMDT, 'Unknown',
-// wbByteArray('Unknown', 24, cpBenign),
-// 0, nil, nil, cpBenign)
- ], []),
- wbEmpty(DSTF, 'End Marker', cpNormal, True)
- ], [])
- )
- ], [], cpNormal, False, wbActorTemplateUseModelAnimation);
-
- wbSCRI := wbFormIDCk(SCRI, 'Script', [SCPT]);
- wbSCRIActor := wbFormIDCk(SCRI, 'Script', [SCPT], False, cpNormal, False, wbActorTemplateUseScript);
- wbENAM := wbFormIDCk(ENAM, 'Object Effect', [ENCH]);
-
- wbXLOD := wbArray(XLOD, 'Distant LOD Data', wbFloat('Unknown'), 3);
-
- wbXESP := wbStruct(XESP, 'Enable Parent', [
- wbFormIDCk('Reference', [PLYR, REFR, ACRE, ACHR, PGRE, PMIS, PBEA]),
- wbInteger('Flags', itU8, wbFlags([
- 'Set Enable State to Opposite of Parent',
- 'Pop In'
- ])),
- wbByteArray('Unused', 3)
- ]);
-
- wbSCHRReq := wbStruct(SCHR, 'Basic Script Data', [
- wbByteArray('Unused', 4),
- wbInteger('RefCount', itU32),
- wbInteger('CompiledSize', itU32),
- wbInteger('VariableCount', itU32),
- wbInteger('Type', itU16, wbEnum([
- 'Object',
- 'Quest'
- ], [
- $100, 'Effect'
- ])),
- wbInteger('Flags', itU16, wbFlags([
- 'Enabled'
- ]), cpNormal, False, nil, nil, 1)
- ], cpNormal, True);
-
- wbSCROs :=
- wbRArray('References',
- wbRUnion('', [
- wbFormID(SCRO, 'Global Reference'),
-// wbFormIDCk(SCRO, 'Global Reference',
-// [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, IMAD,
-// BOOK, KEYM, ALCH, LIGH, QUST, PLYR, PACK, LVLI, ECZN, EXPL, FLST, IDLM, PMIS,
-// FACT, ACHR, REFR, ACRE, GLOB, DIAL, CELL, SOUN, MGEF, WTHR, CLAS, EFSH, RACE,
-// LVLC, CSTY, WRLD, SCPT, IMGS, MESG, MSTT, MUSC, NOTE, PERK, PGRE, PROJ, LVLN,
-// WATR, ENCH, TREE, TERM, HAIR, EYES, ADDN, NULL]),
- wbInteger(SCRV, 'Local Variable', itU32)
- ], [])
- );
-
- wbSLSD := wbStructSK(SLSD, [0], 'Local Variable Data', [
- wbInteger('Index', itU32),
- wbByteArray('Unused', 12),
- wbInteger('Flags', itU8, wbFlags(['IsLongOrShort']), cpCritical),
- wbByteArray('Unused', 7)
- ]);
-
- wbEmbeddedScript := wbRStruct('Embedded Script', [
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Embedded Script', 0, cpNormal{, True}),
- wbStringScript(SCTX, 'Embedded Script Source', 0, cpNormal{, True}),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ], [], cpNormal, False, nil, False, wbEmbeddedScriptAfterLoad);
-
- wbEmbeddedScriptPerk := wbRStruct('Embedded Script', [
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Embedded Script', 0, cpNormal, True),
- wbStringScript(SCTX, 'Embedded Script Source', 0, cpNormal, True),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ], [], cpNormal, False, wbEPF2DontShow, False, wbEmbeddedScriptAfterLoad);
-
- wbEmbeddedScriptReq := wbRStruct('Embedded Script', [
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Embedded Script', 0, cpNormal{, True}),
- wbStringScript(SCTX, 'Embedded Script Source', 0, cpNormal{, True}),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ], [], cpNormal, True, nil, False, wbEmbeddedScriptAfterLoad);
-
-
- wbXLCM := wbInteger(XLCM, 'Level Modifier', itS32);
-
- wbRecord(ACHR, 'Placed NPC', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [NPC_], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- {--- Ragdoll ---}
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Leveled Actor ----}
- wbXLCM,
-
- {--- Merchant Container ----}
- wbFormIDCk(XMRC, 'Merchant Container', [REFR], True),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbXOWN := wbFormIDCkNoReach(XOWN, 'Owner', [FACT, ACHR, CREA, NPC_]); // Ghouls can own too aparently !
- wbXGLB := wbFormIDCk(XGLB, 'Global variable', [GLOB]);
-
- wbRecord(ACRE, 'Placed Creature', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [CREA], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Leveled Actor ----}
- wbXLCM,
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Merchant Container ----}
- wbFormIDCk(XMRC, 'Merchant Container', [REFR], True),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(ACTI, 'Activator', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbDEST,
- wbFormIDCk(SNAM, 'Sound - Looping', [SOUN]),
- wbFormIDCk(VNAM, 'Sound - Activation', [SOUN]),
- wbFormIDCk(RNAM, 'Radio Station', [TACT]),
- wbFormIDCk(WNAM, 'Water Type', [WATR])
- ]);
-
- wbICON := wbRStruct('Icon', [
- wbString(ICON, 'Large Icon filename'),
- wbString(MICO, 'Small Icon filename')
- ], []);
-
- wbICONReq := wbRStruct('Icon', [
- wbString(ICON, 'Large Icon filename'),
- wbString(MICO, 'Small Icon filename')
- ], [], cpNormal, True);
-
- wbVatsValueFunctionEnum :=
- wbEnum([
- 'Weapon Is',
- 'Weapon In List',
- 'Target Is',
- 'Target In List',
- 'Target Distance',
- 'Target Part',
- 'VATS Action',
- 'Is Success',
- 'Is Critical',
- 'Critical Effect Is',
- 'Critical Effect In List',
- 'Is Fatal',
- 'Explode Part',
- 'Dismember Part',
- 'Cripple Part',
- 'Weapon Type Is',
- 'Is Stranger',
- 'Is Paralyzing Palm'
- ]);
-
- wbActorValueEnum :=
- wbEnum([
- {00} 'Aggresion',
- {01} 'Confidence',
- {02} 'Energy',
- {03} 'Responsibility',
- {04} 'Mood',
- {05} 'Strength',
- {06} 'Perception',
- {07} 'Endurance',
- {08} 'Charisma',
- {09} 'Intelligence',
- {10} 'Agility',
- {11} 'Luck',
- {12} 'Action Points',
- {13} 'Carry Weight',
- {14} 'Critical Chance',
- {15} 'Heal Rate',
- {16} 'Health',
- {17} 'Melee Damage',
- {18} 'Damage Resistance',
- {19} 'Poison Resistance',
- {20} 'Rad Resistance',
- {21} 'Speed Multiplier',
- {22} 'Fatigue',
- {23} 'Karma',
- {24} 'XP',
- {25} 'Perception Condition',
- {26} 'Endurance Condition',
- {27} 'Left Attack Condition',
- {28} 'Right Attack Condition',
- {29} 'Left Mobility Condition',
- {30} 'Right Mobility Condition',
- {31} 'Brain Condition',
- {32} 'Barter',
- {33} 'Big Guns',
- {34} 'Energy Weapons',
- {35} 'Explosives',
- {36} 'Lockpick',
- {37} 'Medicine',
- {38} 'Melee Weapons',
- {39} 'Repair',
- {40} 'Science',
- {41} 'Small Guns',
- {42} 'Sneak',
- {43} 'Speech',
- {44} 'Throwing (unused)',
- {45} 'Unarmed',
- {46} 'Inventory Weight',
- {47} 'Paralysis',
- {48} 'Invisibility',
- {49} 'Chameleon',
- {50} 'Night Eye',
- {51} 'Detect Life Range',
- {52} 'Fire Resistance',
- {53} 'Water Breathing',
- {54} 'Rad Level',
- {55} 'Bloody Mess',
- {56} 'Unarmed Damage',
- {57} 'Assistance',
- {58} 'Electric Resistance',
- {59} 'Frost Resistance',
- {60} 'Energy Resistance',
- {61} 'EMP Resistance',
- {62} 'Variable01',
- {63} 'Variable02',
- {64} 'Variable03',
- {65} 'Variable04',
- {66} 'Variable05',
- {67} 'Variable06',
- {68} 'Variable07',
- {79} 'Variable08',
- {70} 'Variable09',
- {71} 'Variable10',
- {72} 'Ignore Negative Effects'
- ], [
- -1, 'None'
- ]);
-
- wbSkillEnum :=
- wbEnum([
- 'Barter',
- 'Big Guns',
- 'Energy Weapons',
- 'Explosives',
- 'Lockpick',
- 'Medicine',
- 'Melee Weapons',
- 'Repair',
- 'Science',
- 'Small Guns',
- 'Sneak',
- 'Speech',
- 'Throwing (unused)',
- 'Unarmed'
- ], [
- -1, 'None'
- ]);
-
- wbCrimeTypeEnum :=
- wbEnum([
- 'Steal',
- 'Pickpocket',
- 'Trespass',
- 'Attack',
- 'Murder'
- ], [
- -1, 'None'
- ]);
-
- wbActorValue := wbInteger('Actor Value', itS32, wbActorValueEnum);
-
- wbEquipTypeEnum :=
- wbEnum([
- {00} 'Big Guns',
- {01} 'Energy Weapons',
- {02} 'Small Guns',
- {03} 'Melee Weapons',
- {04} 'Unarmed Weapon',
- {05} 'Thrown Weapons',
- {06} 'Mine',
- {07} 'Body Wear',
- {08} 'Head Wear',
- {09} 'Hand Wear',
- {10} 'Chems',
- {11} 'Stimpack',
- {12} 'Food',
- {13} 'Alcohol'
- ], [
- -1, 'None'
- ]);
-
- wbETYP := wbInteger(ETYP, 'Equiptment Type', itS32, wbEquipTypeEnum);
- wbETYPReq := wbInteger(ETYP, 'Equiptment Type', itS32, wbEquipTypeEnum, cpNormal, True);
-
- wbFormTypeEnum :=
- wbEnum([], [
- $04, 'Texture Set',
- $05, 'Menu Icon',
- $06, 'Global',
- $07, 'Class',
- $08, 'Faction',
- $09, 'Head Part',
- $0A, 'Hair',
- $0B, 'Eyes',
- $0C, 'Race',
- $0D, 'Sound',
- $0E, 'Acoustic Space',
- $0F, 'Skill',
- $10, 'Base Effect',
- $11, 'Script',
- $12, 'Landscape Texture',
- $13, 'Object Effect',
- $14, 'Actor Effect',
- $15, 'Activator',
- $16, 'Talking Activator',
- $17, 'Terminal',
- $18, 'Armor',
- $19, 'Book',
- $1A, 'Clothing',
- $1B, 'Container',
- $1C, 'Door',
- $1D, 'Ingredient',
- $1E, 'Light',
- $1F, 'Misc',
- $20, 'Static',
- $21, 'Static Collection',
- $22, 'Movable Static',
- $23, 'Placeable Water',
- $24, 'Grass',
- $25, 'Tree',
- $26, 'Flora',
- $27, 'Furniture',
- $28, 'Weapon',
- $29, 'Ammo',
- $2A, 'NPC',
- $2B, 'Creature',
- $2C, 'Leveled Creature',
- $2D, 'Leveled NPC',
- $2E, 'Key',
- $2F, 'Ingestible',
- $30, 'Idle Marker',
- $31, 'Note',
- $32, 'Constructible Object',
- $33, 'Projectile',
- $34, 'Leveled Item',
- $35, 'Weather',
- $36, 'Climate',
- $37, 'Region',
- $39, 'Cell',
- $3A, 'Placed Object',
- $3B, 'Placed Character',
- $3C, 'Placed Creature',
- $3E, 'Placed Grenade',
- $41, 'Worldspace',
- $42, 'Landscape',
- $43, 'Navigation Mesh',
- $45, 'Dialog Topic',
- $46, 'Dialog Response',
- $47, 'Quest',
- $48, 'Idle Animation',
- $49, 'Package',
- $4A, 'Combat Style',
- $4B, 'Load Screen',
- $4C, 'Leveled Spell',
- $4D, 'Animated Object',
- $4E, 'Water',
- $4F, 'Effect Shader',
- $51, 'Explosion',
- $52, 'Debris',
- $53, 'Image Space',
- $54, 'Image Space Modifier',
- $55, 'FormID List',
- $56, 'Perk',
- $57, 'Body Part Data',
- $58, 'Addon Node',
- $59, 'Actor Value Info',
- $5A, 'Radiation Stage',
- $5B, 'Camera Shot',
- $5C, 'Camera Path',
- $5D, 'Voice Type',
- $5E, 'Impact Data',
- $5F, 'Impact DataSet',
- $60, 'Armor Addon',
- $61, 'Encounter Zone',
- $62, 'Message',
- $63, 'Ragdoll',
- $64, 'Default Object Manager',
- $65, 'Lighting Template',
- $66, 'Music Type'
- ]);
-
- wbMenuModeEnum :=
- wbEnum([],[
- 1, 'Type: Character Interface',
- 2, 'Type: Other',
- 3, 'Type: Console',
- 1001, 'Specific: Message',
- 1002, 'Specific: Inventory',
- 1003, 'Specific: Stats',
- 1004, 'Specific: HUDMainMenu',
- 1007, 'Specific: Loading',
- 1008, 'Specific: Container',
- 1009, 'Specific: Dialog',
- 1012, 'Specific: Sleep/Wait',
- 1013, 'Specific: Pause',
- 1014, 'Specific: LockPick',
- 1016, 'Specific: Quantity',
- 1027, 'Specific: Level Up',
- 1035, 'Specific: Pipboy Repair',
- 1036, 'Specific: Race / Sex',
- 1047, 'Specific: Credits',
- 1048, 'Specific: CharGen',
- 1051, 'Specific: TextEdit',
- 1053, 'Specific: Barter',
- 1054, 'Specific: Surgery',
- 1055, 'Specific: Hacking',
- 1056, 'Specific: VATS',
- 1057, 'Specific: Computers',
- 1058, 'Specific: Vendor Repair',
- 1059, 'Specific: Tutorial',
- 1060, 'Specific: You''re SPECIAL book'
- ]);
-end;
-
-procedure DefineFO3b;
-begin
- wbMiscStatEnum :=
- wbEnum([
- 'Quests Completed',
- 'Locations Discovered',
- 'People Killed',
- 'Creatures Killed',
- 'Locks Picked',
- 'Computers Hacked',
- 'Stimpaks Taken',
- 'Rad-X Taken',
- 'RadAway Taken',
- 'Chems Taken',
- 'Times Addicted',
- 'Mines Disarmed',
- 'Speech Successes',
- 'Pockets Picked',
- 'Pants Exploded',
- 'Books Read',
- 'Bobbleheads Found',
- 'Weapons Created',
- 'People Mezzed',
- 'Captives Rescued',
- 'Sandman Kills',
- 'Paralyzing Punches',
- 'Robots Disabled',
- 'Contracts Completed',
- 'Corpses Eaten',
- 'Mysterious Stranger Visits'
- ]);
-
- wbAlignmentEnum :=
- wbEnum([
- 'Good',
- 'Neutral',
- 'Evil',
- 'Very Good',
- 'Very Evil'
- ]);
-
- wbAxisEnum :=
- wbEnum([], [
- 88, 'X',
- 89, 'Y',
- 90, 'Z'
- ]);
-
- wbCriticalStageEnum :=
- wbEnum([
- 'None',
- 'Goo Start',
- 'Goo End',
- 'Disintegrate Start',
- 'Disintegrate End'
- ]);
-
- wbSexEnum :=
- wbEnum(['Male','Female']);
-
- wbCreatureTypeEnum :=
- wbEnum([
- 'Animal',
- 'Mutated Animal',
- 'Mutated Insect',
- 'Abomination',
- 'Super Mutant',
- 'Feral Ghoul',
- 'Robot',
- 'Giant'
- ]);
-
- wbPlayerActionEnum :=
- wbEnum([
- '',
- 'Swinging Melee Weapon',
- 'Throwing Grenade',
- 'Fire Weapon',
- 'Lay Mine',
- 'Z Key Object',
- 'Jumping',
- 'Knocking over Objects',
- 'Stand on Table/Chair',
- 'Iron Sites',
- 'Destroying Object'
- ]);
-
- wbBodyLocationEnum :=
- wbEnum([
- 'Torso',
- 'Head 1',
- 'Head 2',
- 'Left Arm 1',
- 'Left Arm 2',
- 'Right Arm 1',
- 'Right Arm 2',
- 'Left Leg 1',
- 'Left Leg 2',
- 'Left Leg 3',
- 'Right Leg 1',
- 'Right Leg 2',
- 'Right Leg 3',
- 'Brain'
- ], [
- -1, 'None'
- ]);
-
-
- wbEFID := wbFormIDCk(EFID, 'Base Effect', [MGEF]);
-
- wbEFIT :=
- wbStructSK(EFIT, [3, 4], '', [
- wbInteger('Magnitude', itU32),
- wbInteger('Area', itU32),
- wbInteger('Duration', itU32),
- wbInteger('Type', itU32, wbEnum(['Self', 'Touch', 'Target'])),
- wbActorValue
- ], cpNormal, True, nil, -1, wbEFITAfterLoad);
-
- wbCTDA :=
- wbStruct(CTDA, 'Condition', [
- wbInteger('Type', itU8, wbCtdaTypeToStr, wbCtdaTypeToInt, cpNormal, False, nil, wbCtdaTypeAfterSet),
- wbByteArray('Unused', 3),
- wbUnion('Comparison Value', wbCTDACompValueDecider, [
- wbFloat('Comparison Value - Float'),
- wbFormIDCk('Comparison Value - Global', [GLOB])
- ]),
- wbInteger('Function', itU32, wbCTDAFunctionToStr, wbCTDAFunctionToInt), // Limited to itu16
- wbUnion('Parameter #1', wbCTDAParam1Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name (INVALID)', itS32),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Quest Stage (INVALID)', itS32),
- {09} wbInteger('Misc Stat', itU32, wbMiscStatEnum),
- {10} wbInteger('Alignment', itU32, wbAlignmentEnum),
- {11} wbInteger('Equip Type', itU32, wbEquipTypeEnum),
- {12} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {13} wbInteger('Critical Stage', itU32, wbCriticalStageEnum),
- {14} wbFormIDCkNoReach('Object Reference', [PLYR, REFR, ACHR, ACRE, PGRE, PMIS, PBEA, TRGT], True),
- {16} wbFormIDCkNoReach('Inventory Object', [ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, FLST]),
- {17} wbFormIDCkNoReach('Actor', [PLYR, ACHR, ACRE, TRGT], True),
- {18} wbFormIDCkNoReach('Voice Type', [VTYP]),
- {19} wbFormIDCkNoReach('Idle', [IDLE]),
- {20} wbFormIDCkNoReach('Form List', [FLST]),
- {21} wbFormIDCkNoReach('Note', [NOTE]),
- {22} wbFormIDCkNoReach('Quest', [QUST]),
- {23} wbFormIDCkNoReach('Faction', [FACT]),
- {24} wbFormIDCkNoReach('Weapon', [WEAP]),
- {25} wbFormIDCkNoReach('Cell', [CELL]),
- {26} wbFormIDCkNoReach('Class', [CLAS]),
- {27} wbFormIDCkNoReach('Race', [RACE]),
- {28} wbFormIDCkNoReach('Actor Base', [NPC_, CREA, ACTI, TACT]),
- {29} wbFormIDCkNoReach('Global', [GLOB]),
- {30} wbFormIDCkNoReach('Weather', [WTHR]),
- {31} wbFormIDCkNoReach('Package', [PACK]),
- {32} wbFormIDCkNoReach('Encounter Zone', [ECZN]),
- {33} wbFormIDCkNoReach('Perk', [PERK]),
- {34} wbFormIDCkNoReach('Owner', [FACT, NPC_]),
- {35} wbFormIDCkNoReach('Furniture', [FURN, FLST]),
- {36} wbFormIDCkNoReach('Effect Item', [SPEL, ENCH, ALCH, INGR]),
- {37} wbFormIDCkNoReach('Base Effect', [MGEF]),
- {38} wbFormIDCkNoReach('Worldspace', [WRLD]),
- {39} wbInteger('VATS Value Function', itU32, wbVATSValueFunctionEnum),
- {40} wbInteger('VATS Value Param (INVALID)', itU32),
- {41} wbInteger('Creature Type', itU32, wbCreatureTypeEnum),
- {42} wbInteger('Menu Mode', itU32, wbMenuModeEnum),
- {43} wbInteger('Player Action', itU32, wbPlayerActionEnum),
- {44} wbInteger('Body Location', itS32, wbBodyLocationEnum),
- {45} wbFormIDCkNoReach('Referenceable Object', [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, FLST, LVLC, LVLN],
- [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, LVLC, LVLN])
- ]),
- wbUnion('Parameter #2', wbCTDAParam2Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name', itS32, wbCTDAParam2VariableNameToStr, wbCTDAParam2VariableNameToInt),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Quest Stage', itS32, wbCTDAParam2QuestStageToStr, wbCTDAParam2QuestStageToInt),
- {09} wbInteger('Misc Stat', itU32, wbMiscStatEnum),
- {10} wbInteger('Alignment', itU32, wbAlignmentEnum),
- {11} wbInteger('Equip Type', itU32, wbEquipTypeEnum),
- {12} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {13} wbInteger('Critical Stage', itU32, wbCriticalStageEnum),
- {14} wbFormIDCkNoReach('Object Reference', [PLYR, REFR, PMIS, PBEA, ACHR, ACRE, PGRE, TRGT], True),
- {16} wbFormIDCkNoReach('Inventory Object', [ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, FLST]),
- {17} wbFormIDCkNoReach('Actor', [PLYR, ACHR, ACRE, TRGT], True),
- {18} wbFormIDCkNoReach('Voice Type', [VTYP]),
- {19} wbFormIDCkNoReach('Idle', [IDLE]),
- {20} wbFormIDCkNoReach('Form List', [FLST]),
- {21} wbFormIDCkNoReach('Note', [NOTE]),
- {22} wbFormIDCkNoReach('Quest', [QUST]),
- {23} wbFormIDCkNoReach('Faction', [FACT]),
- {24} wbFormIDCkNoReach('Weapon', [WEAP]),
- {25} wbFormIDCkNoReach('Cell', [CELL]),
- {26} wbFormIDCkNoReach('Class', [CLAS]),
- {27} wbFormIDCkNoReach('Race', [RACE]),
- {28} wbFormIDCkNoReach('Actor Base', [NPC_, CREA, ACTI, TACT]),
- {29} wbFormIDCkNoReach('Global', [GLOB]),
- {30} wbFormIDCkNoReach('Weather', [WTHR]),
- {31} wbFormIDCkNoReach('Package', [PACK]),
- {32} wbFormIDCkNoReach('Encounter Zone', [ECZN]),
- {33} wbFormIDCkNoReach('Perk', [PERK]),
- {34} wbFormIDCkNoReach('Owner', [FACT, NPC_]),
- {35} wbFormIDCkNoReach('Furniture', [FURN, FLST]),
- {36} wbFormIDCkNoReach('Effect Item', [SPEL, ENCH, ALCH, INGR]),
- {37} wbFormIDCkNoReach('Base Effect', [MGEF]),
- {38} wbFormIDCkNoReach('Worldspace', [WRLD]),
- {39} wbInteger('VATS Value Function (INVALID)', itU32),
- {40} wbUnion('VATS Value Param', wbCTDAParam2VATSValueParam, [
- wbFormIDCkNoReach('Weapon', [WEAP]),
- wbFormIDCkNoReach('Weapon List', [FLST], [WEAP]),
- wbFormIDCkNoReach('Target', [NPC_, CREA]),
- wbFormIDCkNoReach('Target List', [FLST], [NPC_, CREA]),
- wbByteArray('Unused', 4, cpIgnore),
- wbInteger('Target Part', itS32, wbActorValueEnum),
- wbInteger('VATS Action', itU32, wbEnum([
- 'Unarmed Attack',
- 'One Hand Melee Attack',
- 'Two Hand Melee Attack',
- 'Fire Pistol',
- 'Fire Rifle',
- 'Fire Handle Weapon',
- 'Fire Launcher',
- 'Throw Grenade',
- 'Place Mine',
- 'Reload',
- 'Crouch',
- 'Stand',
- 'Switch Weapon',
- 'Toggle Weapon Drawn',
- 'Heal',
- 'Player Death'
- ])),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Critical Effect', [SPEL]),
- wbFormIDCkNoReach('Critical Effect List', [FLST], [SPEL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbInteger('Weapon Type', itU32, wbWeaponAnimTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- {41} wbInteger('Creature Type', itU32, wbCreatureTypeEnum),
- {42} wbInteger('Menu Mode', itU32, wbMenuModeEnum),
- {43} wbInteger('Player Action', itU32, wbPlayerActionEnum),
- {44} wbInteger('Body Location', itS32, wbBodyLocationEnum),
- {45} wbFormIDCkNoReach('Referenceable Object', [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, FLST, LVLC, LVLN],
- [CREA, NPC_, PROJ, TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, LVLC, LVLN])
- ]),
- wbInteger('Run On', itU32, wbEnum([
- 'Subject',
- 'Target',
- 'Reference',
- 'Combat Target',
- 'Linked Reference'
- ]), cpNormal, False, nil, wbCTDARunOnAfterSet),
- wbUnion('Reference', wbCTDAReferenceDecider, [
- wbInteger('Unused', itU32, nil, cpIgnore),
- wbFormIDCkNoReach('Reference', [PLYR, ACHR, ACRE, REFR, PMIS, PBEA, PGRE], True)
- ])
- ], cpNormal, False, nil, 6, wbCTDAAfterLoad);
- wbCTDAs := wbRArray('Conditions', wbCTDA);
- wbCTDAsReq := wbRArray('Conditions', wbCTDA, cpNormal, True);
-
- wbEffects :=
- wbRStructs('Effects','Effect', [
- wbEFID,
- wbEFIT,
- wbCTDAs
- ], []);
-
- wbEffectsReq :=
- wbRStructs('Effects','Effect', [
- wbEFID,
- wbEFIT,
- wbCTDAs
- ], [], cpNormal, True);
-
-
- wbRecord(ALCH, 'Ingestible', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLReq,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbETYPReq,
- wbFloat(DATA, 'Weight', cpNormal, True),
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Value', itS32),
- wbInteger('Flags?', itU8, wbFlags([
- 'No Auto-Calc (Unused)',
- 'Food Item',
- 'Medicine'
- ])),
- wbByteArray('Unused', 3),
- wbFormIDCk('Withdrawal Effect', [SPEL, NULL]),
- wbFloat('Addiction Chance'),
- wbFormIDCk('Sound - Consume', [SOUN])
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(AMMO, 'Ammunition', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLReq,
- wbMODL,
- wbICON,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, 'Data', [
- wbFloat('Speed'),
- wbInteger('Flags', itU8, wbFlags([
- 'Ignores Normal Weapon Resistance',
- 'Non-Playable'
- ])),
- wbByteArray('Unused', 3),
- wbInteger('Value', itS32),
- wbInteger('Clip Rounds', itU8)
- ], cpNormal, True),
- wbString(ONAM, 'Short Name')
- ]);
-
- wbRecord(ANIO, 'Animated Object', [
- wbEDIDReq,
- wbMODLReq,
- wbFormIDCk(DATA, 'Animation', [IDLE], False, cpNormal, True)
- ]);
-
- wbBMDT := wbStruct(BMDT, 'Biped Data', [
- wbInteger('Biped Flags', itU32, wbFlags([
- {0x00000001} 'Head',
- {0x00000002} 'Hair',
- {0x00000004} 'Upper Body',
- {0x00000008} 'Left Hand',
- {0x00000010} 'Right Hand',
- {0x00000020} 'Weapon',
- {0x00000040} 'PipBoy',
- {0x00000080} 'Backpack',
- {0x00000100} 'Necklace',
- {0x00000200} 'Headband',
- {0x00000400} 'Hat',
- {0x00000800} 'Eye Glasses',
- {0x00001000} 'Nose Ring',
- {0x00002000} 'Earrings',
- {0x00004000} 'Mask',
- {0x00008000} 'Choker',
- {0x00010000} 'Mouth Object',
- {0x00020000} 'Body AddOn 1',
- {0x00040000} 'Body AddOn 2',
- {0x00080000} 'Body AddOn 3'
- ])),
- wbInteger('General Flags', itU8, wbFlags([
- {0x0001} '',
- {0x0002} '',
- {0x0004} '',
- {0x0008} '',
- {0x0010} '',
- {0x0020} 'Power Armor',
- {0x0040} 'Non-Playable',
- {0x0080} 'Heavy'
- ], True)),
- wbByteArray('Unused', 3)
- ], cpNormal, True);
-
- wbRecord(ARMO, 'Armor', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbSCRI,
- wbEITM,
- wbBMDT,
- wbRStruct('Male biped model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO2S
- ], []),
- wbString(ICON, 'Male icon filename'),
- wbString(MICO, 'Male mico filename'),
- wbRStruct('Female biped model', [
- wbString(MOD3, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO3S,
- wbMOSD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Female world model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO4S
- ], []),
- wbString(ICO2, 'Female icon filename'),
- wbString(MIC2, 'Female mico filename'),
- wbString(BMCT, 'Ragdoll Constraint Template'),
- wbDEST,
- wbREPL,
- wbBIPL,
- wbETYPReq,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itS32),
- wbInteger('Max Condition', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbStruct(DNAM, '', [
- wbInteger('AR', itS16, wbDiv(100)),
- wbInteger('Flags', itU16, wbFlags([
- 'Modulates Voice'
- ]))
- ], cpNormal, True)
- ]);
-
- wbRecord(ARMA, 'Armor Addon', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbBMDT,
- wbRStruct('Male biped model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore),
- wbMODS,
- wbMODD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO2S
- ], []),
- wbString(ICON, 'Male icon filename'),
- wbString(MICO, 'Male mico filename'),
- wbRStruct('Female biped model', [
- wbString(MOD3, 'Model Filename', 0, cpNormal, True),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO3S,
- wbMOSD
- ], [], cpNormal, False, nil, True),
- wbRStruct('Female world model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO4S
- ], []),
- wbString(ICO2, 'Female icon filename'),
- wbString(MIC2, 'Female mico filename'),
- wbETYPReq,
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itS32),
- wbInteger('Max Condition', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbStruct(DNAM, '', [
- wbInteger('AR', itS16, wbDiv(100)),
- wbInteger('Flags', itU16, wbFlags([
- 'Modulates Voice'
- ]))
- ], cpNormal, True)
- ]);
-
- wbRecord(BOOK, 'Book', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDESCReq,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, 'Data', [
- wbInteger('Flags', itU8, wbFlags([
- '',
- 'Can''t be Taken'
- ])),
- wbInteger('Skill', itS8, wbSkillEnum),
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbSPLO := wbFormIDCk(SPLO, 'Actor Effect', [SPEL]);
- wbSPLOs := wbRArrayS('Actor Effects', wbSPLO, cpNormal, False, nil, nil, wbActorTemplateUseActorEffectList);
-
- wbRecord(CELL, 'Cell', [
- wbEDID,
- wbFULL,
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Is Interior Cell',
- {0x02} 'Has water',
- {0x04} 'Invert Fast Travel behavior',
- {0x08} 'No LOD Water',
- {0x10} '',
- {0x20} 'Public place',
- {0x40} 'Hand changed',
- {0x80} 'Behave like exterior'
- ]), cpNormal, True),
- wbStruct(XCLC, 'Grid', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32),
- wbInteger('Force Hide Land', itU32, wbFlags([
- 'Quad 1',
- 'Quad 2',
- 'Quad 3',
- 'Quad 4'
- ], True))
- ], cpNormal, False, nil, 2),
- wbStruct(XCLL, 'Lighting', [
- wbStruct('Ambient Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Directional Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Fog Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fog Near'),
- wbFloat('Fog Far'),
- wbInteger('Directional Rotation XY', itS32),
- wbInteger('Directional Rotation Z', itS32),
- wbFloat('Directional Fade'),
- wbFloat('Fog Clip Dist'),
- wbFloat('Fog Power')
- ], cpNormal, False, nil, 7),
- wbArray(IMPF, 'Footstep Materials', wbString('Unknown', 30), [
- 'ConcSolid',
- 'ConcBroken',
- 'MetalSolid',
- 'MetalHollow',
- 'MetalSheet',
- 'Wood',
- 'Sand',
- 'Dirt',
- 'Grass',
- 'Water'
- ]),
- wbRStruct('Light Template', [
- wbFormIDCk(LTMP, 'Template', [LGTM, NULL]),
- wbInteger(LNAM, 'Inherit', itU32, wbFlags([
- {0x00000001}'Ambient Color',
- {0x00000002}'Directional Color',
- {0x00000004}'Fog Color',
- {0x00000008}'Fog Near',
- {0x00000010}'Fog Far',
- {0x00000020}'Directional Rotation',
- {0x00000040}'Directional Fade',
- {0x00000080}'Clip Distance',
- {0x00000100}'Fog Power'
- ]), cpNormal, True)
- ], [], cpNormal, True ),
- wbFloat(XCLW, 'Water Height'),
- wbString(XNAM, 'Water Noise Texture'),
- wbArrayS(XCLR, 'Regions', wbFormIDCk('Region', [REGN])),
- wbFormIDCk(XCIM, 'Image Space', [IMGS]),
- wbByteArray(XCET, 'Unknown', 1, cpIgnore),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbFormIDCk(XCCM, 'Climate', [CLMT]),
- wbFormIDCk(XCWT, 'Water', [WATR]),
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
- wbFormIDCk(XCAS, 'Acoustic Space', [ASPC]),
- wbByteArray(XCMT, 'Unused', 1, cpIgnore),
- wbFormIDCk(XCMO, 'Music Type', [MUSC])
- ], True, wbCellAddInfo, cpNormal, False, wbCELLAfterLoad);
-
- wbServiceFlags :=
- wbFlags([
- {0x00000001} 'Weapons',
- {0x00000002} 'Armor',
- {0x00000004} 'Alcohol',
- {0x00000008} 'Books',
- {0x00000010} 'Food',
- {0x00000020} 'Chems',
- {0x00000040} 'Stimpacks',
- {0x00000080} 'Lights?',
- {0x00000100} '',
- {0x00000200} '',
- {0x00000400} 'Miscellaneous',
- {0x00000800} '',
- {0x00001000} '',
- {0x00002000} 'Potions?',
- {0x00004000} 'Training',
- {0x00008000} '',
- {0x00010000} 'Recharge',
- {0x00020000} 'Repair'
- ]);
-
- wbSpecializationEnum := wbEnum(['Combat', 'Magic', 'Stealth']);
-
- wbRecord(CLAS, 'Class', [
- wbEDIDReq,
- wbFULLReq,
- wbDESCReq,
- wbICON,
- wbStruct(DATA, '', [
- wbArray('Tag Skills', wbInteger('Tag Skill', itS32, wbActorValueEnum), 4),
- wbInteger('Flags', itU32, wbFlags(['Playable', 'Guard'], True)),
- wbInteger('Buys/Sells and Services', itU32, wbServiceFlags),
- wbInteger('Teaches', itS8, wbSkillEnum),
- wbInteger('Maximum training level', itU8),
- wbByteArray('Unused', 2)
- ], cpNormal, True),
- wbArray(ATTR, 'Attributes', wbInteger('Attribute', itU8), [
- 'Strength',
- 'Perception',
- 'Endurance',
- 'Charisma',
- 'Intelligence',
- 'Agility',
- 'Luck'
- ], cpNormal, True)
- ]);
-end;
-
-procedure DefineFO3c;
-begin
- wbRecord(CLMT, 'Climate', [
- wbEDIDReq,
- wbArrayS(WLST, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR, NULL]),
- wbInteger('Chance', itS32),
- wbFormIDCk('Global', [GLOB, NULL])
- ])),
- wbString(FNAM, 'Sun Texture'),
- wbString(GNAM, 'Sun Glare Texture'),
- wbMODL,
- wbStruct(TNAM, 'Timing', [
- wbStruct('Sunrise', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbStruct('Sunset', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbInteger('Volatility', itU8),
- wbInteger('Moons / Phase Length', itU8, wbClmtMoonsPhaseLength)
- ], cpNormal, True)
- ]);
-
- wbCNTO :=
- wbRStructExSK([0], [1], 'Item', [
- wbStructExSK(CNTO, [0], [1], 'Item', [
- wbFormIDCk('Item', [ARMO, AMMO, MISC, WEAP, BOOK, LVLI, KEYM, ALCH, NOTE, MSTT{?}, STAT{?}]),
- wbInteger('Count', itS32)
- ]),
- wbCOED
- ], []);
-
- wbCNTOs := wbRArrayS('Items', wbCNTO);
-
- wbRecord(CONT, 'Container', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbCNTOs,
- wbDEST,
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags(['', 'Respawns'])),
- wbFloat('Weight')
- ], cpNormal, True),
- wbFormIDCk(SNAM, 'Sound - Open', [SOUN]),
- wbFormIDCk(QNAM, 'Sound - Close', [SOUN])
- ], True);
-
- wbCSDT := wbRStructSK([0], 'Sound Type', [
- wbInteger(CSDT, 'Type', itU32,wbEnum([
- {0x00} 'Left Foot',
- {0x01} 'Right Foot',
- {0x02} 'Left Back Foot',
- {0x03} 'Right Back Foot',
- {0x04} 'Idle',
- {0x05} 'Aware',
- {0x06} 'Attack',
- {0x07} 'Hit',
- {0x08} 'Death',
- {0x09} 'Weapon',
- {0x0A} 'Movement',
- {0x0B} 'Conscious'
- ])),
- wbRArrayS('Sounds', wbRStructSK([0], 'Sound', [
- wbFormIDCk(CSDI, 'Sound', [SOUN], False, cpNormal, True),
- wbInteger(CSDC, 'Sound Chance', itU8, nil, cpNormal, True)
- ], []), cpNormal, True)
- ], []);
-
- wbCSDTs := wbRArrayS('Sound Types', wbCSDT, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation);
-
- wbAgressionEnum := wbEnum([
- 'Unaggressive',
- 'Aggressive',
- 'Very Aggressive',
- 'Frenzied'
- ]);
-
- wbConfidenceEnum := wbEnum([
- 'Cowardly',
- 'Cautious',
- 'Average',
- 'Brave',
- 'Foolhardy'
- ]);
-
- wbMoodEnum := wbEnum([
- 'Neutral',
- 'Afraid',
- 'Annoyed',
- 'Cocky',
- 'Drugged',
- 'Pleasant',
- 'Angry',
- 'Sad'
- ]);
-
- wbAssistanceEnum := wbEnum([
- 'Helps Nobody',
- 'Helps Allies',
- 'Helps Friends and Allies'
- ]);
-
- wbAggroRadiusFlags := wbFlags([
- 'Aggro Radius Behavior'
- ]);
-
- wbAIDT :=
- wbStruct(AIDT, 'AI Data', [
- {00} wbInteger('Aggression', itU8, wbAgressionEnum),
- {01} wbInteger('Confidence', itU8, wbConfidenceEnum),
- {02} wbInteger('Energy Level', itU8),
- {03} wbInteger('Responsibility', itU8),
- {04} wbInteger('Mood', itU8, wbMoodEnum),
- wbByteArray('Unused', 3),
- {08} wbInteger('Buys/Sells and Services', itU32, wbServiceFlags),
- {0C} wbInteger('Teaches', itS8, wbSkillEnum),
- {0D} wbInteger('Maximum training level', itU8),
- {0E} wbInteger('Assistance', itS8, wbAssistanceEnum),
- {0F} wbInteger('Aggro Radius Behavior', itU8, wbAggroRadiusFlags),
- {10} wbInteger('Aggro Radius', itS32)
- ], cpNormal, True, wbActorTemplateUseAIData);
-
- wbAttackAnimationEnum :=
- wbEnum([
- ], [
- 26, 'AttackLeft',
- 27, 'AttackLeftUp',
- 28, 'AttackLeftDown',
- 29, 'AttackLeftIS',
- 30, 'AttackLeftISUp',
- 31, 'AttackLeftISDown',
- 32, 'AttackRight',
- 33, 'AttackRightUp',
- 34, 'AttackRightDown',
- 35, 'AttackRightIS',
- 36, 'AttackRightISUp',
- 37, 'AttackRightISDown',
- 38, 'Attack3',
- 39, 'Attack3Up',
- 40, 'Attack3Down',
- 41, 'Attack3IS',
- 42, 'Attack3ISUp',
- 43, 'Attack3ISDown',
- 44, 'Attack4',
- 45, 'Attack4Up',
- 46, 'Attack4Down',
- 47, 'Attack4IS',
- 48, 'Attack4ISUp',
- 49, 'Attack4ISDown',
- 50, 'Attack5',
- 51, 'Attack5Up',
- 52, 'Attack5Down',
- 53, 'Attack5IS',
- 54, 'Attack5ISUp',
- 55, 'Attack5ISDown',
- 56, 'Attack6',
- 57, 'Attack6Up',
- 58, 'Attack6Down',
- 59, 'Attack6IS',
- 60, 'Attack6ISUp',
- 61, 'Attack6ISDown',
- 62, 'Attack7',
- 63, 'Attack7Up',
- 64, 'Attack7Down',
- 65, 'Attack7IS',
- 66, 'Attack7ISUp',
- 67, 'Attack7ISDown',
- 68, 'Attack8',
- 69, 'Attack8Up',
- 70, 'Attack8Down',
- 71, 'Attack8IS',
- 72, 'Attack8ISUp',
- 73, 'Attack8ISDown',
- 74, 'AttackLoop',
- 75, 'AttackLoopUp',
- 76, 'AttackLoopDown',
- 77, 'AttackLoopIS',
- 78, 'AttackLoopISUp',
- 79, 'AttackLoopISDown',
- 80, 'AttackSpin',
- 81, 'AttackSpinUp',
- 82, 'AttackSpinDown',
- 83, 'AttackSpinIS',
- 84, 'AttackSpinISUp',
- 85, 'AttackSpinISDown',
- 86, 'AttackSpin2',
- 87, 'AttackSpin2Up',
- 88, 'AttackSpin2Down',
- 89, 'AttackSpin2IS',
- 90, 'AttackSpin2ISUp',
- 91, 'AttackSpin2ISDown',
- 92, 'AttackPower',
- 93, 'AttackForwardPower',
- 94, 'AttackBackPower',
- 95, 'AttackLeftPower',
- 96, 'AttackRightPower',
- 97, 'PlaceMine',
- 98, 'PlaceMineUp',
- 99, 'PlaceMineDown',
- 100, 'PlaceMineIS',
- 101, 'PlaceMineISUp',
- 102, 'PlaceMineISDown',
- 103, 'PlaceMine2',
- 104, 'PlaceMine2Up',
- 105, 'PlaceMine2Down',
- 106, 'PlaceMine2IS',
- 107, 'PlaceMine2ISUp',
- 108, 'PlaceMine2ISDown',
- 109, 'AttackThrow',
- 110, 'AttackThrowUp',
- 111, 'AttackThrowDown',
- 112, 'AttackThrowIS',
- 113, 'AttackThrowISUp',
- 114, 'AttackThrowISDown',
- 115, 'AttackThrow2',
- 116, 'AttackThrow2Up',
- 117, 'AttackThrow2Down',
- 118, 'AttackThrow2IS',
- 119, 'AttackThrow2ISUp',
- 120, 'AttackThrow2ISDown',
- 121, 'AttackThrow3',
- 122, 'AttackThrow3Up',
- 123, 'AttackThrow3Down',
- 124, 'AttackThrow3IS',
- 125, 'AttackThrow3ISUp',
- 126, 'AttackThrow3ISDown',
- 127, 'AttackThrow4',
- 128, 'AttackThrow4Up',
- 129, 'AttackThrow4Down',
- 130, 'AttackThrow4IS',
- 131, 'AttackThrow4ISUp',
- 132, 'AttackThrow4ISDown',
- 133, 'AttackThrow5',
- 134, 'AttackThrow5Up',
- 135, 'AttackThrow5Down',
- 136, 'AttackThrow5IS',
- 137, 'AttackThrow5ISUp',
- 138, 'AttackThrow5ISDown',
-
- 167, 'PipBoy',
- 178, 'PipBoyChild',
-
- 255, ' ANY'
- ]);
-
- wbImpactMaterialTypeEnum :=
- wbEnum([
- 'Stone',
- 'Dirt',
- 'Grass',
- 'Glass',
- 'Metal',
- 'Wood',
- 'Organic',
- 'Cloth',
- 'Water',
- 'Hollow Metal',
- 'Organic Bug',
- 'Organic Glow'
- ]);
-
- wbTemplateFlags := wbFlags([
- 'Use Traits',
- 'Use Stats',
- 'Use Factions',
- 'Use Actor Effect List',
- 'Use AI Data',
- 'Use AI Packages',
- 'Use Model/Animation',
- 'Use Base Data',
- 'Use Inventory',
- 'Use Script'
- ]);
-
- wbRecord(CREA, 'Creature', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLActor,
- wbMODLActor,
- wbSPLOs,
- wbFormIDCk(EITM, 'Unarmed Attack Effect', [ENCH, SPEL], False, cpNormal, False, wbActorTemplateUseActorEffectList),
- wbInteger(EAMT, 'Unarmed Attack Animation', itU16, wbAttackAnimationEnum, cpNormal, True, False, wbActorTemplateUseActorEffectList),
- wbArrayS(NIFZ, 'Model List', wbStringLC('Model'), 0, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbByteArray(NIFT, 'Texture Files Hashes', 0, cpIgnore, False, False, wbActorTemplateUseModelAnimation),
- wbStruct(ACBS, 'Configuration', [
- {00} wbInteger('Flags', itU32, wbFlags([
- {0x000001} 'Biped',
- {0x000002} 'Essential',
- {0x000004} 'Weapon & Shield?',
- {0x000008} 'Respawn',
- {0x000010} 'Swims',
- {0x000020} 'Flies',
- {0x000040} 'Walks',
- {0x000080} 'PC Level Mult',
- {0x000100} 'Unknown 8',
- {0x000200} 'No Low Level Processing',
- {0x000400} '',
- {0x000800} 'No Blood Spray',
- {0x001000} 'No Blood Decal',
- {0x002000} '',
- {0x004000} '',
- {0x008000} 'No Head',
- {0x010000} 'No Right Arm',
- {0x020000} 'No Left Arm',
- {0x040000} 'No Combat in Water',
- {0x080000} 'No Shadow',
- {0x100000} 'No VATS Melee',
- {0x00200000} 'Allow PC Dialogue',
- {0x00400000} 'Can''t Open Doors',
- {0x00800000} 'Immobile',
- {0x01000000} 'Tilt Front/Back',
- {0x02000000} 'Tilt Left/Right',
- {0x03000000} 'No Knockdowns',
- {0x08000000} 'Not Pushable',
- {0x10000000} 'Allow Pickpocket',
- {0x20000000} 'Is Ghost',
- {0x40000000} 'No Rotating To Head-track',
- {0x80000000} 'Invulnerable'
- ], [
- {0x000001 Biped} wbActorTemplateUseModelAnimation,
- {0x000002 Essential} wbActorTemplateUseBaseData,
- {0x000004 Weapon & Shield} nil,
- {0x000008 Respawn} wbActorTemplateUseBaseData,
- {0x000010 Swims} wbActorTemplateUseModelAnimation,
- {0x000020 Flies} wbActorTemplateUseModelAnimation,
- {0x000040 Walks} wbActorTemplateUseModelAnimation,
- {0x000080 PC Level Mult} wbActorTemplateUseStats,
- {0x000100 Unknown 8} nil,
- {0x000200 No Low Level Processing} wbActorTemplateUseBaseData,
- {0x000400 } nil,
- {0x000800 No Blood Spray} wbActorTemplateUseModelAnimation,
- {0x001000 No Blood Decal} wbActorTemplateUseModelAnimation,
- {0x002000 } nil,
- {0x004000 } nil,
- {0x008000 No Head} wbActorTemplateUseModelAnimation,
- {0x010000 No Right Arm} wbActorTemplateUseModelAnimation,
- {0x020000 No Left Arm} wbActorTemplateUseModelAnimation,
- {0x040000 No Combat in Water} wbActorTemplateUseModelAnimation,
- {0x080000 No Shadow} wbActorTemplateUseModelAnimation,
- {0x100000 No VATS Melee} nil,
- {0x00200000 Allow PC Dialogue} wbActorTemplateUseBaseData,
- {0x00400000 Can''t Open Doors} wbActorTemplateUseBaseData,
- {0x00800000 Immobile} wbActorTemplateUseModelAnimation,
- {0x01000000 Tilt Front/Back} wbActorTemplateUseModelAnimation,
- {0x02000000 Tilt Left/Right} wbActorTemplateUseModelAnimation,
- {0x03000000 No Knockdowns} nil,
- {0x08000000 Not Pushable} wbActorTemplateUseModelAnimation,
- {0x10000000 Allow Pickpocket} wbActorTemplateUseBaseData,
- {0x20000000 Is Ghost} nil,
- {0x40000000 No Rotating To Head-track} wbActorTemplateUseModelAnimation,
- {0x80000000 Invulnerable} nil
- ])),
- {04} wbInteger('Fatigue', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {06} wbInteger('Barter gold', itU16, nil, cpNormal, False, wbActorTemplateUseAIData),
- {08} wbUnion('Level', wbCreaLevelDecider, [
- wbInteger('Level', itS16, nil, cpNormal, False, wbActorTemplateUseStats),
- wbInteger('Level Mult', itS16, wbDiv(1000), cpNormal, False, wbActorTemplateUseStats)
- ], cpNormal, False, wbActorTemplateUseStats),
- {10} wbInteger('Calc min', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {12} wbInteger('Calc max', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {14} wbInteger('Speed Multiplier', itU16, nil, cpNormal, False, wbActorTemplateUseStats),
- {16} wbFloat('Karma (Alignment)', cpNormal, False, 1, -1, wbActorTemplateUseTraits),
- {20} wbInteger('Disposition Base', itS16, nil, cpNormal, False, wbActorTemplateUseTraits),
- {22} wbInteger('Template Flags', itU16, wbTemplateFlags)
- ], cpNormal, True),
- wbRArrayS('Factions',
- wbStructSK(SNAM, [0], 'Faction', [
- wbFormIDCk('Faction', [FACT]),
- wbInteger('Rank', itU8),
- wbByteArray('Unused', 3)
- ]),
- cpNormal, False, nil, nil, wbActorTemplateUseFactions),
- wbFormIDCk(INAM, 'Death item', [LVLI], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(VTCK, 'Voice', [VTYP], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(TPLT, 'Template', [CREA, LVLC]),
- wbDESTActor,
- wbSCRIActor,
- wbRArrayS('Items', wbCNTO, cpNormal, False, nil, nil, wbActorTemplateUseInventory),
- wbAIDT,
- wbRArray('Packages', wbFormIDCk(PKID, 'Package', [PACK]), cpNormal, False, nil, nil, wbActorTemplateUseAIPackages),
- wbArrayS(KFFZ, 'Animations', wbStringLC('Animation'), 0, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbStruct(DATA, '', [
- {00} wbInteger('Type', itU8, wbCreatureTypeEnum, cpNormal, False, wbActorTemplateUseTraits),
- {01} wbInteger('Combat Skill', itU8, nil, cpNormal, False, wbActorTemplateUseStats),
- {02} wbInteger('Magic Skill', itU8, nil, cpNormal, False, wbActorTemplateUseStats),
- {03} wbInteger('Stealth Skill', itU8, nil, cpNormal, False, wbActorTemplateUseStats),
- {04} wbInteger('Health', itS16, nil, cpNormal, False, wbActorTemplateUseStats),
- {06} wbByteArray('Unused', 2),
- {08} wbInteger('Damage', itS16, nil, cpNormal, False, wbActorTemplateUseStats),
- {10} wbArray('Attributes', wbInteger('Attribute', itU8), [
- 'Strength',
- 'Perception',
- 'Endurance',
- 'Charisma',
- 'Intelligence',
- 'Agility',
- 'Luck'
- ], cpNormal, False, wbActorTemplateUseStats)
- ], cpNormal, True),
- wbInteger(RNAM, 'Attack reach', itU8, nil, cpNormal, True, False, wbActorTemplateUseTraits),
- wbFormIDCk(ZNAM, 'Combat Style', [CSTY], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(PNAM, 'Body Part Data', [BPTD], False, cpNormal, True, wbActorTemplateUseModelAnimation),
- wbFloat(TNAM, 'Turning Speed', cpNormal, True, 1, -1, wbActorTemplateUseStats),
- wbFloat(BNAM, 'Base Scale', cpNormal, True, 1, -1, wbActorTemplateUseStats),
- wbFloat(WNAM, 'Foot Weight', cpNormal, True, 1, -1, wbActorTemplateUseStats),
- wbInteger(NAM4, 'Impact Material Type', itU32, wbImpactMaterialTypeEnum, cpNormal, True, False, wbActorTemplateUseModelAnimation),
- wbInteger(NAM5, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True, False, wbActorTemplateUseModelAnimation),
- wbFormIDCk(CSCR, 'Inherits Sounds from', [CREA], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbCSDTs,
- wbFormIDCk(CNAM, 'Impact Dataset', [IPDS], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbFormIDCk(LNAM, 'Melee Weapon List', [FLST], False, cpNormal, False, wbActorTemplateUseTraits)
- ], True);
-
-end;
-
-procedure DefineFO3d;
-begin
- wbRecord(CSTY, 'Combat Style', [
- wbEDIDReq,
- wbStruct(CSTD, 'Advanced - Standard', [
- {000}wbInteger('Maneuver Decision - Dodge % Chance', itU8),
- {001}wbInteger('Maneuver Decision - Left/Right % Chance', itU8),
- {002}wbByteArray('Unused', 2),
- {004}wbFloat('Maneuver Decision - Dodge L/R Timer (min)'),
- {008}wbFloat('Maneuver Decision - Dodge L/R Timer (max)'),
- {012}wbFloat('Maneuver Decision - Dodge Forward Timer (min)'),
- {016}wbFloat('Maneuver Decision - Dodge Forward Timer (max)'),
- {020}wbFloat('Maneuver Decision - Dodge Back Timer Min'),
- {024}wbFloat('Maneuver Decision - Dodge Back Timer Max'),
- {028}wbFloat('Maneuver Decision - Idle Timer min'),
- {032}wbFloat('Maneuver Decision - Idle Timer max'),
- {036}wbInteger('Melee Decision - Block % Chance', itU8),
- {037}wbInteger('Melee Decision - Attack % Chance', itU8),
- {038}wbByteArray('Unused', 2),
- {040}wbFloat('Melee Decision - Recoil/Stagger Bonus to Attack'),
- {044}wbFloat('Melee Decision - Unconscious Bonus to Attack'),
- {048}wbFloat('Melee Decision - Hand-To-Hand Bonus to Attack'),
- {052}wbInteger('Melee Decision - Power Attacks - Power Attack % Chance', itU8),
- {053}wbByteArray('Unused', 3),
- {056}wbFloat('Melee Decision - Power Attacks - Recoil/Stagger Bonus to Power'),
- {060}wbFloat('Melee Decision - Power Attacks - Unconscious Bonus to Power Attack'),
- {064}wbInteger('Melee Decision - Power Attacks - Normal', itU8),
- {065}wbInteger('Melee Decision - Power Attacks - Forward', itU8),
- {066}wbInteger('Melee Decision - Power Attacks - Back', itU8),
- {067}wbInteger('Melee Decision - Power Attacks - Left', itU8),
- {068}wbInteger('Melee Decision - Power Attacks - Right', itU8),
- {069}wbByteArray('Unused', 3),
- {072}wbFloat('Melee Decision - Hold Timer (min)'),
- {076}wbFloat('Melee Decision - Hold Timer (max)'),
- {080}wbInteger('Flags', itU16, wbFlags([
- 'Choose Attack using % Chance',
- 'Melee Alert OK',
- 'Flee Based on Personal Survival',
- '',
- 'Ignore Threats',
- 'Ignore Damaging Self',
- 'Ignore Damaging Group',
- 'Ignore Damaging Spectators',
- 'Cannot Use Stealthboy'
- ])),
- {082}wbByteArray('Unused', 2),
- {085}wbInteger('Maneuver Decision - Acrobatic Dodge % Chance', itU8),
- {085}wbInteger('Melee Decision - Power Attacks - Rushing Attack % Chance', itU8),
- {086}wbByteArray('Unused', 2),
- {088}wbFloat('Melee Decision - Power Attacks - Rushing Attack Distance Mult')
- ], cpNormal, True),
- wbStruct(CSAD, 'Advanced - Advanced', [
- wbFloat('Dodge Fatigue Mod Mult'),
- wbFloat('Dodge Fatigue Mod Base'),
- wbFloat('Encumb. Speed Mod Base'),
- wbFloat('Encumb. Speed Mod Mult'),
- wbFloat('Dodge While Under Attack Mult'),
- wbFloat('Dodge Not Under Attack Mult'),
- wbFloat('Dodge Back While Under Attack Mult'),
- wbFloat('Dodge Back Not Under Attack Mult'),
- wbFloat('Dodge Forward While Attacking Mult'),
- wbFloat('Dodge Forward Not Attacking Mult'),
- wbFloat('Block Skill Modifier Mult'),
- wbFloat('Block Skill Modifier Base'),
- wbFloat('Block While Under Attack Mult'),
- wbFloat('Block Not Under Attack Mult'),
- wbFloat('Attack Skill Modifier Mult'),
- wbFloat('Attack Skill Modifier Base'),
- wbFloat('Attack While Under Attack Mult'),
- wbFloat('Attack Not Under Attack Mult'),
- wbFloat('Attack During Block Mult'),
- wbFloat('Power Att. Fatigue Mod Base'),
- wbFloat('Power Att. Fatigue Mod Mult')
- ], cpNormal, True),
- wbStruct(CSSD, 'Simple', [
- {00} wbFloat('Cover Search Radius'),
- {04} wbFloat('Take Cover Chance'),
- {08} wbFloat('Wait Timer (min)'),
- {12} wbFloat('Wait Timer (max)'),
- {16} wbFloat('Wait to Fire Timer (min)'),
- {20} wbFloat('Wait to Fire Timer (max)'),
- {24} wbFloat('Fire Timer (min)'),
- {28} wbFloat('Fire Timer (max)'),
- {32} wbFloat('Ranged Weapon Range Mult (min)'),
- {36} wbByteArray('Unused', 4),
- {40} wbInteger('Weapon Restrictions', itU32, wbEnum([
- 'None',
- 'Melee Only',
- 'Ranged Only'
- ])),
- {44} wbFloat('Ranged Weapon Range Mult (max)'),
- {48} wbFloat('Max Targeting FOV'),
- {52} wbFloat('Combat Radius'),
- {56} wbFloat('Semi-Auto Firing Delay Mult (min)'),
- {60} wbFloat('Semi-Auto Firing Delay Mult (max)')
- ], cpNormal, True)
- ]);
-
- wbRecord(DIAL, 'Dialog Topic', [
- wbEDIDReq,
- wbRArrayS('Quests', wbFormIDCkNoReach(QSTI, 'Quest', [QUST], False, cpBenign)),
- wbRArrayS('Quests?', wbFormIDCkNoReach(QSTR, 'Quest?', [QUST], False, cpBenign)),
- wbFULL,
- wbFloat(PNAM, 'Priority', cpNormal, True, 1, -1, nil, nil, 50.0),
- wbStruct(DATA, '', [
- wbInteger('Type', itU8, wbEnum([
- {0} 'Topic',
- {1} 'Conversation',
- {2} 'Combat',
- {3} 'Persuasion',
- {4} 'Detection',
- {5} 'Service',
- {6} 'Miscellaneous',
- {7} 'Radio'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Rumors',
- 'Top-level'
- ]))
- ], cpNormal, True, nil, 1)
- ], True);
-
- wbRecord(DOOR, 'Door', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbSCRI,
- wbDEST,
- wbFormIDCk(SNAM, 'Sound - Open', [SOUN]),
- wbFormIDCk(ANAM, 'Sound - Close', [SOUN]),
- wbFormIDCk(BNAM, 'Sound - Looping', [SOUN]),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- '',
- 'Automatic Door',
- 'Hidden',
- 'Minimal Use',
- 'Sliding Door'
- ]), cpNormal, True)
- ]);
-
- wbBlendModeEnum := wbEnum([
- '',
- 'Zero',
- 'One',
- 'Source Color',
- 'Source Inverse Color',
- 'Source Alpha',
- 'Source Inverted Alpha',
- 'Dest Alpha',
- 'Dest Inverted Alpha',
- 'Dest Color',
- 'Dest Inverse Color',
- 'Source Alpha SAT'
- ]);
-
- wbBlendOpEnum := wbEnum([
- '',
- 'Add',
- 'Subtract',
- 'Reverse Subtract',
- 'Minimum',
- 'Maximum'
- ]);
- wbZTestFuncEnum := wbEnum([
- '',
- '',
- '',
- 'Equal To',
- 'Normal',
- 'Greater Than',
- '',
- 'Greater Than or Equal Than',
- 'Always Show'
- ]);
-
- wbRecord(EFSH, 'Effect Shader', [
- wbEDID,
- wbString(ICON, 'Fill Texture'),
- wbString(ICO2, 'Particle Shader Texture'),
- wbString(NAM7, 'Holes Texture'),
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0} 'No Membrane Shader',
- {1} '',
- {2} '',
- {3} 'No Particle Shader',
- {4} 'Edge Effect - Inverse',
- {5} 'Membrane Shader - Affect Skin Only'
- ])),
- wbByteArray('Unused', 3),
- wbInteger('Membrane Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Membrane Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Membrane Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbStruct('Fill/Texture Effect - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fill/Texture Effect - Alpha Fade In Time'),
- wbFloat('Fill/Texture Effect - Full Alpha Time'),
- wbFloat('Fill/Texture Effect - Alpha Fade Out Time'),
- wbFloat('Fill/Texture Effect - Presistent Alpha Ratio'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Amplitude'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Frequency'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (U)'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (V)'),
- wbFloat('Edge Effect - Fall Off'),
- wbStruct('Edge Effect - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Edge Effect - Alpha Fade In Time'),
- wbFloat('Edge Effect - Full Alpha Time'),
- wbFloat('Edge Effect - Alpha Fade Out Time'),
- wbFloat('Edge Effect - Persistent Alpha Ratio'),
- wbFloat('Edge Effect - Alpha Pulse Amplitude'),
- wbFloat('Edge Effect - Alpha Pusle Frequence'),
- wbFloat('Fill/Texture Effect - Full Alpha Ratio'),
- wbFloat('Edge Effect - Full Alpha Ratio'),
- wbInteger('Membrane Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Particle Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbInteger('Particle Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbFloat('Particle Shader - Particle Birth Ramp Up Time'),
- wbFloat('Particle Shader - Full Particle Birth Time'),
- wbFloat('Particle Shader - Particle Birth Ramp Down Time'),
- wbFloat('Particle Shader - Full Particle Birth Ratio'),
- wbFloat('Particle Shader - Persistant Particle Birth Ratio'),
- wbFloat('Particle Shader - Particle Lifetime'),
- wbFloat('Particle Shader - Particle Lifetime +/-'),
- wbFloat('Particle Shader - Initial Speed Along Normal'),
- wbFloat('Particle Shader - Acceleration Along Normal'),
- wbFloat('Particle Shader - Initial Velocity #1'),
- wbFloat('Particle Shader - Initial Velocity #2'),
- wbFloat('Particle Shader - Initial Velocity #3'),
- wbFloat('Particle Shader - Acceleration #1'),
- wbFloat('Particle Shader - Acceleration #2'),
- wbFloat('Particle Shader - Acceleration #3'),
- wbFloat('Particle Shader - Scale Key 1'),
- wbFloat('Particle Shader - Scale Key 2'),
- wbFloat('Particle Shader - Scale Key 1 Time'),
- wbFloat('Particle Shader - Scale Key 2 Time'),
- wbStruct('Color Key 1 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Color Key 2 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Color Key 3 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Color Key 1 - Color Alpha'),
- wbFloat('Color Key 2 - Color Alpha'),
- wbFloat('Color Key 3 - Color Alpha'),
- wbFloat('Color Key 1 - Color Key Time'),
- wbFloat('Color Key 2 - Color Key Time'),
- wbFloat('Color Key 3 - Color Key Time'),
- wbFloat('Particle Shader - Initial Speed Along Normal +/-'),
- wbFloat('Particle Shader - Initial Rotation (deg)'),
- wbFloat('Particle Shader - Initial Rotation (deg) +/-'),
- wbFloat('Particle Shader - Rotation Speed (deg/sec)'),
- wbFloat('Particle Shader - Rotation Speed (deg/sec) +/-'),
- wbFormIDCk('Addon Models', [DEBR, NULL]),
- wbFloat('Holes - Start Time'),
- wbFloat('Holes - End Time'),
- wbFloat('Holes - Start Val'),
- wbFloat('Holes - End Val'),
- wbFloat('Edge Width (alpha units)'),
- wbStruct('Edge Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Explosion Wind Speed'),
- wbInteger('Texture Count U', itU32),
- wbInteger('Texture Count V', itU32),
- wbFloat('Addon Models - Fade In Time'),
- wbFloat('Addon Models - Fade Out Time'),
- wbFloat('Addon Models - Scale Start'),
- wbFloat('Addon Models - Scale End'),
- wbFloat('Addon Models - Scale In Time'),
- wbFloat('Addon Models - Scale Out Time')
- ], cpNormal, True, nil, 57)
- ], False, nil, cpNormal, False, wbEFSHAfterLoad);
-
- wbRecord(ENCH, 'Object Effect', [
- wbEDIDReq,
- wbFULL,
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Type', itU32, wbEnum([
- {0} '',
- {1} '',
- {2} 'Weapon',
- {3} 'Apparel'
- ])),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbInteger('Flags', itU8, wbFlags([
- 'No Auto-Calc',
- '',
- 'Hide Effect'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(EYES, 'Eyes', [
- wbEDIDReq,
- wbFULLReq,
- wbString(ICON, 'Texture', 0{, cpNormal, True??}),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Playable',
- 'Not Male',
- 'Not Female'
- ]), cpNormal, True)
- ]);
-
- wbXNAM :=
- wbStructSK(XNAM, [0], 'Relation', [
- wbFormIDCkNoReach('Faction', [FACT, RACE]),
- wbInteger('Modifier', itS32),
- wbInteger('Group Combat Reaction', itU32, wbEnum([
- 'Neutral',
- 'Enemy',
- 'Ally',
- 'Friend'
- ]))
- ]);
-
- wbXNAMs := wbRArrayS('Relations', wbXNAM);
-
- wbRecord(FACT, 'Faction', [
- wbEDIDReq,
- wbFULL,
- wbXNAMs,
- wbStruct(DATA, '', [
- wbInteger('Flags 1', itU8, wbFlags([
- 'Hidden from PC',
- 'Evil',
- 'Special Combat'
- ])),
- wbInteger('Flags 2', itU8, wbFlags([
- 'Track Crime',
- 'Allow Sell'
- ])),
- wbByteArray('Unused', 2)
- ], cpNormal, True, nil, 1),
- wbFloat(CNAM, 'Unused'),
- wbRStructsSK('Ranks', 'Rank', [0], [
- wbInteger(RNAM, 'Rank#', itS32),
- wbString(MNAM, 'Male', 0, cpTranslate),
- wbString(FNAM, 'Female', 0, cpTranslate),
- wbString(INAM, 'Insignia (Unused)')
- ], [])
- ], False, nil, cpNormal, False, wbFACTAfterLoad);
-
- wbRecord(FURN, 'Furniture', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbSCRI,
- wbDEST,
- wbByteArray(MNAM, 'Marker Flags', 0, cpNormal, True)
- ]);
-
- wbRecord(GLOB, 'Global', [
- wbEDIDReq,
- wbInteger(FNAM, 'Type', itU8, wbGLOBFNAM, nil, cpNormal, True),
- wbFloat(FLTV, 'Value', cpNormal, True)
- ]);
-
-
- wbRecord(GMST, 'Game Setting', [
- wbString(EDID, 'Editor ID', 0, cpCritical, True, nil, wbGMSTEDIDAfterSet),
- wbUnion(DATA, 'Value', wbGMSTUnionDecider, [
- wbString('', 0, cpTranslate),
- wbInteger('', itS32),
- wbFloat('')
- ], cpNormal, True)
- ]);
-
- wbDODT := wbStruct(DODT, 'Decal Data', [
- wbFloat('Min Width'),
- wbFloat('Max Width'),
- wbFloat('Min Height'),
- wbFloat('Max Height'),
- wbFloat('Depth'),
- wbFloat('Shininess'),
- wbStruct('Parallax', [
- wbFloat('Scale'),
- wbInteger('Passes', itU8)
- ]),
- wbInteger('Flags', itU8, wbFlags([
- 'Parallax',
- 'Alpha - Blending',
- 'Alpha - Testing'
- ], True)),
- wbByteArray('Unused', 2),
- wbStruct('Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]);
-
- wbRecord(TXST, 'Texture Set', [
- wbEDIDReq,
- wbOBNDReq,
- wbRStruct('Textures (RGB/A)', [
- wbString(TX00,'Base Image / Transparency'),
- wbString(TX01,'Normal Map / Specular'),
- wbString(TX02,'Environment Map Mask / ?'),
- wbString(TX03,'Glow Map / Unused'),
- wbString(TX04,'Parallax Map / Unused'),
- wbString(TX05,'Environment Map / Unused')
- ], []),
- wbDODT,
- wbInteger(DNAM, 'Flags', itU16, wbFlags([
- 'No Specular Map'
- ]), cpNormal, True)
- ]);
-
- wbRecord(MICN, 'Menu Icon', [
- wbEDIDReq,
- wbICONReq
- ]);
-
- wbRecord(HDPT, 'Head Part', [
- wbEDIDReq,
- wbFULLReq,
- wbMODL,
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Playable'
- ]), cpNormal, True),
- wbRArrayS('Extra Parts',
- wbFormIDCk(HNAM, 'Part', [HDPT])
- )
- ]);
-
- wbRecord(ASPC, 'Acoustic Space', [
- wbEDIDReq,
- wbOBNDReq,
- wbFormIDCk(SNAM, 'Sound - Looping', [SOUN]),
- wbFormIDCk(RDAT, 'Use Sound from Region (Interiors Only)', [REGN]),
- wbInteger(ANAM, 'Environment Type', itU32, wbEnum([
- 'None',
- 'Default',
- 'Generic',
- 'Padded Cell',
- 'Room',
- 'Bathroom',
- 'Livingroom',
- 'Stone Room',
- 'Auditorium',
- 'Concerthall',
- 'Cave',
- 'Arena',
- 'Hangar',
- 'Carpeted Hallway',
- 'Hallway',
- 'Stone Corridor',
- 'Alley',
- 'Forest',
- 'City',
- 'Mountains',
- 'Quarry',
- 'Plain',
- 'Parkinglot',
- 'Sewerpipe',
- 'Underwater',
- 'Small Room',
- 'Medium Room',
- 'Large Room',
- 'Medium Hall',
- 'Large Hall',
- 'Plate'
- ]), cpNormal, True)
- ]);
-
- wbRecord(TACT, 'Talking Activator', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbSCRI,
- wbDEST,
- wbFormIDCk(SNAM, 'Sound', [SOUN]),
- wbFormIDCk(VNAM, 'Voice Type', [VTYP])
- ]);
-
- wbRecord(SCPT, 'Script', [
- wbEDIDReq,
- wbSCHRReq,
- wbByteArray(SCDA, 'Compiled Script'),
- wbStringScript(SCTX, 'Script Source', 0, cpNormal{, True}),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical, True)
- ], [])),
- wbSCROs
- ]);
-
- wbRecord(TERM, 'Terminal', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbDEST,
- wbDESCReq,
- wbFormIDCk(SNAM, 'Sound - Looping', [SOUN]),
- wbFormIDCk(PNAM, 'Password Note', [NOTE]),
- wbStruct(DNAM, '', [
- wbInteger('Base Hacking Difficulty', itU8, wbEnum([
- 'Very Easy',
- 'Easy',
- 'Average',
- 'Hard',
- 'Very Hard',
- 'Requires Key'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Leveled',
- 'Unlocked',
- 'Alternate Colors',
- 'Hide Welcome Text when displaying Image'
- ])),
- wbInteger('ServerType', itU8, wbEnum([
- '-Server 1-',
- '-Server 2-',
- '-Server 3-',
- '-Server 4-',
- '-Server 5-',
- '-Server 6-',
- '-Server 7-',
- '-Server 8-',
- '-Server 9-',
- '-Server 10-'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbRArray('Menu Items',
- wbRStruct('Menu Item', [
- wbString(ITXT, 'Item Text'),
- wbString(RNAM, 'Result Text', 0, cpNormal, True),
- wbInteger(ANAM, 'Flags', itU8, wbFlags([
- 'Add Note',
- 'Force Redraw'
- ]), cpNormal, True),
- wbFormIDCk(INAM, 'Display Note', [NOTE]),
- wbFormIDCk(TNAM, 'Sub Menu', [TERM]),
- wbEmbeddedScriptReq,
- wbCTDAs
- ], [])
- )
- ]);
-
- wbRecord(SCOL, 'Static Collection', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbRStructsSK('Parts', 'Part', [0], [
- wbFormIDCk(ONAM, 'Static', [STAT]),
- wbArrayS(DATA, 'Placements', wbStruct('Placement', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ]),
- wbFloat('Scale')
- ]), 0, cpNormal, True)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(MSTT, 'Moveable Static', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbDEST,
- wbByteArray(DATA, 'Unknown', 1, cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN])
- ]);
-
- wbRecord(PWAT, 'Placeable Water', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbStruct(DNAM, '', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001}'Reflects',
- {0x00000002}'Reflects - Actors',
- {0x00000004}'Reflects - Land',
- {0x00000008}'Reflects - LOD Land',
- {0x00000010}'Reflects - LOD Buildings',
- {0x00000020}'Reflects - Trees',
- {0x00000040}'Reflects - Sky',
- {0x00000080}'Reflects - Dynamic Objects',
- {0x00000100}'Reflects - Dead Bodies',
- {0x00000200}'Refracts',
- {0x00000400}'Refracts - Actors',
- {0x00000800}'Refracts - Land',
- {0x00001000}'',
- {0x00002000}'',
- {0x00004000}'',
- {0x00008000}'',
- {0x00010000}'Refracts - Dynamic Objects',
- {0x00020000}'Refracts - Dead Bodies',
- {0x00040000}'Silhouette Reflections',
- {0x00080000}'',
- {0x00100000}'',
- {0x00200000}'',
- {0x00400000}'',
- {0x00800000}'',
- {0x01000000}'',
- {0x02000000}'',
- {0x03000000}'',
- {0x08000000}'',
- {0x10000000}'Depth',
- {0x20000000}'Object Texture Coordinates',
- {0x40000000}'',
- {0x80000000}'No Underwater Fog'
- ])),
- wbFormIDCk('Water', [WATR])
- ], cpNormal, True)
- ]);
-
- wbRecord(IDLM, 'Idle Marker', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(IDLF, 'Flags', itU8, wbFlags([
- 'Run in Sequence',
- '',
- 'Do Once'
- ]), cpNormal, True),
- wbStruct(IDLC, '', [
- wbInteger('Animation Count', itU8),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 1),
- wbFloat(IDLT, 'Idle Timer Setting', cpNormal, True),
- wbArray(IDLA, 'Animations', wbFormIDCk('Animation', [IDLE, NULL]), 0, nil, wbIDLAsAfterSet, cpNormal, True) // NULL looks valid if IDLS\Animation Count is 0
- ], False, nil, cpNormal, False, nil, wbAnimationsAfterSet);
-
- wbRecord(NOTE, 'Note', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbYNAM,
- wbZNAM,
- wbInteger(DATA, 'Type', itU8, wbEnum([
- 'Sound',
- 'Text',
- 'Image',
- 'Voice'
- ]), cpNormal, True),
- wbRArrayS('Quests',
- wbFormIDCkNoReach(ONAM, 'Quest', [QUST])
- ),
- wbString(XNAM, 'Texture'),
- wbUnion(TNAM, 'Text / Topic', wbNOTETNAMDecide, [
- wbString('Text'),
- wbFormIDCk('Topic', [DIAL])
- ]),
- wbUnion(SNAM, 'Sound / NPC', wbNOTESNAMDecide, [
- wbFormIDCk('Sound', [SOUN]),
- wbFormIDCk('NPC', [NPC_])
- ])
- ]);
-
-end;
-
-procedure DefineFO3e;
-begin
- wbRecord(PROJ, 'Projectile', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODLReq,
- wbDEST,
- wbStruct(DATA, 'Data', [
- {00} wbInteger('Flags', itU16, wbFlags([
- 'Hitscan',
- 'Explosion',
- 'Alt. Trigger',
- 'Muzzle Flash',
- '',
- 'Can Be Disabled',
- 'Can Be Picked Up',
- 'Supersonic',
- 'Pins Limbs',
- 'Pass Through Small Transparent'
- ])),
- {00} wbInteger('Type', itU16, wbEnum([
- {00} '',
- {01} 'Missile',
- {02} 'Lobber',
- {03} '',
- {04} 'Beam',
- {05} '',
- {06} '',
- {07} '',
- {08} 'Flame'
- ])),
- {04} wbFloat('Gravity'),
- {08} wbFloat('Speed'),
- {12} wbFloat('Range'),
- {16} wbFormIDCk('Light', [LIGH, NULL]),
- {20} wbFormIDCk('Muzzle Flash - Light', [LIGH, NULL]),
- {24} wbFloat('Tracer Chance'),
- {28} wbFloat('Explosion - Alt. Trigger - Proximity'),
- {32} wbFloat('Explosion - Alt. Trigger - Timer'),
- {36} wbFormIDCk('Explosion', [EXPL, NULL]),
- {40} wbFormIDCk('Sound', [SOUN, NULL]),
- {44} wbFloat('Muzzle Flash - Duration'),
- {48} wbFloat('Fade Duration'),
- {52} wbFloat('Impact Force'),
- {56} wbFormIDCk('Sound - Countdown', [SOUN, NULL]),
- {60} wbFormIDCk('Sound - Disable', [SOUN, NULL]),
- {64} wbFormIDCk('Default Weapon Source', [WEAP, NULL])
- ], cpNormal, True),
- wbRStructSK([0], 'Muzzle Flash Model', [
- wbString(NAM1, 'Model Filename'),
- wbByteArray(NAM2, 'Texture Files Hashes', 0, cpIgnore)
- ], [], cpNormal, True),
- wbInteger(VNAM, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True)
- ]);
-
- wbRecord(NAVI, 'Navigation Mesh Info Map', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbRArray('Navigation Map Infos',
- wbStruct(NVMI, 'Navigation Map Info', [
- wbByteArray('Unknown', 4),
- wbFormIDCk('Navigation Mesh', [NAVM]),
- wbFormIDCk('Location', [CELL, WRLD]),
- wbStruct('Grid', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbUnknown
-{ wbUnion('Data', wbNAVINVMIDecider, [
- wbStruct('Data', [
- wbUnknown
- ]),
- wbStruct('Data', [
- wbArray('Unknown', wbFloat('Unknown'), 3),
- wbByteArray('Unknown', 4)
- ]),
- wbStruct('Data', [
- wbArray('Unknown', wbArray('Unknown', wbFloat('Unknown'), 3), 3),
- wbInteger('Count 1', itU16),
- wbInteger('Count 2', itU16),
- wbArray('Unknown', wbArray('Unknown', wbFloat('Unknown'), 3), [], wbNAVINAVMGetCount1),
- wbUnknown
- ]),
- wbStruct('Data', [
- wbUnknown
- ])
- ])}
- ])
- ),
- wbRArray('Unknown',
- wbStruct(NVCI, 'Unknown', [
- wbFormIDCk('Unknown', [NAVM]),
- wbArray('Unknown', wbFormIDCk('Unknown', [NAVM]), -1),
- wbArray('Unknown', wbFormIDCk('Unknown', [NAVM]), -1),
- wbArray('Doors', wbFormIDCk('Door', [REFR]), -1)
- ])
- )
- ]);
-
- if wbSimpleRecords then begin
-
- wbRecord(NAVM, 'Navigation Mesh', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbStruct(DATA, '', [
- wbFormIDCk('Cell', [CELL]),
- wbInteger('Vertex Count', itU32),
- wbInteger('Triangle Count', itU32),
- wbInteger('External Connections Count', itU32),
- wbInteger('NVCA Count', itU32),
- wbInteger('Doors Count', itU32)
- ]),
- wbByteArray(NVVX, 'Vertices'),
- wbByteArray(NVTR, 'Triangles'),
- wbByteArray(NVCA, 'Unknown'),
- wbArray(NVDP, 'Doors', wbStruct('Door', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Triangle', itU16),
- wbByteArray('Unused', 2)
- ])),
- wbByteArray(NVGD, 'Unknown'),
- wbArray(NVEX, 'External Connections', wbStruct('Connection', [
- wbByteArray('Unknown', 4),
- wbFormIDCk('Navigation Mesh', [NAVM], False, cpNormal),
- wbInteger('Triangle', itU16, nil, cpNormal)
- ]))
- ], False, wbNAVMAddInfo);
-
- end else begin
-
- wbRecord(NAVM, 'Navigation Mesh', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbStruct(DATA, '', [
- wbFormIDCk('Cell', [CELL]),
- wbInteger('Vertex Count', itU32),
- wbInteger('Triangle Count', itU32),
- wbInteger('External Connections Count', itU32),
- wbInteger('NVCA Count', itU32),
- wbInteger('Doors Count', itU32) // as of version = 5 (earliest NavMesh version I saw (Fallout3 1.7) is already 11)
- ]),
- wbArray(NVVX, 'Vertices', wbStruct('Vertex', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ])),
- wbArray(NVTR, 'Triangles', wbStruct('Triangle', [
- wbArray('Vertices', wbInteger('Vertex', itS16), 3),
- wbArray('Edges', wbInteger('Triangle', itS16, wbNVTREdgeToStr, wbNVTREdgeToInt), [
- '0 <-> 1',
- '1 <-> 2',
- '2 <-> 0'
- ]),
- wbInteger('Flags', itU32, wbFlags([
- 'Triangle #0 Is External',
- 'Triangle #1 Is External',
- 'Triangle #2 Is External',
- 'Unknown 4',
- 'Unknown 5',
- 'Unknown 6',
- 'Unknown 7',
- 'Unknown 8',
- 'Unknown 9',
- 'Unknown 10',
- 'Unknown 11',
- 'Unknown 12',
- 'Unknown 13',
- 'Unknown 14',
- 'Unknown 15',
- 'Unknown 16',
- 'Unknown 17',
- 'Unknown 18',
- 'Unknown 19',
- 'Unknown 20',
- 'Unknown 21',
- 'Unknown 22',
- 'Unknown 23',
- 'Unknown 24',
- 'Unknown 25',
- 'Unknown 26',
- 'Unknown 27',
- 'Unknown 28',
- 'Unknown 29',
- 'Unknown 30',
- 'Unknown 31',
- 'Unknown 32'
- ]))
- ])),
- wbArray(NVCA, 'Unknown', wbInteger('Unknown', itS16)),
- wbArray(NVDP, 'Doors', wbStruct('Door', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Triangle', itU16),
- wbByteArray('Unused', 2)
- ])),
- wbStruct(NVGD, 'Unknown', [
- wbByteArray('Unknown', 4),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbArray('Unknown', wbArray('Unknown', wbInteger('Unknown', itU16), -2))
- ]),
- wbArray(NVEX, 'External Connections', wbStruct('Connection', [
- wbByteArray('Unknown', 4),
- wbFormIDCk('Navigation Mesh', [NAVM], False, cpNormal),
- wbInteger('Triangle', itU16, nil, cpNormal)
- ]))
- ], False, wbNAVMAddInfo);
-
- end;
-
- wbRecord(PGRE, 'Placed Grenade', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [PROJ], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(PMIS, 'Placed Missile', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [PROJ], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(PBEA, 'Placed Beam', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [PROJ], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(EXPL, 'Explosion', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbEITM,
- wbFormIDCk(MNAM, 'Image Space Modifier', [IMAD]),
- wbStruct(DATA, 'Data', [
- {00} wbFloat('Force'),
- {04} wbFloat('Damage'),
- {08} wbFloat('Radius'),
- {12} wbFormIDCk('Light', [LIGH, NULL]),
- {16} wbFormIDCk('Sound 1', [SOUN, NULL]),
- {20} wbInteger('Flags', itU32, wbFlags([
- {0x00000001}'Unknown 1',
- {0x00000002}'Always Uses World Orientation',
- {0x00000004}'Knock Down - Always',
- {0x00000008}'Knock Down - By Formula',
- {0x00000010}'Ignore LOS Check',
- {0x00000020}'Push Explosion Source Ref Only',
- {0x00000040}'Ignore Image Space Swap'
- ])),
- {24} wbFloat('IS Radius'),
- {28} wbFormIDCk('Impact DataSet', [IPDS, NULL]),
- {32} wbFormIDCk('Sound 2', [SOUN, NULL]),
- wbStruct('Radiation', [
- {36} wbFloat('Level'),
- {40} wbFloat('Dissipation Time'),
- {44} wbFloat('Radius')
- ]),
- {48} wbInteger('Sound Level', itU32, wbSoundLevelEnum, cpNormal, True)
- ], cpNormal, True),
- wbFormIDCk(INAM, 'Placed Impact Object', [TREE, SOUN, ACTI, DOOR, STAT, FURN,
- CONT, ARMO, AMMO, LVLN, LVLC, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS,
- ASPC, IDLM, ARMA, MSTT, NOTE, PWAT, SCOL, TACT, TERM, TXST])
- ]);
-
- wbRecord(DEBR, 'Debris', [
- wbEDIDReq,
- wbRStructs('Models', 'Model', [
- wbStruct(DATA, 'Data', [
- wbInteger('Percentage', itU8),
- wbString('Model Filename'),
- wbInteger('Flags', itU8, wbFlags([
- 'Has Collission Data'
- ]))
- ], cpNormal, True),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(IMGS, 'Image Space', [
- wbEDIDReq,
- wbStruct(DNAM, '', [
- wbStruct('HDR', [
- {00} wbFloat('Eye Adapt Speed'),
- {04} wbFloat('Blur Radius'),
- {08} wbFloat('Blur Passes'),
- {12} wbFloat('Emissive Mult'),
- {16} wbFloat('Target LUM'),
- {20} wbFloat('Upper LUM Clamp'),
- {24} wbFloat('Bright Scale'),
- {28} wbFloat('Bright Clamp'),
- {32} wbFloat('LUM Ramp No Tex'),
- {36} wbFloat('LUM Ramp Min'),
- {40} wbFloat('LUM Ramp Max'),
- {44} wbFloat('Sunlight Dimmer'),
- {48} wbFloat('Grass Dimmer'),
- {52} wbFloat('Tree Dimmer'),
- {56} wbUnion('Skin Dimmer', wbIMGSSkinDimmerDecider, [
- wbFloat('Skin Dimmer'),
- wbEmpty('Skin Dimmer', cpIgnore)
- ])
- ], cpNormal, False, nil, 14),
- wbStruct('Bloom', [
- {60} wbFloat('Blur Radius'),
- {64} wbFloat('Alpha Mult Interior'),
- {68} wbFloat('Alpha Mult Exterior')
- ]),
- wbStruct('Get Hit', [
- {72} wbFloat('Blur Radius'),
- {76} wbFloat('Blur Damping Constant'),
- {80} wbFloat('Damping Constant')
- ]),
- wbStruct('Night Eye', [
- wbStruct('Tint Color', [
- {84} wbFloat('Red', cpNormal, False, 255, 0),
- {88} wbFloat('Green', cpNormal, False, 255, 0),
- {92} wbFloat('Blue', cpNormal, False, 255, 0)
- ]),
- {96} wbFloat('Brightness')
- ]),
- wbStruct('Cinematic', [
- {100} wbFloat('Saturation'),
- wbStruct('Contrast', [
- {104} wbFloat('Avg Lum Value'),
- {108} wbFloat('Value')
- ]),
- {112} wbFloat('Cinematic - Brightness - Value'),
- wbStruct('Tint', [
- wbStruct('Color', [
- {116} wbFloat('Red', cpNormal, False, 255, 0),
- {120} wbFloat('Green', cpNormal, False, 255, 0),
- {124} wbFloat('Blue', cpNormal, False, 255, 0)
- ]),
- {128} wbFloat('Value')
- ])
- ]),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbByteArray('Unused', 4),
- wbInteger('Flags', itU8, wbFlags([
- 'Saturation',
- 'Contrast',
- 'Tint',
- 'Brightness'
- ], True)),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 5)
- ]);
-
- wbTimeInterpolator := wbStruct('Data', [
- wbFloat('Time'),
- wbFloat('Value')
- ]);
-
- wbColorInterpolator := wbStruct('Data', [
- wbFloat('Time'),
- wbFloat('Red', cpNormal, False, 255, 0),
- wbFloat('Green', cpNormal, False, 255, 0),
- wbFloat('Blue', cpNormal, False, 255, 0),
- wbFloat('Alpha', cpNormal, False, 255, 0)
- ]);
-
- wbRecord(IMAD, 'Image Space Adapter', [
- wbEDID,
- wbStruct(DNAM, 'Data Count', [
- wbInteger('Flags', itU32, wbFlags(['Animatable'])),
- wbFloat('Duration'),
- wbStruct('HDR', [
- wbInteger('Eye Adapt Speed Mult', itU32),
- wbInteger('Eye Adapt Speed Add', itU32),
- wbInteger('Bloom Blur Radius Mult', itU32),
- wbInteger('Bloom Blur Radius Add', itU32),
- wbInteger('Bloom Threshold Mult', itU32),
- wbInteger('Bloom Threshold Add', itU32),
- wbInteger('Bloom Scale Mult', itU32),
- wbInteger('Bloom Scale Add', itU32),
- wbInteger('Target Lum Min Mult', itU32),
- wbInteger('Target Lum Min Add', itU32),
- wbInteger('Target Lum Max Mult', itU32),
- wbInteger('Target Lum Max Add', itU32),
- wbInteger('Sunlight Scale Mult', itU32),
- wbInteger('Sunlight Scale Add', itU32),
- wbInteger('Sky Scale Mult', itU32),
- wbInteger('Sky Scale Add', itU32)
- ]),
- wbInteger('Unknown08 Mult', itU32),
- wbInteger('Unknown48 Add', itU32),
- wbInteger('Unknown09 Mult', itU32),
- wbInteger('Unknown49 Add', itU32),
- wbInteger('Unknown0A Mult', itU32),
- wbInteger('Unknown4A Add', itU32),
- wbInteger('Unknown0B Mult', itU32),
- wbInteger('Unknown4B Add', itU32),
- wbInteger('Unknown0C Mult', itU32),
- wbInteger('Unknown4C Add', itU32),
- wbInteger('Unknown0D Mult', itU32),
- wbInteger('Unknown4D Add', itU32),
- wbInteger('Unknown0E Mult', itU32),
- wbInteger('Unknown4E Add', itU32),
- wbInteger('Unknown0F Mult', itU32),
- wbInteger('Unknown4F Add', itU32),
- wbInteger('Unknown10 Mult', itU32),
- wbInteger('Unknown50 Add', itU32),
- wbStruct('Cinematic', [
- wbInteger('Saturation Mult', itU32),
- wbInteger('Saturation Add', itU32),
- wbInteger('Brightness Mult', itU32),
- wbInteger('Brightness Add', itU32),
- wbInteger('Contrast Mult', itU32),
- wbInteger('Contrast Add', itU32)
- ]),
- wbInteger('Unknown14 Mult', itU32),
- wbInteger('Unknown54 Add', itU32),
- wbInteger('Tint Color', itU32),
- wbInteger('Blur Radius', itU32),
- wbInteger('Double Vision Strength', itU32),
- wbInteger('Radial Blur Strength', itU32),
- wbInteger('Radial Blur Ramp Up', itU32),
- wbInteger('Radial Blur Start', itU32),
- wbInteger('Radial Blur Flags', itU32, wbFlags(['Use Target'])),
- wbFloat('Radial Blur Center X'),
- wbFloat('Radial Blur Center Y'),
- wbInteger('DoF Strength', itU32),
- wbInteger('DoF Distance', itU32),
- wbInteger('DoF Range', itU32),
- wbInteger('DoF Flags', itU32, wbFlags(['Use Target'])),
- wbInteger('Radial Blur Ramp Down', itU32),
- wbInteger('Radial Blur Down Start', itU32),
- wbInteger('Fade Color', itU32),
- wbInteger('Motion Blur Strength', itU32)
- ], cpNormal, True, nil, 26),
- wbArray(BNAM, 'Blur Radius', wbTimeInterpolator),
- wbArray(VNAM, 'Double Vision Strength', wbTimeInterpolator),
- wbArray(TNAM, 'Tint Color', wbColorInterpolator),
- wbArray(NAM3, 'Fade Color', wbColorInterpolator),
- wbArray(RNAM, 'Radial Blur Strength', wbTimeInterpolator),
- wbArray(SNAM, 'Radial Blur Ramp Up', wbTimeInterpolator),
- wbArray(UNAM, 'Radial Blur Start', wbTimeInterpolator),
- wbArray(NAM1, 'Radial Blur Ramp Down', wbTimeInterpolator),
- wbArray(NAM2, 'Radial Blur Down Start', wbTimeInterpolator),
- wbArray(WNAM, 'DoF Strength', wbTimeInterpolator),
- wbArray(XNAM, 'DoF Distance', wbTimeInterpolator),
- wbArray(YNAM, 'DoF Range', wbTimeInterpolator),
- wbArray(NAM4, 'Motion Blur Strength', wbTimeInterpolator),
- wbRStruct('HDR', [
- wbArray(_00_IAD, 'Eye Adapt Speed Mult', wbTimeInterpolator),
- wbArray(_40_IAD, 'Eye Adapt Speed Add', wbTimeInterpolator),
- wbArray(_01_IAD, 'Bloom Blur Radius Mult', wbTimeInterpolator),
- wbArray(_41_IAD, 'Bloom Blur Radius Add', wbTimeInterpolator),
- wbArray(_02_IAD, 'Bloom Threshold Mult', wbTimeInterpolator),
- wbArray(_42_IAD, 'Bloom Threshold Add', wbTimeInterpolator),
- wbArray(_03_IAD, 'Bloom Scale Mult', wbTimeInterpolator),
- wbArray(_43_IAD, 'Bloom Scale Add', wbTimeInterpolator),
- wbArray(_04_IAD, 'Target Lum Min Mult', wbTimeInterpolator),
- wbArray(_44_IAD, 'Target Lum Min Add', wbTimeInterpolator),
- wbArray(_05_IAD, 'Target Lum Max Mult', wbTimeInterpolator),
- wbArray(_45_IAD, 'Target Lum Max Add', wbTimeInterpolator),
- wbArray(_06_IAD, 'Sunlight Scale Mult', wbTimeInterpolator),
- wbArray(_46_IAD, 'Sunlight Scale Add', wbTimeInterpolator),
- wbArray(_07_IAD, 'Sky Scale Mult', wbTimeInterpolator),
- wbArray(_47_IAD, 'Sky Scale Add', wbTimeInterpolator)
- ], []),
- wbUnknown(_08_IAD),
- wbUnknown(_48_IAD),
- wbUnknown(_09_IAD),
- wbUnknown(_49_IAD),
- wbUnknown(_0A_IAD),
- wbUnknown(_4A_IAD),
- wbUnknown(_0B_IAD),
- wbUnknown(_4B_IAD),
- wbUnknown(_0C_IAD),
- wbUnknown(_4C_IAD),
- wbUnknown(_0D_IAD),
- wbUnknown(_4D_IAD),
- wbUnknown(_0E_IAD),
- wbUnknown(_4E_IAD),
- wbUnknown(_0F_IAD),
- wbUnknown(_4F_IAD),
- wbUnknown(_10_IAD),
- wbUnknown(_50_IAD),
- wbRStruct('Cinematic', [
- wbArray(_11_IAD, 'Saturation Mult', wbTimeInterpolator),
- wbArray(_51_IAD, 'Saturation Add', wbTimeInterpolator),
- wbArray(_12_IAD, 'Brightness Mult', wbTimeInterpolator),
- wbArray(_52_IAD, 'Brightness Add', wbTimeInterpolator),
- wbArray(_13_IAD, 'Contrast Mult', wbTimeInterpolator),
- wbArray(_53_IAD, 'Contrast Add', wbTimeInterpolator)
- ], []),
- wbUnknown(_14_IAD),
- wbUnknown(_54_IAD)
- ]);
-
- wbRecord(FLST, 'FormID List', [
- wbString(EDID, 'Editor ID', 0, cpBenign, True, nil, wbFLSTEDIDAfterSet),
- wbRArrayS('FormIDs', wbFormID(LNAM, 'FormID'), cpNormal, False, nil, nil, nil, wbFLSTLNAMIsSorted)
- ]);
-
- wbRecord(PERK, 'Perk', [
- wbEDIDReq,
- wbFULL,
- wbDESCReq,
- wbICON,
- wbCTDAs,
- wbStruct(DATA, 'Data', [
- wbInteger('Trait', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Min Level', itU8),
- wbInteger('Ranks', itU8),
- wbInteger('Playable', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Hidden', itU8, wbEnum(['No', 'Yes']))
- ], cpNormal, True, nil, 4),
- wbRStructsSK('Effects', 'Effect', [0, 1], [
- wbStructSK(PRKE, [1, 2, 0], 'Header', [
- wbInteger('Type', itU8, wbEnum([
- 'Quest + Stage',
- 'Ability',
- 'Entry Point'
- ]), cpNormal, False, nil, wbPERKPRKETypeAfterSet),
- wbInteger('Rank', itU8),
- wbInteger('Priority', itU8)
- ]),
- wbUnion(DATA, 'Effect Data', wbPerkDATADecider, [
- wbStructSK([0, 1], 'Quest + Stage', [
- wbFormIDCk('Quest', [QUST]),
- wbInteger('Quest Stage', itU8, wbPerkDATAQuestStageToStr, wbCTDAParam2QuestStageToInt),
- wbByteArray('Unused', 3)
- ]),
- wbFormIDCk('Ability', [SPEL]),
- wbStructSK([0, 1], 'Entry Point', [
- wbInteger('Entry Point', itU8, wbEnum([
- {00} 'Calculate Weapon Damage',
- {01} 'Calculate My Critical Hit Chance',
- {02} 'Calculate My Critical Hit Damage',
- {03} 'Calculate Weapon Attack AP Cost',
- {04} 'Calculate Mine Explode Chance',
- {05} 'Adjust Range Penalty',
- {06} 'Adjust Limb Damage',
- {07} 'Calculate Weapon Range',
- {08} 'Calculate To Hit Chance',
- {09} 'Adjust Experience Points',
- {10} 'Adjust Gained Skill Points',
- {11} 'Adjust Book Skill Points',
- {12} 'Modify Recovered Health',
- {13} 'Calculate Inventory AP Cost',
- {14} 'Get Disposition',
- {15} 'Get Should Attack',
- {16} 'Get Should Assist',
- {17} 'Calculate Buy Price',
- {18} 'Get Bad Karma',
- {19} 'Get Good Karma',
- {20} 'Ignore Locked Terminal',
- {21} 'Add Leveled List On Death',
- {22} 'Get Max Carry Weight',
- {23} 'Modify Addiction Chance',
- {24} 'Modify Addiction Duration',
- {25} 'Modify Positive Chem Duration',
- {26} 'Adjust Drinking Radiation',
- {27} 'Activate',
- {28} 'Mysterious Stranger',
- {29} 'Has Paralyzing Palm',
- {30} 'Hacking Science Bonus',
- {31} 'Ignore Running During Detection',
- {32} 'Ignore Broken Lock',
- {33} 'Has Concentrated Fire',
- {34} 'Calculate Gun Spread',
- {35} 'Player Kill AP Reward',
- {36} 'Modify Enemy Critical Hit Chance'
- ]), cpNormal, True, nil, wbPERKEntryPointAfterSet),
- wbInteger('Function', itU8, wbPerkDATAFunctionToStr, wbPerkDATAFunctionToInt, cpNormal, False, nil, wbPerkDATAFunctionAfterSet),
- wbInteger('Perk Condition Tab Count', itU8, nil, cpIgnore)
- ])
- ], cpNormal, True),
- wbRStructsSK('Perk Conditions', 'Perk Condition', [0], [
- wbInteger(PRKC, 'Run On', itS8, wbPRKCToStr, wbPRKCToInt),
- wbCTDAsReq
- ], [], cpNormal, False, nil, nil, wbPERKPRKCDontShow),
- wbRStruct('Entry Point Function Parameters', [
- wbInteger(EPFT, 'Type', itU8, wbPerkEPFTToStr, wbPerkEPFTToInt, cpIgnore, False, nil, wbPerkEPFTAfterSet),
- wbUnion(EPFD, 'Data', wbEPFDDecider, [
- wbByteArray('Unknown'),
- wbFloat('Float'),
- wbStruct('Float, Float', [
- wbFloat('Float 1'),
- wbFloat('Float 2')
- ]),
- wbFormIDCk('Leveled Item', [LVLI]),
- wbEmpty('None (Script)'),
- wbStruct('Actor Value, Float', [
- wbInteger('Actor Value', itU32, wbEPFDActorValueToStr, wbEPFDActorValueToInt),
- wbFloat('Float')
- ])
- ], cpNormal, False, wbEPFDDontShow),
- wbString(EPF2, 'Button Label', 0, cpNormal, False, wbEPF2DontShow),
- wbInteger(EPF3, 'Script Flags', itU16, wbFlags([
- 'Run Immediately'
- ]), cpNormal, False, False, wbEPF2DontShow),
- wbEmbeddedScriptPerk
- ], [], cpNormal, False, wbPERKPRKCDontShow),
- wbEmpty(PRKF, 'End Marker', cpIgnore, True)
- ], [])
- ]);
-
- wbBPNDStruct := wbStruct(BPND, '', [
- {00} wbFloat('Damage Mult'),
- {04} wbInteger('Flags', itU8, wbFlags([
- 'Severable',
- 'IK Data',
- 'IK Data - Biped Data',
- 'Explodable',
- 'IK Data - Is Head',
- 'IK Data - Headtracking',
- 'To Hit Chance - Absolute'
- ])),
- {05} wbInteger('Part Type', itU8, wbEnum([
- 'Torso',
- 'Head 1',
- 'Head 2',
- 'Left Arm 1',
- 'Left Arm 2',
- 'Right Arm 1',
- 'Right Arm 2',
- 'Left Leg 1',
- 'Left Leg 2',
- 'Left Leg 3',
- 'Right Leg 1',
- 'Right Leg 2',
- 'Right Leg 3',
- 'Brain',
- 'Weapon'
- ])),
- {06} wbInteger('Health Percent', itU8),
- {07} wbInteger('Actor Value', itS8, wbActorValueEnum),
- {08} wbInteger('To Hit Chance', itU8),
- {09} wbInteger('Explodable - Explosion Chance %', itU8),
- {10} wbInteger('Explodable - Debris Count', itU16),
- {12} wbFormIDCk('Explodable - Debris', [DEBR, NULL]),
- {16} wbFormIDCk('Explodable - Explosion', [EXPL, NULL]),
- {20} wbFloat('Tracking Max Angle'),
- {24} wbFloat('Explodable - Debris Scale'),
- {28} wbInteger('Severable - Debris Count', itS32),
- {32} wbFormIDCk('Severable - Debris', [DEBR, NULL]),
- {36} wbFormIDCk('Severable - Explosion', [EXPL, NULL]),
- {40} wbFloat('Severable - Debris Scale'),
- wbStruct('Gore Effects Positioning', [
- wbStruct('Translate', [
- {44} wbFloat('X'),
- {48} wbFloat('Y'),
- {52} wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- {56} wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- {60} wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- {64} wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ]),
- {68} wbFormIDCk('Severable - Impact DataSet', [IPDS, NULL]),
- {72} wbFormIDCk('Explodable - Impact DataSet', [IPDS, NULL]),
- {28} wbInteger('Severable - Decal Count', itU8),
- {28} wbInteger('Explodable - Decal Count', itU8),
- {76} wbByteArray('Unused', 2),
- {80} wbFloat('Limb Replacement Scale')
- ], cpNormal, True);
-
- wbRecord(BPTD, 'Body Part Data', [
- wbEDIDReq,
- wbMODLReq,
- wbRStructS('Body Parts', 'Body Part', [
- wbString(BPTN, 'Part Name', 0, cpNormal, True),
- wbString(BPNN, 'Part Node', 0, cpNormal, True),
- wbString(BPNT, 'VATS Target', 0, cpNormal, True),
- wbString(BPNI, 'IK Data - Start Node', 0, cpNormal, True),
- wbBPNDStruct,
- wbString(NAM1, 'Limb Replacement Model', 0, cpNormal, True),
- wbString(NAM4, 'Gore Effects - Target Bone', 0, cpNormal, True),
- wbByteArray(NAM5, 'Texture Files Hashes', 0, cpIgnore)
- ], [], cpNormal, True),
- wbFormIDCk(RAGA, 'Ragdoll', [RGDL])
- ]);
-
- wbRecord(ADDN, 'Addon Node', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbInteger(DATA, 'Node Index', itS32, nil, cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN]),
- wbStruct(DNAM, 'Data', [
- wbInteger('Master Particle System Cap', itU16),
- wbByteArray('Unknown', 2)
- ], cpNormal, True)
- ]);
-
- wbRecord(AVIF, 'ActorValue Information', [
- wbEDIDReq,
- wbFULL,
- wbDESCReq,
- wbICON,
- wbString(ANAM, 'Short Name')
- ]);
-
- wbRecord(RADS, 'Radiation Stage', [
- wbEDIDReq,
- wbStruct(DATA, '', [
- wbInteger('Trigger Threshold', itU32),
- wbFormIDCk('Actor Effect', [SPEL])
- ], cpNormal, True)
- ]);
-
- wbRecord(CAMS, 'Camera Shot', [
- wbEDIDReq,
- wbMODL,
- wbStruct(DATA, 'Data', [
- {00} wbInteger('Action', itU32, wbEnum([
- 'Shoot',
- 'Fly',
- 'Hit',
- 'Zoom'
- ])),
- {04} wbInteger('Location', itU32, wbEnum([
- 'Attacker',
- 'Projectile',
- 'Target'
- ])),
- {08} wbInteger('Target', itU32, wbEnum([
- 'Attacker',
- 'Projectile',
- 'Target'
- ])),
- {12} wbInteger('Flags', itU32, wbFlags([
- 'Position Follows Location',
- 'Rotation Follows Target',
- 'Don''t Follow Bone',
- 'First Person Camera',
- 'No Tracer',
- 'Start At Time Zero'
- ])),
- wbStruct('Time Multipliers', [
- {16} wbFloat('Player'),
- {20} wbFloat('Target'),
- {24} wbFloat('Global')
- ]),
- {28} wbFloat('Max Time'),
- {32} wbFloat('Min Time'),
- {36} wbFloat('Target % Between Actors')
- ], cpNormal, True, nil, 7),
- wbFormIDCk(MNAM, 'Image Space Modifier', [IMAD])
- ]);
-
- wbRecord(CPTH, 'Camera Path', [
- wbEDIDReq,
- wbCTDAs,
- wbArray(ANAM, 'Related Camera Paths', wbFormIDCk('Related Camera Path', [CPTH, NULL]), ['Parent', 'Previous Sibling'], cpNormal, True),
- wbInteger(DATA, 'Camera Zoom', itU8, wbEnum([
- 'Default',
- 'Disable',
- 'Shot List'
- ]), cpNormal, True),
- wbRArray('Camera Shots', wbFormIDCk(SNAM, 'Camera Shot', [CAMS]))
- ]);
-
- wbRecord(VTYP, 'Voice Type', [
- wbEDIDReq,
- wbInteger(DNAM, 'Flags', itU8, wbFlags([
- 'Allow Default Dialog',
- 'Female'
- ]), cpNormal, True)
- ]);
-
- wbRecord(IPCT, 'Impact', [
- wbEDIDReq,
- wbMODL,
- wbStruct(DATA, '', [
- wbFloat('Effect - Duration'),
- wbInteger('Effect - Orientation', itU32, wbEnum([
- 'Surface Normal',
- 'Projectile Vector',
- 'Projectile Reflection'
- ])),
- wbFloat('Angle Threshold'),
- wbFloat('Placement Radius'),
- wbInteger('Sound Level', itU32, wbSoundLevelEnum),
- wbInteger('Flags', itU32, wbFlags([
- 'No Decal Data'
- ]))
- ], cpNormal, True),
- wbDODT,
- wbFormIDCk(DNAM, 'Texture Set', [TXST]),
- wbFormIDCk(SNAM, 'Sound 1', [SOUN]),
- wbFormIDCk(NAM1, 'Sound 2', [SOUN])
- ]);
-
- wbRecord(IPDS, 'Impact DataSet', [
- wbEDIDReq,
- wbStruct(DATA, 'Impacts', [
- wbFormIDCk('Stone', [IPCT, NULL]),
- wbFormIDCk('Dirt', [IPCT, NULL]),
- wbFormIDCk('Grass', [IPCT, NULL]),
- wbFormIDCk('Glass', [IPCT, NULL]),
- wbFormIDCk('Metal', [IPCT, NULL]),
- wbFormIDCk('Wood', [IPCT, NULL]),
- wbFormIDCk('Organic', [IPCT, NULL]),
- wbFormIDCk('Cloth', [IPCT, NULL]),
- wbFormIDCk('Water', [IPCT, NULL]),
- wbFormIDCk('Hollow Metal', [IPCT, NULL]),
- wbFormIDCk('Organic Bug', [IPCT, NULL]),
- wbFormIDCk('Organic Glow', [IPCT, NULL])
- ], cpNormal, True, nil, 9)
- ]);
-
- wbRecord(ECZN, 'Encounter Zone', [
- wbEDIDReq,
- wbStruct(DATA, '', [
- wbFormIDCkNoReach('Owner', [NPC_, FACT, NULL]),
- wbInteger('Rank', itS8),
- wbInteger('Minimum Level', itS8),
- wbInteger('Flags', itU8, wbFlags([
- 'Never Resets',
- 'Match PC Below Minimum Level'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True)
- ]);
-
- wbRecord(MESG, 'Message', [
- wbEDIDReq,
- wbDESCReq,
- wbFULL,
- wbFormIDCk(INAM, 'Icon', [MICN, NULL], False, cpNormal, True),
- wbByteArray(NAM0, 'Unused', 0, cpIgnore),
- wbByteArray(NAM1, 'Unused', 0, cpIgnore),
- wbByteArray(NAM2, 'Unused', 0, cpIgnore),
- wbByteArray(NAM3, 'Unused', 0, cpIgnore),
- wbByteArray(NAM4, 'Unused', 0, cpIgnore),
- wbByteArray(NAM5, 'Unused', 0, cpIgnore),
- wbByteArray(NAM6, 'Unused', 0, cpIgnore),
- wbByteArray(NAM7, 'Unused', 0, cpIgnore),
- wbByteArray(NAM8, 'Unused', 0, cpIgnore),
- wbByteArray(NAM9, 'Unused', 0, cpIgnore),
- wbInteger(DNAM, 'Flags', itU32, wbFlags([
- 'Message Box',
- 'Auto Display'
- ]), cpNormal, True, False, nil, wbMESGDNAMAfterSet),
- wbInteger(TNAM, 'Display Time', itU32, nil, cpNormal, False, False, wbMESGTNAMDontShow),
- wbRStructs('Menu Buttons', 'Menu Button', [
- wbString(ITXT, 'Button Text'),
- wbCTDAs
- ], [])
- ], False, nil, cpNormal, False, wbMESGAfterLoad);
-
- wbRecord(RGDL, 'Ragdoll', [
- wbEDIDReq,
- wbInteger(NVER, 'Version', itU32, nil, cpNormal, True),
- wbStruct(DATA, 'General Data', [
- wbInteger('Dynamic Bone Count', itU32),
- wbByteArray('Unused', 4),
- wbStruct('Enabled', [
- wbInteger('Feedback', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Foot IK (broken, don''t use)', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Look IK (broken, don''t use)', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Grab IK (broken, don''t use)', itU8, wbEnum(['No', 'Yes'])),
- wbInteger('Pose Matching', itU8, wbEnum(['No', 'Yes']))
- ]),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCk(XNAM, 'Actor Base', [CREA, NPC_], False, cpNormal, True),
- wbFormIDCk(TNAM, 'Body Part Data', [BPTD], False, cpNormal, True),
- wbStruct(RAFD, 'Feedback Data', [
- {00} wbFloat('Dynamic/Keyframe Blend Amount'),
- {04} wbFloat('Hierarchy Gain'),
- {08} wbFloat('Position Gain'),
- {12} wbFloat('Velocity Gain'),
- {16} wbFloat('Acceleration Gain'),
- {20} wbFloat('Snap Gain'),
- {24} wbFloat('Velocity Damping'),
- wbStruct('Snap Max Settings', [
- {28} wbFloat('Linear Velocity'),
- {32} wbFloat('Angular Velocity'),
- {36} wbFloat('Linear Distance'),
- {40} wbFloat('Angular Distance')
- ]),
- wbStruct('Position Max Velocity', [
- {44} wbFloat('Linear'),
- {48} wbFloat('Angular')
- ]),
- wbStruct('Position Max Velocity', [
- {52} wbInteger('Projectile', itS32, wbDiv(1000)),
- {56} wbInteger('Melee', itS32, wbDiv(1000))
- ])
- ], cpNormal, False),
- wbArray(RAFB, 'Feedback Dynamic Bones', wbInteger('Bone', itU16), 0, nil, nil, cpNormal, False),
- wbStruct(RAPS, 'Pose Matching Data', [
- {00} wbArray('Match Bones', wbInteger('Bone', itU16, wbHideFFFF), 3),
- {06} wbInteger('Flags', itU8, wbFlags([
- 'Disable On Move'
- ])),
- {07} wbByteArray('Unused', 1),
- {08} wbFloat('Motors Strength'),
- {12} wbFloat('Pose Activation Delay Time'),
- {16} wbFloat('Match Error Allowance'),
- {20} wbFloat('Displacement To Disable')
- ], cpNormal, True),
- wbString(ANAM, 'Death Pose')
- ]);
-
- wbRecord(DOBJ, 'Default Object Manager', [
- wbEDIDReq,
- wbArray(DATA, 'Default Objects', wbFormID('Default Object'), [
- 'Stimpack',
- 'SuperStimpack',
- 'RadX',
- 'RadAway',
- 'Morphine',
- 'Perk Paralysis',
- 'Player Faction',
- 'Mysterious Stranger NPC',
- 'Mysterious Stranger Faction',
- 'Default Music',
- 'Battle Music',
- 'Death Music',
- 'Success Music',
- 'Level Up Music',
- 'Player Voice (Male)',
- 'Player Voice (Male Child)',
- 'Player Voice (Female)',
- 'Player Voice (Female Child)',
- 'Eat Package Default Food',
- 'Every Actor Ability',
- 'Drug Wears Off Image Space'
- ], cpNormal, True)
- ]);
-
- wbRecord(LGTM, 'Lighting Template', [
- wbEDIDReq,
- wbStruct(DATA, 'Lighting', [
- wbStruct('Ambient Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Directional Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Fog Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fog Near'),
- wbFloat('Fog Far'),
- wbInteger('Directional Rotation XY', itS32),
- wbInteger('Directional Rotation Z', itS32),
- wbFloat('Directional Fade'),
- wbFloat('Fog Clip Dist'),
- wbFloat('Fog Power')
- ], cpNormal, True)
- ]);
-
- wbRecord(MUSC, 'Music Type', [
- wbEDIDReq,
- wbString(FNAM, 'Filename')
- ]);
-
- wbRecord(GRAS, 'Grass', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbStruct(DATA, '', [
- wbInteger('Density', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbByteArray('Unused', 1),
- wbInteger('Unit from water amount', itU16),
- wbByteArray('Unused', 2),
- wbInteger('Unit from water type', itU32, wbEnum([
- 'Above - At Least',
- 'Above - At Most',
- 'Below - At Least',
- 'Below - At Most',
- 'Either - At Least',
- 'Either - At Most',
- 'Either - At Most Above',
- 'Either - At Most Below'
- ])),
- wbFloat('Position Range'),
- wbFloat('Height Range'),
- wbFloat('Color Range'),
- wbFloat('Wave Period'),
- wbInteger('Flags', itU8, wbFlags([
- 'Vertex Lighting',
- 'Uniform Scaling',
- 'Fit to Slope'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True)
- ]);
-
- wbRecord(HAIR, 'Hair', [
- wbEDIDReq,
- wbFULLReq,
- wbMODLReq,
- wbString(ICON, 'Texture', 0, cpNormal, True),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Playable',
- 'Not Male',
- 'Not Female',
- 'Fixed'
- ]), cpNormal, True)
- ]);
-
- wbRecord(IDLE, 'Idle Animation', [
- wbEDID,
- wbMODLReq,
- wbCTDAs,
- wbArray(ANAM, 'Related Idle Animations', wbFormIDCk('Related Idle Animation', [IDLE, NULL]), ['Parent', 'Previous Sibling'], cpNormal, True),
- wbStruct(DATA, '', [
- wbInteger('Animation Group Section', itU8, wbIdleAnam),
- wbStruct('Looping', [
- wbInteger('Min', itU8),
- wbInteger('Max', itU8)
- ]),
- wbByteArray('Unused', 1),
- wbInteger('Replay Delay', itS16),
- wbInteger('Flags', itU8, wbFlags([
- 'No attacking'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True, nil, 4)
- ]);
-
- wbRecord(INFO, 'Dialog response', [
- wbStruct(DATA, '', [
- wbInteger('Type', itU8, wbEnum([
- {0} 'Topic',
- {1} 'Conversation',
- {2} 'Combat',
- {3} 'Persuasion',
- {4} 'Detection',
- {5} 'Service',
- {6} 'Miscellaneous',
- {7} 'Radio'
- ])),
- wbInteger('Next Speaker', itU8, wbEnum([
- {0} 'Target',
- {1} 'Self',
- {2} 'Either'
- ])),
- wbInteger('Flags 1', itU8, wbFlags([
- {0x01} 'Goodbye',
- {0x02} 'Random',
- {0x04} 'Say Once',
- {0x08} 'Run Immediately',
- {0x10} 'Info Refusal',
- {0x20} 'Random End',
- {0x40} 'Run for Rumors',
- {0x80} 'Speech Challenge'
- ])),
- wbInteger('Flags 2', itU8, wbFlags([
- {0x01} 'Say Once a Day',
- {0x02} 'Always Darken'
- ]))
- ], cpNormal, True, nil, 3),
- wbFormIDCkNoReach(QSTI, 'Quest', [QUST], False, cpNormal, True),
- wbFormIDCk(TPIC, 'Topic', [DIAL]),
- wbFormIDCkNoReach(PNAM, 'Previous INFO', [INFO, NULL]),
- wbRArray('Add Topics', wbFormIDCk(NAME, 'Topic', [DIAL])),
- wbRArray('Responses',
- wbRStruct('Response', [
- wbStruct(TRDT, 'Response Data', [
- wbInteger('Emotion Type', itU32, wbEnum([
- {0} 'Neutral',
- {1} 'Anger',
- {2} 'Disgust',
- {3} 'Fear',
- {4} 'Sad',
- {5} 'Happy',
- {6} 'Surprise',
- {7} 'Pained'
- ])),
- wbInteger('Emotion Value', itS32),
- wbByteArray('Unused', 4),
- wbInteger('Response number', itU8),
- wbByteArray('Unused', 3),
- wbFormIDCk('Sound', [SOUN, NULL]),
- wbInteger('Flags', itU8, wbFlags([
- 'Use Emotion Animation'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, False, nil, 5),
- wbStringKC(NAM1, 'Response Text', 0, cpTranslate, True),
- wbString(NAM2, 'Script Notes', 0, cpTranslate, True),
- wbString(NAM3, 'Edits'),
- wbFormIDCk(SNAM, 'Speaker Animation', [IDLE]),
- wbFormIDCk(LNAM, 'Listener Animation', [IDLE])
- ], [])
- ),
- wbCTDAs,
- wbRArray('Choices', wbFormIDCk(TCLT, 'Choice', [DIAL])),
- wbRArray('Link From', wbFormIDCk(TCLF, 'Topic', [DIAL])),
- wbRStruct('Script (Begin)', [
- wbEmbeddedScriptReq
- ], [], cpNormal, True),
- wbRStruct('Script (End)', [
- wbEmpty(NEXT, 'Marker'),
- wbEmbeddedScriptReq
- ], [], cpNormal, True),
- wbFormIDCk(SNDD, 'Unused', [SOUN]),
- wbString(RNAM, 'Prompt'),
- wbFormIDCk(ANAM, 'Speaker', [CREA, NPC_]),
- wbFormIDCk(KNAM, 'ActorValue/Perk', [AVIF, PERK]),
- wbInteger(DNAM, 'Speech Challenge', itU32, wbEnum([
- '---',
- 'Very Easy',
- 'Easy',
- 'Average',
- 'Hard',
- 'Very Hard'
- ]))
- ], False, wbINFOAddInfo, cpNormal, False, wbINFOAfterLoad);
-
- wbRecord(INGR, 'Ingredient', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbETYPReq,
- wbFloat(DATA, 'Weight', cpNormal, True),
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Value', itS32),
- wbInteger('Flags', itU8, wbFlags(['No auto-calculation', 'Food item'])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(KEYM, 'Key', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLReq,
- wbMODL,
- wbICONReq,
- wbSCRI,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbQuadrantEnum := wbEnum([
- {0} 'Bottom Left',
- {1} 'Bottom Right',
- {2} 'Top Left',
- {3} 'Top Right'
- ]);
-
- if wbSimpleRecords then begin
-
- wbRecord(LAND, 'Landscape', [
- wbByteArray(DATA, 'Unknown'),
- wbByteArray(VNML, 'Vertex Normals'),
- wbByteArray(VHGT, 'Vertext Height Map'),
- wbByteArray(VCLR, 'Vertex Colours'),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ]),
- wbByteArray(VTXT, 'Alpha Layer Data')
- ], [])
- ], [])),
-
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL]))
- ]);
-
- end else begin
-
- wbRecord(LAND, 'Landscape', [
- wbByteArray(DATA, 'Unknown'),
- wbArray(VNML, 'Vertex Normals', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
- wbStruct(VHGT, 'Vertext Height Map', [
- wbFloat('Offset'),
- wbArray('Rows', wbStruct('Row', [
- wbArray('Columns', wbInteger('Column', itU8), 33)
- ]), 33),
- wbByteArray('Unused', 3)
- ]),
- wbArray(VCLR, 'Vertex Colours', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ]),
- wbArrayS(VTXT, 'Alpha Layer Data', wbStructSK([0], 'Cell', [
- wbInteger('Position', itU16, wbAtxtPosition),
- wbByteArray('Unused', 2),
- wbFloat('Opacity')
- ]))
- ], [])
- ], [])),
-
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL]))
- ]);
-
- end;
-
- wbRecord(LIGH, 'Light', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODL,
- wbSCRI,
- wbDEST,
- wbFULL,
- wbICON,
- wbStruct(DATA, '', [
- wbInteger('Time', itS32),
- wbInteger('Radius', itU32),
- wbStruct('Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbInteger('Unused', itU8)
- ]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Dynamic',
- {0x00000002} 'Can be Carried',
- {0x00000004} 'Negative',
- {0x00000008} 'Flicker',
- {0x00000010} 'Unused',
- {0x00000020} 'Off By Default',
- {0x00000040} 'Flicker Slow',
- {0x00000080} 'Pulse',
- {0x00000100} 'Pulse Slow',
- {0x00000200} 'Spot Light',
- {0x00000400} 'Spot Shadow'
- ])),
- wbFloat('Falloff Exponent'),
- wbFloat('FOV'),
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbFloat(FNAM, 'Fade value', cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN])
- ], False, nil, cpNormal, False, wbLIGHAfterLoad);
-
- wbRecord(LSCR, 'Load Screen', [
- wbEDIDReq,
- wbICONReq,
- wbDESCReq,
- wbRArrayS('Locations', wbStructSK(LNAM, [0, 1], 'Location', [
- wbFormIDCkNoReach('Cell', [CELL, WRLD]),
- wbByteArray('Unused', 8)
- ]))
- ]);
-
- wbRecord(LTEX, 'Landscape Texture', [
- wbEDIDReq,
- wbICON,
- wbFormIDCk(TNAM, 'Texture', [TXST], False, cpNormal, True),
- wbStruct(HNAM, 'Havok Data', [
- wbInteger('Material Type', itU8, wbEnum([
- {00} 'STONE',
- {01} 'CLOTH',
- {02} 'DIRT',
- {03} 'GLASS',
- {04} 'GRASS',
- {05} 'METAL',
- {06} 'ORGANIC',
- {07} 'SKIN',
- {08} 'WATER',
- {09} 'WOOD',
- {10} 'HEAVY STONE',
- {11} 'HEAVY METAL',
- {12} 'HEAVY WOOD',
- {13} 'CHAIN',
- {14} 'SNOW',
- {15} 'ELEVATOR',
- {16} 'HOLLOW METAL',
- {17} 'SHEET METAL',
- {18} 'SAND',
- {19} 'BRIKEN CONCRETE',
- {20} 'VEHILCE BODY',
- {21} 'VEHILCE PART SOLID',
- {22} 'VEHILCE PART HOLLOW',
- {23} 'BARREL',
- {24} 'BOTTLE',
- {25} 'SODA CAN',
- {26} 'PISTOL',
- {27} 'RIFLE',
- {28} 'SHOPPING CART',
- {29} 'LUNCHBOX',
- {30} 'BABY RATTLE',
- {31} 'RUBER BALL'
- ])),
- wbInteger('Friction', itU8),
- wbInteger('Restitution', itU8)
- ], cpNormal, True),
- wbInteger(SNAM, 'Texture Specular Exponent', itU8, nil, cpNormal, True),
- wbRArrayS('Grasses', wbFormIDCk(GNAM, 'Grass', [GRAS]))
- ]);
-
- wbRecord(LVLC, 'Leveled Creature', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count'
- ]), cpNormal, True),
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [CREA, LVLC]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ]),
- wbCOED
- ], []),
- cpNormal, True),
- wbMODL
- ]);
-
- wbRecord(LVLN, 'Leveled NPC', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count'
- ]), cpNormal, True),
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [NPC_, LVLN]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ]),
- wbCOED
- ], []),
- cpNormal, True),
- wbMODL
- ]);
-
- wbRecord(LVLI, 'Leveled Item', [
- wbEDIDReq,
- wbOBNDReq,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count',
- {0x04} 'Use All'
- ]), cpNormal, True),
- wbFormIDCk(LVLG, 'Global', [GLOB]),
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [ARMO, AMMO, MISC, WEAP, BOOK, LVLI, KEYM, ALCH, NOTE]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ]),
- wbCOED
- ], [])
- )
- ]);
-
- wbArchtypeEnum := wbEnum([
- {00} 'Value Modifier',
- {01} 'Script',
- {02} 'Dispel',
- {03} 'Cure Disease',
- {04} '',
- {05} '',
- {06} '',
- {07} '',
- {08} '',
- {09} '',
- {10} '',
- {11} 'Invisibility',
- {12} 'Chameleon',
- {13} 'Light',
- {14} '',
- {15} '',
- {16} 'Lock',
- {17} 'Open',
- {18} 'Bound Item',
- {19} 'Summon Creature',
- {20} '',
- {21} '',
- {22} '',
- {23} '',
- {24} 'Paralysis',
- {25} '',
- {26} '',
- {27} '',
- {28} '',
- {29} '',
- {30} 'Cure Paralysis',
- {31} 'Cure Addiction',
- {32} 'Cure Poison',
- {33} 'Concussion',
- {34} 'Value And Parts'
- ]);
-
- wbRecord(MGEF, 'Base Effect', [
- wbEDIDReq,
- wbFULL,
- wbDESCReq,
- wbICON,
- wbMODL,
- wbStruct(DATA, 'Data', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Hostile',
- {0x00000002} 'Recover',
- {0x00000004} 'Detrimental',
- {0x00000008} '',
- {0x00000010} 'Self',
- {0x00000020} 'Touch',
- {0x00000040} 'Target',
- {0x00000080} 'No Duration',
- {0x00000100} 'No Magnitude',
- {0x00000200} 'No Area',
- {0x00000400} 'FX Persist',
- {0x00000800} '',
- {0x00001000} 'Gory Visuals',
- {0x00002000} 'Display Name Only',
- {0x00004000} '',
- {0x00008000} 'Radio Broadcast ??',
- {0x00010000} '',
- {0x00020000} '',
- {0x00040000} '',
- {0x00080000} 'Use skill',
- {0x00100000} 'Use attribute',
- {0x00200000} '',
- {0x00400000} '',
- {0x00800000} '',
- {0x01000000} 'Painless',
- {0x02000000} 'Spray projectile type (or Fog if Bolt is specified as well)',
- {0x04000000} 'Bolt projectile type (or Fog if Spray is specified as well)',
- {0x08000000} 'No Hit Effect',
- {0x10000000} 'No Death Dispel',
- {0x20000000} '????'
- ])),
- {04} wbFloat('Base cost (Unused)'),
- {08} wbUnion('Assoc. Item', wbMGEFFAssocItemDecider, [
- wbFormID('Unused', cpIgnore),
- wbFormID('Assoc. Item'),
- wbFormIDCk('Assoc. Script', [SCPT, NULL]), //Script
- wbFormIDCk('Assoc. Item', [WEAP, ARMO, NULL]), //Bound Item
- wbFormIDCk('Assoc. Creature', [CREA]) //Summon Creature
- ], cpNormal, false, nil, wbMGEFFAssocItemAfterSet),
- {12} wbInteger('Magic School (Unused)', itS32, wbEnum([
- ], [
- -1, 'None'
- ])),
- {16} wbInteger('Resistance Type', itS32, wbActorValueEnum),
- {20} wbInteger('Counter effect count', itU16),
- {22} wbByteArray('Unused', 2),
- {24} wbFormIDCk('Light', [LIGH, NULL]),
- {28} wbFloat('Projectile speed'),
- {32} wbFormIDCk('Effect Shader', [EFSH, NULL]),
- {36} wbFormIDCk('Object Display Shader', [EFSH, NULL]),
- {40} wbFormIDCk('Effect sound', [NULL, SOUN]),
- {44} wbFormIDCk('Bolt sound', [NULL, SOUN]),
- {48} wbFormIDCk('Hit sound', [NULL, SOUN]),
- {52} wbFormIDCk('Area sound', [NULL, SOUN]),
- {56} wbFloat('Constant Effect enchantment factor (Unused)'),
- {60} wbFloat('Constant Effect barter factor (Unused)'),
- {64} wbInteger('Archtype', itU32, wbArchtypeEnum, cpNormal, False, nil, wbMGEFArchtypeAfterSet),
- {68} wbActorValue
- ], cpNormal, True),
- wbRArrayS('Counter Effects', wbFormIDCk(ESCE, 'Effect', [MGEF]), cpNormal, False, nil, wbCounterEffectsAfterSet)
- ], False, nil, cpNormal, False, wbMGEFAfterLoad, wbMGEFAfterSet);
-
- wbRecord(MISC, 'Misc. Item', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbRecord(COBJ, 'Constructible Object', [
- wbEDID,
- wbOBND,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbFaceGen := wbRStruct('FaceGen Data', [
- wbByteArray(FGGS, 'FaceGen Geometry-Symmetric', 0, cpNormal, True),
- wbByteArray(FGGA, 'FaceGen Geometry-Asymmetric', 0, cpNormal, True),
- wbByteArray(FGTS, 'FaceGen Texture-Symmetric', 0, cpNormal, True)
- ], [], cpNormal, True);
-
- wbFaceGenNPC := wbRStruct('FaceGen Data', [
- wbByteArray(FGGS, 'FaceGen Geometry-Symmetric', 0, cpNormal, True),
- wbByteArray(FGGA, 'FaceGen Geometry-Asymmetric', 0, cpNormal, True),
- wbByteArray(FGTS, 'FaceGen Texture-Symmetric', 0, cpNormal, True)
- ], [], cpNormal, True, wbActorTemplateUseModelAnimation);
-
-
- wbRecord(NPC_, 'Non-Player Character', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULLActor,
- wbMODLActor,
- wbStruct(ACBS, 'Configuration', [
- {00} wbInteger('Flags', itU32, wbFlags([
- {0x000001} 'Female',
- {0x000002} 'Essential',
- {0x000004} 'Is CharGen Face Preset',
- {0x000008} 'Respawn',
- {0x000010} 'Auto-calc stats',
- {0x000020} '',
- {0x000040} '',
- {0x000080} 'PC Level Mult',
- {0x000100} 'Use Template',
- {0x000200} 'No Low Level Processing',
- {0x000400} '',
- {0x000800} 'No Blood Spray',
- {0x001000} 'No Blood Decal',
- {0x002000} '',
- {0x004000} '',
- {0x008000} '',
- {0x010000} '',
- {0x020000} '',
- {0x040000} '',
- {0x080000} '',
- {0x100000} 'No VATS Melee',
- {0x00200000} '',
- {0x00400000} 'Can be all races',
- {0x00800000} '',
- {0x01000000} '',
- {0x02000000} '',
- {0x03000000} 'No Knockdowns',
- {0x08000000} 'Not Pushable',
- {0x10000000} '', {28}
- {0x20000000} '',
- {0x40000000} 'No Rotating To Head-track',
- {0x80000000} ''
- ], [
- {0x000001 Female} wbActorTemplateUseTraits,
- {0x000002 Essential} wbActorTemplateUseBaseData,
- {0x000004 Is CharGen Face Preset} nil,
- {0x000008 Respawn} wbActorTemplateUseBaseData,
- {0x000010 Auto-calc stats} wbActorTemplateUseStats,
- {0x000020 } nil,
- {0x000040 } nil,
- {0x000080 PC Level Mult} wbActorTemplateUseStats,
- {0x000100 Use Template} nil,
- {0x000200 No Low Level Processing} wbActorTemplateUseBaseData,
- {0x000400 } nil,
- {0x000800 No Blood Spray} wbActorTemplateUseModelAnimation,
- {0x001000 No Blood Decal} wbActorTemplateUseModelAnimation,
- {0x002000 } nil,
- {0x004000 } nil,
- {0x008000 } nil,
- {0x010000 } nil,
- {0x020000 } nil,
- {0x040000 } nil,
- {0x080000 } nil,
- {0x100000 No VATS Melee} nil,
- {0x00200000 } nil,
- {0x00400000 Can be all races} nil,
- {0x00800000 } nil,
- {0x01000000 } nil,
- {0x02000000 } nil,
- {0x03000000 No Knockdowns} nil,
- {0x08000000 Not Pushable} wbActorTemplateUseModelAnimation,
- {0x10000000 } nil,
- {0x20000000 } nil,
- {0x40000000 No Rotating To Head-track} wbActorTemplateUseModelAnimation,
- {0x80000000 } nil
- ])),
- {04} wbInteger('Fatigue', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {06} wbInteger('Barter gold', itU16, nil, cpNormal, False, wbActorTemplateUseAIData),
- {08} wbUnion('Level', wbCreaLevelDecider, [
- wbInteger('Level', itS16, nil, cpNormal, True, wbActorTemplateUseStats),
- wbInteger('Level Mult', itS16, wbDiv(1000), cpNormal, True, wbActorTemplateUseStats)
- ], cpNormal, True, wbActorTemplateUseStats),
- {10} wbInteger('Calc min', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {12} wbInteger('Calc max', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {14} wbInteger('Speed Multiplier', itU16, nil, cpNormal, True, wbActorTemplateUseStats),
- {16} wbFloat('Karma (Alignment)', cpNormal, False, 1, -1, wbActorTemplateUseTraits),
- {20} wbInteger('Disposition Base', itS16, nil, cpNormal, False, wbActorTemplateUseTraits),
- {22} wbInteger('Template Flags', itU16, wbTemplateFlags)
- ], cpNormal, True),
- wbRArrayS('Factions',
- wbStructSK(SNAM, [0], 'Faction', [
- wbFormIDCk('Faction', [FACT]),
- wbInteger('Rank', itU8),
- wbByteArray('Unused', 3)
- ]),
- cpNormal, False, nil, nil, wbActorTemplateUseFactions),
- wbFormIDCk(INAM, 'Death item', [LVLI], False, cpNormal, False, wbActorTemplateUseTraits),
- wbFormIDCk(VTCK, 'Voice', [VTYP], False, cpNormal, True, wbActorTemplateUseTraits),
- wbFormIDCk(TPLT, 'Template', [LVLN, NPC_]),
- wbFormIDCk(RNAM, 'Race', [RACE], False, cpNormal, True, wbActorTemplateUseTraits),
- wbSPLOs,
- wbFormIDCk(EITM, 'Unarmed Attack Effect', [ENCH, SPEL], False, cpNormal, False, wbActorTemplateUseActorEffectList),
- wbInteger(EAMT, 'Unarmed Attack Animation', itU16, wbAttackAnimationEnum, cpNormal, True, False, wbActorTemplateUseActorEffectList),
- wbDESTActor,
- wbSCRIActor,
- wbRArrayS('Items', wbCNTO, cpNormal, False, nil, nil, wbActorTemplateUseInventory),
- wbAIDT,
- wbRArray('Packages', wbFormIDCk(PKID, 'Package', [PACK]), cpNormal, False, nil, nil, wbActorTemplateUseAIPackages),
- wbArrayS(KFFZ, 'Animations', wbStringLC('Animation'), 0, cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbFormIDCk(CNAM, 'Class', [CLAS], False, cpNormal, True, wbActorTemplateUseTraits),
- wbStruct(DATA, '', [
- {00} wbInteger('Base Health', itS32),
- {04} wbArray('Attributes', wbInteger('Attribute', itU8), [
- 'Strength',
- 'Perception',
- 'Endurance',
- 'Charisma',
- 'Intelligence',
- 'Agility',
- 'Luck'
- ], cpNormal, False, wbActorAutoCalcDontShow),
- wbByteArray('Unused'{, 14 - only present in old record versions})
- ], cpNormal, True, wbActorTemplateUseStats),
- wbStruct(DNAM, '', [
- {00} wbArray('Skill Values', wbInteger('Skill', itU8), [
- 'Barter',
- 'Big Guns',
- 'Energy Weapons',
- 'Explosives',
- 'Lockpick',
- 'Medicine',
- 'Melee Weapons',
- 'Repair',
- 'Science',
- 'Small Guns',
- 'Sneak',
- 'Speech',
- 'Throwing (unused)',
- 'Unarmed'
- ]),
- {14} wbArray('Skill Offsets', wbInteger('Skill', itU8), [
- 'Barter',
- 'Big Guns',
- 'Energy Weapons',
- 'Explosives',
- 'Lockpick',
- 'Medicine',
- 'Melee Weapons',
- 'Repair',
- 'Science',
- 'Small Guns',
- 'Sneak',
- 'Speech',
- 'Throwing (unused)',
- 'Unarmed'
- ])
- ], cpNormal, False, wbActorTemplateUseStatsAutoCalc),
- wbRArrayS('Head Parts',
- wbFormIDCk(PNAM, 'Head Part', [HDPT]),
- cpNormal, False, nil, nil, wbActorTemplateUseModelAnimation),
- wbFormIDCk(HNAM, 'Hair', [HAIR], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbFloat(LNAM, 'Hair length', cpNormal, False, 1, -1, wbActorTemplateUseModelAnimation),
- wbFormIDCk(ENAM, 'Eyes', [EYES], False, cpNormal, False, wbActorTemplateUseModelAnimation),
- wbStruct(HCLR, 'Hair color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ], cpNormal, True, wbActorTemplateUseModelAnimation),
- wbFormIDCk(ZNAM, 'Combat Style', [CSTY], False, cpNormal, False, wbActorTemplateUseTraits),
- wbInteger(NAM4, 'Impact Material Type', itU32, wbImpactMaterialTypeEnum, cpNormal, True, False, wbActorTemplateUseModelAnimation),
- wbFaceGenNPC,
- wbInteger(NAM5, 'Unknown', itU16, nil, cpNormal, True, False, nil, nil, 255),
- wbFloat(NAM6, 'Height', cpNormal, True, 1, -1, wbActorTemplateUseTraits),
- wbFloat(NAM7, 'Weight', cpNormal, True, 1, -1, wbActorTemplateUseTraits)
- ], True, nil, cpNormal, False, wbNPCAfterLoad);
-
- wbPKDTFlags := wbFlags([
- {0x00000001} 'Offers Services',
- {0x00000002} 'Must reach location',
- {0x00000004} 'Must complete',
- {0x00000008} 'Lock doors at package start',
- {0x00000010} 'Lock doors at package end',
- {0x00000020} 'Lock doors at location',
- {0x00000040} 'Unlock doors at package start',
- {0x00000080} 'Unlock doors at package end',
- {0x00000100} 'Unlock doors at location',
- {0x00000200} 'Continue if PC near',
- {0x00000400} 'Once per day',
- {0x00000800} '',
- {0x00001000} 'Skip fallout behavior',
- {0x00002000} 'Always run',
- {0x00004000} '',
- {0x00008000} '',
- {0x00010000} '',
- {0x00020000} 'Always sneak',
- {0x00040000} 'Allow swimming',
- {0x00080000} 'Allow falls',
- {0x00100000} 'Head-Tracking off',
- {0x00200000} 'Weapons unequipped',
- {0x00400000} 'Defensive combat',
- {0x00800000} 'Weapon Drawn',
- {0x01000000} 'No idle anims',
- {0x02000000} 'Pretend In Combat',
- {0x04000000} 'Continue During Combat',
- {0x08000000} 'No Combat Alert',
- {0x10000000} 'No Warn/Attack Behaviour',
- {0x20000000} '',
- {0x40000000} '',
- {0x80000000} ''
- ]);
-
- wbPKDTType := wbEnum([
- {0} 'Find',
- {1} 'Follow',
- {2} 'Escort',
- {3} 'Eat',
- {4} 'Sleep',
- {5} 'Wander',
- {6} 'Travel',
- {7} 'Accompany',
- {8} 'Use Item At',
- {9} 'Ambush',
- {10} 'Flee Not Combat',
- {11} '',
- {12} 'Sandbox',
- {13} 'Patrol',
- {14} 'Guard',
- {15} 'Dialogue',
- {16} 'Use Weapon'
- ]);
-
- wbObjectTypeEnum := wbEnum([
- ' NONE',
- 'Activators',
- 'Armor',
- 'Books',
- 'Clothing',
- 'Containers',
- 'Doors',
- 'Ingredients',
- 'Lights',
- 'Misc',
- 'Flora',
- 'Furniture',
- 'Weapons: Any',
- 'Ammo',
- 'NPCs',
- 'Creatures',
- 'Keys',
- 'Alchemy',
- 'Food',
- ' All: Combat Wearable',
- ' All: Wearable',
- 'Weapons: Ranged',
- 'Weapons: Melee',
- 'Weapons: NONE',
- 'Actor Effects: Any',
- 'Actor Effects: Range Target',
- 'Actor Effects: Range Touch',
- 'Actor Effects: Range Self',
- '',
- 'Actors: Any'
- ]);
-
-
- wbPKDTSpecificFlagsUnused := True;
-
- wbRecord(PACK, 'Package', [
- wbEDIDReq,
- wbStruct(PKDT, 'General', [
- wbInteger('General Flags', itU32, wbPKDTFlags),
- wbInteger('Type', itU8, wbPKDTType),
- wbByteArray('Unused', 1),
- wbInteger('Fallout Behavior Flags', itU16, wbFlags([
- {0x00000001}'Hellos To Player',
- {0x00000002}'Random Conversations',
- {0x00000004}'Observe Combat Behavior',
- {0x00000008}'Unknown 4',
- {0x00000010}'Reaction To Player Actions',
- {0x00000020}'Friendly Fire Comments',
- {0x00000040}'Aggro Radius Behavior',
- {0x00000080}'Allow Idle Chatter',
- {0x00000100}'Avoid Radiation'
- ], True)),
- wbUnion('Type Specific Flags', wbPKDTSpecificFlagsDecider, [
- wbEmpty('Type Specific Flags (missing)', cpIgnore, False, nil, True),
- wbInteger('Type Specific Flags - Find', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Find - Allow Buying',
- {0x00000200}'Find - Allow Killing',
- {0x00000400}'Find - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Follow', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Escort', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Escort - Allow Buying',
- {0x00000200}'Escort - Allow Killing',
- {0x00000400}'Escort - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Eat', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Eat - Allow Buying',
- {0x00000200}'Eat - Allow Killing',
- {0x00000400}'Eat - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Sleep', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Wander', itU16, wbFlags([
- {0x00000001}'Wander - No Eating',
- {0x00000002}'Wander - No Sleeping',
- {0x00000004}'Wander - No Conversation',
- {0x00000008}'Wander - No Idle Markers',
- {0x00000010}'Wander - No Furniture',
- {0x00000020}'Wander - No Wandering'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Travel', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Accompany', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Use Item At', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'Use Item At - Sit Down',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'',
- {0x00000040}'',
- {0x00000080}'',
- {0x00000100}'Use Item At - Allow Buying',
- {0x00000200}'Use Item At - Allow Killing',
- {0x00000400}'Use Item At - Allow Stealing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Ambush', itU16, wbFlags([
- {0x00000001}'Ambush - Hide While Ambushing'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Flee Not Combat', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - ?', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Sandbox', itU16, wbFlags([
- {0x00000001}'Sandbox - No Eating',
- {0x00000002}'Sandbox - No Sleeping',
- {0x00000004}'Sandbox - No Conversation',
- {0x00000008}'Sandbox - No Idle Markers',
- {0x00000010}'Sandbox - No Furniture',
- {0x00000020}'Sandbox - No Wandering'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Patrol', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Guard', itU16, wbFlags([
- {0x00000001}'',
- {0x00000002}'',
- {0x00000004}'Guard - Remain Near Reference to Guard'
- ], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Dialogue', itU16, wbFlags([], wbPKDTSpecificFlagsUnused)),
- wbInteger('Type Specific Flags - Use Weapon', itU16, wbFlags([], wbPKDTSpecificFlagsUnused))
- ]),
- wbByteArray('Unused', 2)
- ], cpNormal, True, nil, 2),
- wbRStruct('Locations', [
- wbStruct(PLDT, 'Location 1', [
- wbInteger('Type', itS32, wbEnum([ // Byte + filler
- {0} 'Near reference',
- {1} 'In cell',
- {2} 'Near current location',
- {3} 'Near editor location',
- {4} 'Object ID',
- {5} 'Object Type',
- {6} 'Near linked reference',
- {7} 'At package location'
- ])),
- wbUnion('Location', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [REFR, PGRE, PMIS, PBEA, ACHR, ACRE, PLYR], True),
- wbFormIDCkNoReach('Cell', [CELL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Radius', itS32)
- ]),
- wbStruct(PLD2, 'Location 2', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Near reference',
- {1} 'In cell',
- {2} 'Near current location',
- {3} 'Near editor location',
- {4} 'Object ID',
- {5} 'Object Type',
- {6} 'Near linked reference',
- {7} 'At package location'
- ])),
- wbUnion('Location', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [REFR, PGRE, PMIS, PBEA, ACHR, ACRE, PLYR], True),
- wbFormIDCkNoReach('Cell', [CELL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Radius', itS32)
- ])
- ], []),
- wbStruct(PSDT, 'Schedule', [
- wbInteger('Month', itS8),
- wbInteger('Day of week', itS8, wbEnum([
- 'Sunday',
- 'Monday',
- 'Tuesday',
- 'Wednesday',
- 'Thursday',
- 'Friday',
- 'Saturday',
- 'Weekdays',
- 'Weekends',
- 'Monday, Wednesday, Friday',
- 'Tuesday, Thursday'
- ], [
- -1, 'Any'
- ])),
- wbInteger('Date', itU8),
- wbInteger('Time', itS8),
- wbInteger('Duration', itS32)
- ], cpNormal, True),
- wbStruct(PTDT, 'Target 1', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Specific Reference',
- {1} 'Object ID',
- {2} 'Object Type',
- {3} 'Linked Reference'
- ]), cpNormal, False, nil, nil, 2),
- wbUnion('Target', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [ACHR, ACRE, REFR, PGRE, PMIS, PBEA, PLYR], True),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, LVLN, LVLC, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, FACT, FLST]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Count / Distance', itS32),
- wbFloat('Unknown')
- ], cpNormal, False, nil, 3),
- wbCTDAs,
- wbRStruct('Idle Animations', [
- wbInteger(IDLF, 'Flags', itU8, wbFlags([
- 'Run in Sequence',
- '',
- 'Do Once'
- ]), cpNormal, True),
- wbStruct(IDLC, '', [
- wbInteger( 'Animation Count', itU8),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 1),
- wbFloat(IDLT, 'Idle Timer Setting', cpNormal, True),
- wbArray(IDLA, 'Animations', wbFormIDCk('Animation', [IDLE]), 0, nil, wbIDLAsAfterSet, cpNormal, True),
- wbByteArray(IDLB, 'Unused', 4, cpIgnore)
- ], [], cpNormal, False, nil, False, nil {cannot be totally removed , wbAnimationsAfterSet}),
- wbFormIDCk(CNAM, 'Combat Style', [CSTY]),
- wbEmpty(PKED, 'Eat Marker'),
- wbInteger(PKE2, 'Escort Distance', itU32),
- wbFloat(PKFD, 'Follow - Start Location - Trigger Radius'),
- wbStruct(PKPT, 'Patrol Flags', [
- wbInteger('Repeatable', itU8, wbEnum(['No', 'Yes']), cpNormal, False, nil, nil, 1),
- wbByteArray('Unused', 1)
- ], cpNormal, False, nil, 1),
- wbStruct(PKW3, 'Use Weapon Data', [
- wbInteger('Flags', itU32, wbFlags([
- 'Always Hit',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Do No Damage',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Crouch To Reload',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Hold Fire When Blocked'
- ])),
- wbInteger('Fire Rate', itU8, wbEnum([
- 'Auto Fire',
- 'Volley Fire'
- ])),
- wbInteger('Fire Count', itU8, wbEnum([
- 'Number of Bursts',
- 'Repeat Fire'
- ])),
- wbInteger('Number of Bursts', itU16),
- wbStruct('Shoots Per Volleys', [
- wbInteger('Min', itU16),
- wbInteger('Max', itU16)
- ]),
- wbStruct('Pause Between Volleys', [
- wbFloat('Min'),
- wbFloat('Max')
- ]),
- wbByteArray('Unused', 4)
- ]),
- wbStruct(PTD2, 'Target 2', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Specific reference',
- {1} 'Object ID',
- {2} 'Object Type',
- {3} 'Linked Reference'
- ])),
- wbUnion('Target', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [ACHR, ACRE, REFR, PGRE, PMIS, PBEA, PLYR], True),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, LVLN, LVLC, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH, FACT, FLST]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Count / Distance', itS32),
- wbFloat('Unknown')
- ], cpNormal, False, nil, 3),
- wbEmpty(PUID, 'Use Item Marker'),
- wbEmpty(PKAM, 'Ambush Marker'),
- wbStruct(PKDD, 'Dialogue Data', [
- wbFloat('FOV'),
- wbFormIDCk('Topic', [DIAL, NULL]),
- wbInteger('Flags', itU32, wbFlags([
- 'No Headtracking',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Don''t Control Target Movement'
- ])),
- wbByteArray('Unused', 4),
- wbInteger('Dialogue Type', itU32, wbEnum([
- 'Conversation',
- 'Say To'
- ])),
- wbByteArray('Unknown', 4)
- ], cpNormal, False, nil, 3),
- wbStruct(PLD2, 'Location 2 (again??)', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Near reference',
- {1} 'In cell',
- {2} 'Near current location',
- {3} 'Near editor location',
- {4} 'Object ID',
- {5} 'Object Type',
- {6} 'Near linked reference',
- {7} 'At package location'
- ])),
- wbUnion('Location', wbPxDTLocationDecider, [
- wbFormIDCkNoReach('Reference', [REFR, PGRE, PMIS, PBEA, ACHR, ACRE, PLYR], True),
- wbFormIDCkNoReach('Cell', [CELL]),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCkNoReach('Object ID', [ACTI, DOOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, BOOK, KEYM, ALCH, LIGH]),
- wbInteger('Object Type', itU32, wbObjectTypeEnum),
- wbByteArray('Unused', 4, cpIgnore),
- wbByteArray('Unused', 4, cpIgnore)
- ]),
- wbInteger('Radius', itS32)
- ]),
- wbRStruct('OnBegin', [
- wbEmpty(POBA, 'OnBegin Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('OnEnd', [
- wbEmpty(POEA, 'OnEnd Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('OnChange', [
- wbEmpty(POCA, 'OnChange Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], [], cpNormal, True)
- ], False, nil, cpNormal, False, wbPACKAfterLoad);
-
- wbRecord(QUST, 'Quest', [
- wbEDIDReq,
- wbSCRI,
- wbFULL,
- wbICON,
- wbStruct(DATA, 'General', [
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Start game enabled',
- {0x02} '',
- {0x04} 'Allow repeated conversation topics',
- {0x08} 'Allow repeated stages',
- {0x10} 'Unknown 4'
- ])),
- wbInteger('Priority', itU8),
- wbByteArray('Unused', 2),
- wbFloat('Quest Delay')
- ], cpNormal, True, nil, 3),
- wbCTDAs,
- wbRArrayS('Stages', wbRStructSK([0], 'Stage', [
- wbInteger(INDX, 'Stage Index', itS16),
- wbRArray('Log Entries', wbRStruct('Log Entry', [
- wbInteger(QSDT, 'Stage Flags', itU8, wbFlags([
- {0x01} 'Complete Quest',
- {0x02} 'Fail Quest'
- ])),
- wbCTDAs,
- wbString(CNAM, 'Log Entry', 0, cpTranslate),
- wbEmbeddedScriptReq,
- wbFormIDCk(NAM0, 'Next Quest', [QUST])
- ], []))
- ], [])),
- wbRArray('Objectives', wbRStruct('Objective', [
- wbInteger(QOBJ, 'Objective Index', itS32),
- wbString(NNAM, 'Description', 0, cpNormal, True),
- wbRArray('Targets', wbRStruct('Target', [
- wbStruct(QSTA, 'Target', [
- wbFormIDCkNoReach('Target', [REFR, PGRE, PMIS, PBEA, ACRE, ACHR], True),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Compass Marker Ignores Locks'
- ])),
- wbByteArray('Unused', 3)
- ]),
- wbCTDAs
- ], []))
- ], []))
- ]);
-
- wbHeadPartIndexEnum := wbEnum([
- 'Head',
- 'Ears',
- 'Mouth',
- 'Teeth Lower',
- 'Teeth Upper',
- 'Tongue',
- 'Left Eye',
- 'Right Eye'
- ]);
-
- wbBodyPartIndexEnum := wbEnum([
- 'Upper Body',
- 'Left Hand',
- 'Right Hand',
- 'Upper Body Texture'
- ]);
-
- wbRecord(RACE, 'Race', [
- wbEDIDReq,
- wbFULLReq,
- wbDESCReq,
- wbXNAMs,
- wbStruct(DATA, '', [
- wbArrayS('Skill Boosts', wbStructSK([0], 'Skill Boost', [
- wbInteger('Skill', itS8, wbActorValueEnum),
- wbInteger('Boost', itS8)
- ]), 7),
- wbByteArray('Unused', 2),
- wbFloat('Male Height'),
- wbFloat('Female Height'),
- wbFloat('Male Weight'),
- wbFloat('Female Weight'),
- wbInteger('Flags', itU32, wbFlags([
- 'Playable',
- '',
- 'Child'
- ]))
- ], cpNormal, True),
- wbFormIDCk(ONAM, 'Older', [RACE]),
- wbFormIDCk(YNAM, 'Younger', [RACE]),
- wbEmpty(NAM2, 'Unknown Marker', cpNormal, True),
- wbArray(VTCK, 'Voices', wbFormIDCk('Voice', [VTYP]), ['Male', 'Female'], cpNormal, True),
- wbArray(DNAM, 'Default Hair Styles', wbFormIDCk('Default Hair Style', [HAIR, NULL]), ['Male', 'Female'], cpNormal, True),
- wbArray(CNAM, 'Default Hair Colors', wbInteger('Default Hair Color', itU8, wbEnum([
- 'Bleached',
- 'Brown',
- 'Chocolate',
- 'Platinum',
- 'Cornsilk',
- 'Suede',
- 'Pecan',
- 'Auburn',
- 'Ginger',
- 'Honey',
- 'Gold',
- 'Rosewood',
- 'Black',
- 'Chestnut',
- 'Steel',
- 'Champagne'
- ])), ['Male', 'Female'], cpNormal, True),
- wbFloat(PNAM, 'FaceGen - Main clamp', cpNormal, True),
- wbFloat(UNAM, 'FaceGen - Face clamp', cpNormal, True),
- wbByteArray(ATTR, 'Unused', 0, cpNormal, True),
- wbRStruct('Head Data', [
- wbEmpty(NAM0, 'Head Data Marker', cpNormal, True),
- wbRStruct('Male Head Data', [
- wbEmpty(MNAM, 'Male Data Marker', cpNormal, True),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbHeadPartIndexEnum),
- wbMODLReq,
- wbICON
- ], [], cpNormal, False, nil, False, nil, wbHeadPartsAfterSet), cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Female Head Data', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbHeadPartIndexEnum),
- wbMODLReq,
- wbICON
- ], [], cpNormal, False, nil, False, nil, wbHeadPartsAfterSet), cpNormal, True)
- ], [], cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Body Data', [
- wbEmpty(NAM1, 'Body Data Marker', cpNormal, True),
- wbRStruct('Male Body Data', [
- wbEmpty(MNAM, 'Male Data Marker'),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbBodyPartIndexEnum),
- wbICON,
- wbMODLReq
- ], []), cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Female Body Data', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbBodyPartIndexEnum),
- wbICON,
- wbMODLReq
- ], []), cpNormal, True)
- ], [], cpNormal, True)
- ], [], cpNormal, True),
- wbArrayS(HNAM, 'Hairs', wbFormIDCk('Hair', [HAIR]), 0, cpNormal, True),
- wbArrayS(ENAM, 'Eyes', wbFormIDCk('Eye', [EYES]), 0, cpNormal, True),
- wbRStruct('FaceGen Data', [
- wbRStruct('Male FaceGen Data', [
- wbEmpty(MNAM, 'Male Data Marker', cpNormal, True),
- wbFaceGen,
- wbUnknown(SNAM, cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Female FaceGen Data', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbFaceGen,
- wbUnknown(SNAM, cpNormal, True)
- ], [], cpNormal, True)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(REFR, 'Placed Object', [
- wbEDID,
- {
- wbStruct(RCLR, 'Linked Reference Color (Old Format?)', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ], cpIgnore),}
- wbByteArray(RCLR, 'Unused', 0, cpIgnore),
- wbFormIDCk(NAME, 'Base', [TREE, SOUN, ACTI, DOOR, STAT, FURN, CONT, ARMO, AMMO, LVLN, LVLC,
- MISC, WEAP, BOOK, KEYM, ALCH, LIGH, GRAS, ASPC, IDLM, ARMA,
- MSTT, NOTE, PWAT, SCOL, TACT, TERM, TXST], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- {--- ?? ---}
- wbXRGD,
- wbXRGB,
-
- {--- Primitive ---}
- wbStruct(XPRM, 'Primitive', [
- wbStruct('Bounds', [
- wbFloat('X', cpNormal, True, 2, 4),
- wbFloat('Y', cpNormal, True, 2, 4),
- wbFloat('Z', cpNormal, True, 2, 4)
- ]),
- wbStruct('Color', [
- {84} wbFloat('Red', cpNormal, False, 255, 0),
- {88} wbFloat('Green', cpNormal, False, 255, 0),
- {92} wbFloat('Blue', cpNormal, False, 255, 0)
- ]),
- wbFloat('Unknown'),
- wbInteger('Type', itU32, wbEnum([
- 'None',
- 'Box',
- 'Sphere',
- 'Portal Box'
- ]))
- ]),
- wbInteger(XTRI, 'Collision Layer', itU32, wbEnum([
- 'Unidentified',
- 'Static',
- 'AnimStatic',
- 'Transparent',
- 'Clutter',
- 'Weapon',
- 'Projectile',
- 'Spell',
- 'Biped',
- 'Trees',
- 'Props',
- 'Water',
- 'Trigger',
- 'Terrain',
- 'Trap',
- 'Non Collidable',
- 'Cloud Trap',
- 'Ground',
- 'Portal',
- 'Debris Small',
- 'Debris Large',
- 'Acustic Space',
- 'Actor Zone',
- 'Projectile Zone',
- 'Gas Trap',
- 'Shell Casing',
- 'Transparent Small',
- 'Invisible Wall',
- 'Transparent Small Anim',
- 'Dead Bip',
- 'Char Controller',
- 'Avoid Box',
- 'Collision Box',
- 'Camera Sphere',
- 'Door Detection',
- 'Camera Pick',
- 'Item Pick',
- 'Line Of Sight',
- 'Path Pick',
- 'Custom Pick 1',
- 'Custom Pick 2',
- 'Spell Explosion',
- 'Dropping Pick'
- ])),
- wbEmpty(XMBP, 'MultiBound Primitive Marker'),
-
- {--- Bound Contents ---}
-
- {--- Bound Data ---}
- wbStruct(XMBO, 'Bound Half Extents', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
-
- {--- Teleport ---}
- wbStruct(XTEL, 'Teleport Destination', [
- wbFormIDCk('Door', [REFR], True),
- wbPosRot,
- wbInteger('Flags', itU32, wbFlags([
- 'No Alarm'
- ]))
- ]),
-
- {--- Map Data ---}
- wbRStruct('Map Marker', [
- wbEmpty(XMRK, 'Map Marker Data'),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- {0x01} 'Visible',
- {0x02} 'Can Travel To',
- {0x04} '"Show All" Hidden'
- ]), cpNormal, True),
- wbFULLReq,
- wbStruct(TNAM, '', [
- wbInteger('Type', itU8, wbEnum([
- 'None',
- 'City',
- 'Settlement',
- 'Encampment',
- 'Natural Landmark',
- 'Cave',
- 'Factory',
- 'Monument',
- 'Military',
- 'Office',
- 'Town Ruins',
- 'Urban Ruins',
- 'Sewer Ruins',
- 'Metro',
- 'Vault'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True)
- ], []),
-
- wbInteger(XSRF, 'Special Rendering Flags', itU32, wbFlags([
- 'Unknown 0',
- 'Imposter',
- 'Use Full Shader in LOD'
- ])),
- wbByteArray(XSRD, 'Special Rendering Data', 4),
-
- {--- X Target Data ---}
- wbFormIDCk(XTRG, 'Target', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA], True),
-
- {--- Leveled Actor ----}
- wbXLCM,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbEmbeddedScriptReq,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal, True)
- ], []),
-
- {--- Radio ---}
- wbStruct(XRDO, 'Radio Data', [
- wbFloat('Range Radius'),
- wbInteger('Broadcast Range Type', itU32, wbEnum([
- 'Radius',
- 'Everywhere',
- 'Worldspace and Linked Interiors',
- 'Linked Interiors',
- 'Current Cell Only'
- ])),
- wbFloat('Static Percentage'),
- wbFormIDCkNoReach('Position Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, NULL])
- ]),
-
- {--- Ownership ---}
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32)
- ], [XCMT, XCMO]),
-
- {--- Lock ---}
- wbStruct(XLOC, 'Lock Data', [
- wbInteger('Level', itU8),
- wbByteArray('Unused', 3),
- wbFormIDCkNoReach('Key', [KEYM, NULL]),
- wbInteger('Flags', itU8, wbFlags(['', '', 'Leveled Lock'])),
- wbByteArray('Unused', 3),
- wbByteArray('Unknown', 8)
- ], cpNormal, False, nil, 5),
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbFloat(XHLP, 'Health'),
- wbFloat(XRAD, 'Radiation'),
- wbFloat(XCHG, 'Charge'),
- wbRStruct('Ammo', [
- wbFormIDCk(XAMT, 'Type', [AMMO], False, cpNormal, True),
- wbInteger(XAMC, 'Count', itS32, nil, cpNormal, True)
- ], []),
-
- {--- Reflected By / Refracted By ---}
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ])
- ),
-
- {--- Lit Water ---}
- wbRArrayS('Lit Water',
- wbFormIDCk(XLTW, 'Water', [REFR])
- ),
-
- {--- Decals ---}
- wbRArrayS('Linked Decals',
- wbStructSK(XDCR, [0], 'Decal', [
- wbFormIDCk('Reference', [REFR]),
- wbUnknown
- ])
- ),
-
- {--- Linked Ref ---}
- wbFormIDCk(XLKR, 'Linked Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbStruct(XCLP, 'Linked Reference Color', [
- wbStruct('Link Start Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Link End Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ])
- ]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', [REFR, ACRE, ACHR, PGRE, PMIS, PBEA, PLYR]),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Flags ---}
- wbInteger(XACT, 'Action Flag', itU32, wbFlags([
- 'Use Default',
- 'Activate',
- 'Open',
- 'Open by Default'
- ])),
- wbEmpty(ONAM, 'Open by Default'),
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- Generated Data ---}
- wbStruct(XNDP, 'Navigation Door Link', [
- wbFormIDCk('Navigation Mesh', [NAVM]),
- wbInteger('Teleport Marker Triangle', itS16, wbREFRNavmeshTriangleToStr, wbStringToInt),
- wbByteArray('Unused', 2)
- ]),
-
- wbArray(XPOD, 'Portal Data', wbFormIDCk('Room', [REFR, NULL]), 2),
- wbStruct(XPTL, 'Portal Data', [
- wbStruct('Size', [
- wbFloat('Width', cpNormal, False, 2),
- wbFloat('Height', cpNormal, False, 2)
- ]),
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation (Quaternion?)', [
- wbFloat('q1'),
- wbFloat('q2'),
- wbFloat('q3'),
- wbFloat('q4')
- ])
- ]),
-
- wbInteger(XSED, 'SpeedTree Seed', itU8),
-
- wbRStruct('Room Data', [
- wbStruct(XRMR, 'Header', [
- wbInteger('Linked Rooms Count', itU16),
- wbByteArray('Unknown', 2)
- ]),
- wbRArrayS('Linked Rooms',
- wbFormIDCk(XLRM, 'Linked Room', [REFR])
- )
- ], []),
-
- wbStruct(XOCP, 'Occlusion Plane Data', [
- wbStruct('Size', [
- wbFloat('Width', cpNormal, False, 2),
- wbFloat('Height', cpNormal, False, 2)
- ]),
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation (Quaternion?)', [
- wbFloat('q1'),
- wbFloat('q2'),
- wbFloat('q3'),
- wbFloat('q4')
- ])
- ]),
- wbArray(XORD, 'Linked Occlusion Planes', wbFormIDCk('Plane', [REFR, NULL]), [
- 'Right',
- 'Left',
- 'Bottom',
- 'Top'
- ]),
-
- wbXLOD,
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo, cpNormal, False, wbREFRAfterLoad);
-
-
- wbRecord(REGN, 'Region', [
- wbEDID,
- wbICON,
- wbStruct(RCLR, 'Map Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCkNoReach(WNAM, 'Worldspace', [WRLD]),
-
- wbRArray('Region Areas', wbRStruct('Region Area', [
- wbInteger(RPLI, 'Edge Fall-off', itU32),
- wbArray(RPLD, 'Region Point List Data', wbStruct('Point', [
- wbFloat('X'),
- wbFloat('Y')
- ]), 0, wbRPLDAfterLoad)
- ], [])),
-
- wbRArrayS('Region Data Entries', wbRStructSK([0], 'Region Data Entry', [
- {always starts with an RDAT}
- wbStructSK(RDAT, [0], 'Data Header', [
- wbInteger('Type', itU32, wbEnum([
- {0}'',
- {1}'',
- {2}'Objects',
- {3}'Weather',
- {4}'Map',
- {5}'Land',
- {6}'Grass',
- {7}'Sound',
- {8}'',
- {9}''
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Override'
- ])),
- wbInteger('Priority', itU8),
- wbByteArray('Unused')
- ], cpNormal, True),
-
- {followed by one of these: }
-
- {--- Objects ---}
- wbArray(RDOT, 'Objects', wbStruct('Object', [
- wbFormIDCk('Object', [TREE, STAT, LTEX]),
- wbInteger('Parent Index', itU16, wbHideFFFF),
- wbByteArray('Unused', 2),
- wbFloat('Density'),
- wbInteger('Clustering', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbInteger('Flags', itU8, wbFlags([
- {0}'Conform to slope',
- {1}'Paint Vertices',
- {2}'Size Variance +/-',
- {3}'X +/-',
- {4}'Y +/-',
- {5}'Z +/-',
- {6}'Tree',
- {7}'Huge Rock'
- ])),
- wbInteger('Radius wrt Parent', itU16),
- wbInteger('Radius', itU16),
- wbFloat('Min Height'),
- wbFloat('Max Height'),
- wbFloat('Sink'),
- wbFloat('Sink Variance'),
- wbFloat('Size Variance'),
- wbStruct('Angle Variance', [
- wbInteger('X', itU16),
- wbInteger('Y', itU16),
- wbInteger('Z', itU16)
- ]),
- wbByteArray('Unused', 2),
- wbByteArray('Unknown', 4)
- ]), 0, nil, nil, cpNormal, False, wbREGNObjectsDontShow),
-
- {--- Map ---}
- wbString(RDMP, 'Map Name', 0, cpTranslate, False, wbREGNMapDontShow),
-
- {--- Grass ---}
- wbArrayS(RDGS, 'Grasses', wbStructSK([0], 'Grass', [
- wbFormIDCk('Grass', [GRAS]),
- wbByteArray('Unknown',4)
- ]), 0, cpNormal, False, nil, nil, wbREGNGrassDontShow),
-
- {--- Sound ---}
- wbInteger(RDMD, 'Music Type', itU32, wbMusicEnum, cpIgnore, False, False, wbNeverShow),
- wbFormIDCk(RDMO, 'Music', [MUSC], False, cpNormal, False, wbREGNSoundDontShow),
- wbArrayS(RDSD, 'Sounds', wbStructSK([0], 'Sound', [
- wbFormIDCk('Sound', [SOUN]),
- wbInteger('Flags', itU32, wbFlags([
- 'Pleasant',
- 'Cloudy',
- 'Rainy',
- 'Snowy'
- ])),
- wbInteger('Chance', itU32, wbScaledInt4ToStr, wbScaledInt4ToInt)
- ]), 0, cpNormal, False, nil, nil, wbREGNSoundDontShow),
-
- {--- Weather ---}
- wbArrayS(RDWT, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR]),
- wbInteger('Chance', itU32),
- wbFormIDCk('Global', [GLOB, NULL])
- ]), 0, cpNormal, False, nil, nil, wbREGNWeatherDontShow)
- ], []))
- ], True);
-
- wbRecord(SOUN, 'Sound', [
- wbEDIDReq,
- wbOBNDReq,
- wbString(FNAM, 'Sound Filename'),
- wbRUnion('Sound Data', [
- wbStruct(SNDD, 'Sound Data', [
- wbInteger('Minimum Attentuation Distance', itU8, wbMul(5)),
- wbInteger('Maximum Attentuation Distance', itU8, wbMul(100)),
- wbInteger('Frequency Adjustment %', itS8),
- wbByteArray('Unused', 1),
- wbInteger('Flags', itU32, wbFlags([
- {0x0001} 'Random Frequency Shift',
- {0x0002} 'Play At Random',
- {0x0004} 'Environment Ignored',
- {0x0008} 'Random Location',
- {0x0010} 'Loop',
- {0x0020} 'Menu Sound',
- {0x0040} '2D',
- {0x0080} '360 LFE',
- {0x0100} 'Dialogue Sound',
- {0x0200} 'Envelope Fast',
- {0x0400} 'Envelope Slow',
- {0x0800} '2D Radius',
- {0x1000} 'Mute When Submerged'
- ])),
- wbInteger('Static attentuation cdB', itS16),
- wbInteger('Stop time ', itU8),
- wbInteger('Start time ', itU8),
- wbArray('Attenuation Curve', wbInteger('Point', itS16), 5),
- wbInteger('Reverb Attenuation Control', itS16),
- wbInteger('Priority', itS32),
- wbByteArray('Unknown', 8)
- ], cpNormal, True),
- wbStruct(SNDX, 'Sound Data', [
- wbInteger('Minimum attentuation distance', itU8, wbMul(5)),
- wbInteger('Maximum attentuation distance', itU8, wbMul(100)),
- wbInteger('Frequency adjustment %', itS8),
- wbByteArray('Unused', 1),
- wbInteger('Flags', itU32, wbFlags([
- {0x0001} 'Random Frequency Shift',
- {0x0002} 'Play At Random',
- {0x0004} 'Environment Ignored',
- {0x0008} 'Random Location',
- {0x0010} 'Loop',
- {0x0020} 'Menu Sound',
- {0x0040} '2D',
- {0x0080} '360 LFE',
- {0x0100} 'Dialogue Sound',
- {0x0200} 'Envelope Fast',
- {0x0400} 'Envelope Slow',
- {0x0800} '2D Radius',
- {0x1000} 'Mute When Submerged'
- ])),
- wbInteger('Static attentuation cdB', itS16),
- wbInteger('Stop time ', itU8),
- wbInteger('Start time ', itU8)
- ], cpNormal, True)
- ], [], cpNormal, True),
- wbArray(ANAM, 'Attenuation Curve', wbInteger('Point', itS16), 5, nil, nil, cpNormal, False, wbNeverShow),
- wbInteger(GNAM, 'Reverb Attenuation Control', itS16, nil, cpNormal, False, False, wbNeverShow),
- wbInteger(HNAM, 'Priority', itS32, nil, cpNormal, False, False, wbNeverShow)
- ], False, nil, cpNormal, False, wbSOUNAfterLoad);
-
- wbRecord(SPEL, 'Actor Effect', [
- wbEDIDReq,
- wbFULL,
- wbStruct(SPIT, '', [
- wbInteger('Type', itU32, wbEnum([
- {0} 'Actor Effect',
- {1} 'Disease',
- {2} 'Power',
- {3} 'Lesser Power',
- {4} 'Ability',
- {5} 'Poison',
- {6} '',
- {7} '',
- {8} '',
- {9} '',
- {10} 'Addiction'
- ])),
- wbInteger('Cost (Unused)', itU32),
- wbInteger('Level (Unused)', itU32, wbEnum([
- {0} 'Unused'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- {0x00000001} 'No Auto-Calc',
- {0x00000002} 'Immune to Silence 1?',
- {0x00000004} 'PC Start Effect',
- {0x00000008} 'Immune to Silence 2?',
- {0x00000010} 'Area Effect Ignores LOS',
- {0x00000020} 'Script Effect Always Applies',
- {0x00000040} 'Disable Absorb/Reflect',
- {0x00000080} 'Force Touch Explode'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffectsReq
- ]);
-
- wbRecord(STAT, 'Static', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODL
- ]);
-
- wbRecord(TES4, 'Main File Header', [
- wbStruct(HEDR, 'Header', [
- wbFloat('Version'),
- wbInteger('Number of Records', itU32),
- wbInteger('Next Object ID', itU32)
- ], cpNormal, True),
- wbByteArray(OFST, 'Unknown', 0, cpIgnore),
- wbByteArray(DELE, 'Unknown', 0, cpIgnore),
- wbString(CNAM, 'Author', 0, cpTranslate, True),
- wbString(SNAM, 'Description', 0, cpTranslate),
- wbRArray('Master Files', wbRStruct('Master File', [
- wbString(MAST, 'Filename', 0, cpNormal, True),
- wbByteArray(DATA, 'Unused', 8, cpIgnore, True)
- ], [ONAM])),
- wbArray(ONAM, 'Overriden Forms', wbFormIDCk('Form', [REFR, ACHR, ACRE, PMIS, PBEA, PGRE, LAND, NAVM]), 0, nil, nil, cpNormal, False, wbTES4ONAMDontShow),
- wbByteArray(SCRN, 'Screenshot')
- ], True, nil, cpNormal, True, wbRemoveOFST);
-
- wbRecord(TREE, 'Tree', [
- wbEDIDReq,
- wbOBNDReq,
- wbMODLReq,
- wbICONReq,
- wbArrayS(SNAM, 'SpeedTree Seeds', wbInteger('SpeedTree Seed', itU32), 0, cpNormal, True),
- wbStruct(CNAM, 'Tree Data', [
- wbFloat('Leaf Curvature'),
- wbFloat('Minimum Leaf Angle'),
- wbFloat('Maximum Leaf Angle'),
- wbFloat('Branch Dimming Value'),
- wbFloat('Leaf Dimming Value'),
- wbInteger('Shadow Radius', itS32),
- wbFloat('Rock Speed'),
- wbFloat('Rustle Speed')
- ], cpNormal, True),
- wbStruct(BNAM, 'Billboard Dimensions', [
- wbFloat('Width'),
- wbFloat('Height')
- ], cpNormal, True)
- ]);
-end;
-
-procedure DefineFO3f;
-begin
- wbRecord(WATR, 'Water', [
- wbEDIDReq,
- wbFULL,
- wbString(NNAM, 'Noise Map', 0, cpNormal, True),
- wbInteger(ANAM, 'Opacity', itU8, nil, cpNormal, True),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- {0}'Causes Damage',
- {1}'Reflective'
- ]), cpNormal, True),
- wbString(MNAM, 'Material ID', 0, cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SOUN]),
- wbFormIDCk(XNAM, 'Actor Effect', [SPEL]),
- wbInteger(DATA, 'Damage', itU16, nil, cpNormal, True, True),
- wbRUnion('Visual Data', [
- wbStruct(DNAM, 'Visual Data', [
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Water Properties - Sun Power'),
- wbFloat('Water Properties - Reflectivity Amount'),
- wbFloat('Water Properties - Fresnel Amount'),
- wbByteArray('Unused', 4),
- wbFloat('Fog Properties - Above Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Above Water - Fog Distance - Far Plane'),
- wbStruct('Shallow Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Deep Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Reflection Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbByteArray('Unused', 4),
- wbFloat('Rain Simulator - Force'),
- wbFloat('Rain Simulator - Velocity'),
- wbFloat('Rain Simulator - Falloff'),
- wbFloat('Rain Simulator - Dampner'),
- wbFloat('Displacement Simulator - Starting Size'),
- wbFloat('Displacement Simulator - Force'),
- wbFloat('Displacement Simulator - Velocity'),
- wbFloat('Displacement Simulator - Falloff'),
- wbFloat('Displacement Simulator - Dampner'),
- wbFloat('Rain Simulator - Starting Size'),
- wbFloat('Noise Properties - Normals - Noise Scale'),
- wbFloat('Noise Properties - Noise Layer One - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer One - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Speed'),
- wbFloat('Noise Properties - Normals - Depth Falloff Start'),
- wbFloat('Noise Properties - Normals - Depth Falloff End'),
- wbFloat('Fog Properties - Above Water - Fog Amount'),
- wbFloat('Noise Properties - Normals - UV Scale'),
- wbFloat('Fog Properties - Under Water - Fog Amount'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Far Plane'),
- wbFloat('Water Properties - Distortion Amount'),
- wbFloat('Water Properties - Shininess'),
- wbFloat('Water Properties - Reflection HDR Multiplier'),
- wbFloat('Water Properties - Light Radius'),
- wbFloat('Water Properties - Light Brightness'),
- wbFloat('Noise Properties - Noise Layer One - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Two - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Three - UV Scale'),
- wbFloat('Noise Properties - Noise Layer One - Amplitude Scale'),
- wbFloat('Noise Properties - Noise Layer Two - Amplitude Scale'),
- wbFloat('Noise Properties - Noise Layer Three - Amplitude Scale')
- ], cpNormal, True, nil, 46),
- wbStruct(DATA, 'Visual Data', [
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Water Properties - Sun Power'),
- wbFloat('Water Properties - Reflectivity Amount'),
- wbFloat('Water Properties - Fresnel Amount'),
- wbByteArray('Unused', 4),
- wbFloat('Fog Properties - Above Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Above Water - Fog Distance - Far Plane'),
- wbStruct('Shallow Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Deep Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Reflection Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbByteArray('Unused', 4),
- wbFloat('Rain Simulator - Force'),
- wbFloat('Rain Simulator - Velocity'),
- wbFloat('Rain Simulator - Falloff'),
- wbFloat('Rain Simulator - Dampner'),
- wbFloat('Displacement Simulator - Starting Size'),
- wbFloat('Displacement Simulator - Force'),
- wbFloat('Displacement Simulator - Velocity'),
- wbFloat('Displacement Simulator - Falloff'),
- wbFloat('Displacement Simulator - Dampner'),
- wbFloat('Rain Simulator - Starting Size'),
- wbFloat('Noise Properties - Normals - Noise Scale'),
- wbFloat('Noise Properties - Noise Layer One - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Direction'),
- wbFloat('Noise Properties - Noise Layer One - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Two - Wind Speed'),
- wbFloat('Noise Properties - Noise Layer Three - Wind Speed'),
- wbFloat('Noise Properties - Normals - Depth Falloff Start'),
- wbFloat('Noise Properties - Normals - Depth Falloff End'),
- wbFloat('Fog Properties - Above Water - Fog Amount'),
- wbFloat('Noise Properties - Normals - UV Scale'),
- wbFloat('Fog Properties - Under Water - Fog Amount'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Near Plane'),
- wbFloat('Fog Properties - Under Water - Fog Distance - Far Plane'),
- wbFloat('Water Properties - Distortion Amount'),
- wbFloat('Water Properties - Shininess'),
- wbFloat('Water Properties - Reflection HDR Multiplier'),
- wbFloat('Water Properties - Light Radius'),
- wbFloat('Water Properties - Light Brightness'),
- wbFloat('Noise Properties - Noise Layer One - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Two - UV Scale'),
- wbFloat('Noise Properties - Noise Layer Three - UV Scale'),
- wbEmpty('Noise Properties - Noise Layer One - Amplitude Scale'),
- wbEmpty('Noise Properties - Noise Layer Two - Amplitude Scale'),
- wbEmpty('Noise Properties - Noise Layer Three - Amplitude Scale'),
- wbInteger('Damage (Old Format)', itU16)
- ], cpNormal, True)
- ], [], cpNormal, True),
- wbStruct(GNAM, 'Related Waters (Unused)', [
- wbFormIDCk('Daytime', [WATR, NULL]),
- wbFormIDCk('Nighttime', [WATR, NULL]),
- wbFormIDCk('Underwater', [WATR, NULL])
- ], cpNormal, True)
- ], False, nil, cpNormal, False, wbWATRAfterLoad);
-
- wbRecord(WEAP, 'Weapon', [
- wbEDIDReq,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbEITM,
- wbInteger(EAMT, 'Enchantment Charge Amount', itS16),
- wbFormIDCkNoReach(NAM0, 'Ammo', [AMMO, FLST]),
- wbDEST,
- wbREPL,
- wbETYPReq,
- wbBIPL,
- wbYNAM,
- wbZNAM,
- wbRStruct('Shell Casing Model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO2S
- ], []),
- wbRStruct('Scope Model', [
- wbString(MOD3, 'Model Filename'),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO3S
- ], []),
- wbFormIDCK(EFSD, 'Scope Effect', [EFSH]),
- wbRStruct('World Model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore),
- wbMO4S
- ], []),
- wbString(NNAM, 'Embedded Weapon Node'),
- wbFormIDCk(INAM, 'Impact DataSet', [IPDS]),
- wbFormIDCk(WNAM, '1st Person Model', [STAT]),
- wbFormIDCk(SNAM, 'Sound - Gun - Shoot 3D', [SOUN]),
- wbFormIDCk(XNAM, 'Sound - Gun - Shoot 2D', [SOUN]),
- wbFormIDCk(NAM7, 'Sound - Gun - Shoot 3D Looping', [SOUN]),
- wbFormIDCk(TNAM, 'Sound - Melee - Swing / Gun - No Ammo', [SOUN]),
- wbFormIDCk(NAM6, 'Sound - Block', [SOUN]),
- wbFormIDCk(UNAM, 'Sound - Idle', [SOUN]),
- wbFormIDCk(NAM9, 'Sound - Equip', [SOUN]),
- wbFormIDCk(NAM8, 'Sound - Unequip', [SOUN]),
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbInteger('Health', itS32),
- wbFloat('Weight'),
- wbInteger('Base Damage', itS16),
- wbInteger('Clip Size', itU8)
- ], cpNormal, True),
- wbStruct(DNAM, '', [
- {00} wbInteger('Animation Type', itU32, wbWeaponAnimTypeEnum),
- {04} wbFloat('Animation Multiplier'),
- {08} wbFloat('Reach'),
- {12} wbInteger('Flags 1', itU8, wbFlags([
- 'Ignores Normal Weapon Resistance',
- 'Is Automatic',
- 'Has Scope',
- 'Can''t Drop',
- 'Hide Backpack',
- 'Embedded Weapon',
- 'Don''t Use 1st Person IS Animations',
- 'Non-Playable'
- ])),
- {13} wbInteger('Grip Animation', itU8, wbEnum([
- ], [
- 171, 'HandGrip1',
- 172, 'HandGrip2',
- 173, 'HandGrip3',
- 255, 'DEFAULT'
- ])),
- {14} wbInteger('Ammo Use', itU8),
- {15} wbInteger('Reload Animation', itU8, wbReloadAnimEnum),
- {16} wbFloat('Min Spread'),
- {20} wbFloat('Spread'),
- {24} wbFloat('Unknown'),
- {28} wbFloat('Sight FOV'),
- {32} wbByteArray('Unused', 4),
- {36} wbFormIDCk('Projectile', [PROJ, NULL]),
- {40} wbInteger('Base VATS To-Hit Chance', itU8),
- {41} wbInteger('Attack Animation', itU8, wbEnum([
- ], [
- 26, 'AttackLeft',
- 32, 'AttackRight',
- 38, 'Attack3',
- 44, 'Attack4',
- 50, 'Attack5',
- 56, 'Attack6',
- 62, 'Attack7',
- 68, 'Attack8',
- 74, 'AttackLoop',
- 80, 'AttackSpin',
- 86, 'AttackSpin2',
- 97, 'PlaceMine',
- 103, 'PlaceMine2',
- 109, 'AttackThrow',
- 115, 'AttackThrow2',
- 121, 'AttackThrow3',
- 127, 'AttackThrow4',
- 133, 'AttackThrow5',
- 255, 'DEFAULT'
- ])),
- {42} wbInteger('Projectile Count', itU8),
- {43} wbInteger('Embedded Weapon - Actor Value', itU8, wbEnum([
- {00} 'Perception',
- {01} 'Endurance',
- {02} 'Left Attack',
- {03} 'Right Attack',
- {04} 'Left Mobility',
- {05} 'Right Mobilty',
- {06} 'Brain'
- ])),
- {44} wbFloat('Min Range'),
- {48} wbFloat('Max Range'),
- {52} wbInteger('On Hit', itU32, wbEnum([
- 'Normal formula behavior',
- 'Dismember Only',
- 'Explode Only',
- 'No Dismember/Explode'
- ])),
- {56} wbInteger('Flags 2', itU32, wbFlags([
- {0x00000001}'Player Only',
- {0x00000002}'NPCs Use Ammo',
- {0x00000004}'No Jam After Reload',
- {0x00000008}'Override - Action Points',
- {0x00000010}'Minor Crime',
- {0x00000020}'Range - Fixed',
- {0x00000040}'Not Used In Normal Combat',
- {0x00000080}'Override - Damage to Weapon Mult',
- {0x00000100}'Don''t Use 3rd Person IS Animations',
- {0x00000200}'Short Burst',
- {0x00000400}'Rumble Alternate',
- {0x00000800}'Long Burst'
- ])),
- {60} wbFloat('Animation Attack Multiplier'),
- {64} wbFloat('Fire Rate'),
- {68} wbFloat('Override - Action Points'),
- {72} wbFloat('Rumble - Left Motor Strength'),
- {76} wbFloat('Rumble - Right Motor Strength'),
- {80} wbFloat('Rumble - Duration'),
- {84} wbFloat('Override - Damage to Weapon Mult'),
- {88} wbFloat('Attack Shots/Sec'),
- {92} wbFloat('Reload Time'),
- {96} wbFloat('Jam Time'),
- {100} wbFloat('Aim Arc'),
- {104} wbInteger('Skill', itS32, wbActorValueEnum),
- {108} wbInteger('Rumble - Pattern', itU32, wbEnum([
- 'Constant',
- 'Square',
- 'Triangle',
- 'Sawtooth'
- ])),
- {112} wbFloat('Rumble - Wavelength'),
- {116} wbFloat('Limb Dmg Mult'),
- {120} wbInteger('Resist Type', itS32, wbActorValueEnum),
- {124} wbFloat('Sight Usage'),
- {128} wbFloat('Semi-Automatic Fire Delay Min'),
- {132} wbFloat('Semi-Automatic Fire Delay Max')
- ], cpNormal, True, nil, 36),
-
- wbStruct(CRDT, 'Critical Data', [
- {00} wbInteger('Critical Damage', itU16),
- {09} wbByteArray('Unused', 2),
- {04} wbFloat('Crit % Mult'),
- {08} wbInteger('Flags', itU8, wbFlags([
- 'On Death'
- ])),
- {09} wbByteArray('Unused', 3),
- {12} wbFormIDCk('Effect', [SPEL, NULL])
- ], cpNormal, True),
- wbInteger(VNAM, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True)
- ], False, nil, cpNormal, False, wbWEAPAfterLoad);
-
- if wbSimpleRecords then
- wbRecord(WRLD, 'Worldspace', [
- wbEDIDReq,
- wbFULL,
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbRStruct('Parent', [
- wbFormIDCk(WNAM, 'Worldspace', [WRLD]),
- wbStruct(PNAM, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0x00000001}'Use Land Data',
- {0x00000002}'Use LOD Data',
- {0x00000004}'Use Map Data',
- {0x00000008}'Use Water Data',
- {0x00000010}'Use Climate Data',
- {0x00000020}'Use Image Space Data',
- {0x00000040}'',
- {0x00000080}'Needs Water Adjustment'
- ], True)),
- wbByteArray('Unknown', 1)
- ], cpNormal, True)
- ], []),
- wbFormIDCk(CNAM, 'Climate', [CLMT]),
- wbFormIDCk(NAM2, 'Water', [WATR]),
- wbFormIDCk(NAM3, 'LOD Water Type', [WATR]),
- wbFloat(NAM4, 'LOD Water Height'),
- wbStruct(DNAM, 'Land Data', [
- wbFloat('Default Land Height'),
- wbFloat('Default Water Height')
- ]),
- wbICON,
- wbStruct(MNAM, 'Map Data', [
- wbStruct('Usable Dimensions', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32)
- ]),
- wbStruct('Cell Coordinates', [
- wbStruct('NW Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbStruct('SE Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ])
- ])
- ]),
- wbStruct(ONAM, 'World Map Offset Data', [
- wbFloat('World Map Scale'),
- wbFloat('Cell X Offset'),
- wbFloat('Cell Y Offset')
- ], cpNormal, True),
- wbFormIDCk(INAM, 'Image Space', [IMGS]),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Small World',
- {0x02} 'Can''t Fast Travel',
- {0x04} '',
- {0x08} '',
- {0x10} 'No LOD Water',
- {0x20} 'No LOD Noise',
- {0x40} 'Don''t Allow NPC Fall Damage',
- {0x80} 'Needs Water Adjustment'
- ]), cpNormal, True),
- wbRStruct('Object Bounds', [
- wbStruct(NAM0, 'Min', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True),
- wbStruct(NAM9, 'Max', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True)
- ], []),
- wbFormIDCk(ZNAM, 'Music', [MUSC]),
- wbString(NNAM, 'Canopy Shadow', 0, cpNormal, True),
- wbString(XNAM, 'Water Noise Texture', 0, cpNormal, True),
- wbRArrayS('Swapped Impacts', wbStructExSK(IMPS, [0, 1], [2], 'Swapped Impact', [
- wbInteger('Material Type', itU32, wbImpactMaterialTypeEnum),
- wbFormIDCkNoReach('Old', [IPCT]),
- wbFormIDCk('New', [IPCT, NULL])
- ])),
- wbArray(IMPF, 'Footstep Materials', wbString('Unknown', 30), [
- 'ConcSolid',
- 'ConcBroken',
- 'MetalSolid',
- 'MetalHollow',
- 'MetalSheet',
- 'Wood',
- 'Sand',
- 'Dirt',
- 'Grass',
- 'Water'
- ]),
- wbByteArray(OFST, 'Offset Data')
- ], False, nil, cpNormal, False, wbRemoveOFST)
- else
- wbRecord(WRLD, 'Worldspace', [
- wbEDIDReq,
- wbFULL,
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbRStruct('Parent', [
- wbFormIDCk(WNAM, 'Worldspace', [WRLD]),
- wbStruct(PNAM, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0x00000001}'Use Land Data',
- {0x00000002}'Use LOD Data',
- {0x00000004}'Use Map Data',
- {0x00000008}'Use Water Data',
- {0x00000010}'Use Climate Data',
- {0x00000020}'Use Image Space Data',
- {0x00000040}'',
- {0x00000080}'Needs Water Adjustment'
- ], True)),
- wbByteArray('Unknown', 1)
- ], cpNormal, True)
- ], []),
- wbFormIDCk(CNAM, 'Climate', [CLMT]),
- wbFormIDCk(NAM2, 'Water', [WATR]),
- wbFormIDCk(NAM3, 'LOD Water Type', [WATR]),
- wbFloat(NAM4, 'LOD Water Height'),
- wbStruct(DNAM, 'Land Data', [
- wbFloat('Default Land Height'),
- wbFloat('Default Water Height')
- ]),
- wbICON,
- wbStruct(MNAM, 'Map Data', [
- wbStruct('Usable Dimensions', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32)
- ]),
- wbStruct('Cell Coordinates', [
- wbStruct('NW Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbStruct('SE Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ])
- ])
- ]),
- wbStruct(ONAM, 'World Map Offset Data', [
- wbFloat('World Map Scale'),
- wbFloat('Cell X Offset'),
- wbFloat('Cell Y Offset')
- ], cpNormal, True),
- wbFormIDCk(INAM, 'Image Space', [IMGS]),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Small World',
- {0x02} 'Can''t Fast Travel',
- {0x04} '',
- {0x08} '',
- {0x10} 'No LOD Water',
- {0x20} 'No LOD Noise',
- {0x40} 'Don''t Allow NPC Fall Damage',
- {0x80} 'Needs Water Adjustment'
- ]), cpNormal, True),
- wbRStruct('Object Bounds', [
- wbStruct(NAM0, 'Min', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True),
- wbStruct(NAM9, 'Max', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True)
- ], []),
- wbFormIDCk(ZNAM, 'Music', [MUSC]),
- wbString(NNAM, 'Canopy Shadow', 0, cpNormal, True),
- wbString(XNAM, 'Water Noise Texture', 0, cpNormal, True),
- wbRArrayS('Swapped Impacts', wbStructExSK(IMPS, [0, 1], [2], 'Swapped Impact', [
- wbInteger('Material Type', itU32, wbImpactMaterialTypeEnum),
- wbFormIDCkNoReach('Old', [IPCT]),
- wbFormIDCk('New', [IPCT, NULL])
- ])),
- wbArray(IMPF, 'Footstep Materials', wbString('Unknown', 30), [
- 'ConcSolid',
- 'ConcBroken',
- 'MetalSolid',
- 'MetalHollow',
- 'MetalSheet',
- 'Wood',
- 'Sand',
- 'Dirt',
- 'Grass',
- 'Water'
- ]),
- wbArray(OFST, 'Offset Data', wbArray('Rows', wbInteger('Offset', itU32), wbOffsetDataColsCounter), 0)
- ], False, nil, cpNormal, False, wbRemoveOFST);
-
- wbRecord(WTHR, 'Weather', [
- wbEDIDReq,
- wbFormIDCk(_0_IAD, 'Sunrise Image Space Modifier', [IMAD]),
- wbFormIDCk(_1_IAD, 'Day Image Space Modifier', [IMAD]),
- wbFormIDCk(_2_IAD, 'Sunset Image Space Modifier', [IMAD]),
- wbFormIDCk(_3_IAD, 'Night Image Space Modifier', [IMAD]),
- wbString(DNAM, 'Cloud Textures - Layer 0', 0, cpNormal, True),
- wbString(CNAM, 'Cloud Textures - Layer 1', 0, cpNormal, True),
- wbString(ANAM, 'Cloud Textures - Layer 2', 0, cpNormal, True),
- wbString(BNAM, 'Cloud Textures - Layer 3', 0, cpNormal, True),
- wbMODL,
- wbByteArray(LNAM, 'Unknown', 4, cpNormal, True),
- wbArray(ONAM, 'Cloud Speed', wbInteger('Layer', itU8{, wbDiv(2550)}), 4, nil, nil, cpNormal, True),
- wbArray(PNAM, 'Cloud Layer Colors',
- wbArray('Layer',
- wbStruct('Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- ['Sunrise', 'Day', 'Sunset', 'Night']
- ),
- 4),
- wbArray(NAM0, 'Colors by Types/Times',
- wbArray('Type',
- wbStruct('Time', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- ['Sunrise', 'Day', 'Sunset', 'Night']
- ),
- ['Sky-Upper','Fog','Unused','Ambient','Sunlight','Sun','Stars','Sky-Lower','Horizon','Unused']
- , cpNormal, True),
- wbStruct(FNAM, 'Fog Distance', [
- wbFloat('Day - Near'),
- wbFloat('Day - Far'),
- wbFloat('Night - Near'),
- wbFloat('Night - Far'),
- wbFloat('Day - Power'),
- wbFloat('Night - Fower')
- ], cpNormal, True),
- wbByteArray(INAM, 'Unused', 304, cpIgnore, True),
- wbStruct(DATA, '', [
- wbInteger('Wind Speed', itU8),
- wbInteger('Cloud Speed (Lower)', itU8),
- wbInteger('Cloud Speed (Upper)', itU8),
- wbInteger('Trans Delta', itU8),
- wbInteger('Sun Glare', itU8),
- wbInteger('Sun Damage', itU8),
- wbInteger('Precipitation - Begin Fade In', itU8),
- wbInteger('Precipitation - End Fade Out', itU8),
- wbInteger('Thunder/Lightning - Begin Fade In', itU8),
- wbInteger('Thunder/Lightning - End Fade Out', itU8),
- wbInteger('Thunder/Lightning - Frequency', itU8),
- wbInteger('Weather Classification', itU8, wbWthrDataClassification),
- wbStruct('Lightning Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8)
- ])
- ], cpNormal, True),
- wbRArray('Sounds', wbStruct(SNAM, 'Sound', [
- wbFormIDCk('Sound', [SOUN]),
- wbInteger('Type', itU32, wbEnum([
- {0}'Default',
- {1}'Precip',
- {2}'Wind',
- {3}'Thunder'
- ]))
- ]))
- ]);
-
- wbAddGroupOrder(GMST);
- wbAddGroupOrder(TXST);
- wbAddGroupOrder(MICN);
- wbAddGroupOrder(GLOB);
- wbAddGroupOrder(CLAS);
- wbAddGroupOrder(FACT);
- wbAddGroupOrder(HDPT);
- wbAddGroupOrder(HAIR);
- wbAddGroupOrder(EYES);
- wbAddGroupOrder(RACE);
- wbAddGroupOrder(SOUN);
- wbAddGroupOrder(ASPC);
- wbAddGroupOrder(MGEF);
- wbAddGroupOrder(SCPT);
- wbAddGroupOrder(LTEX);
- wbAddGroupOrder(ENCH);
- wbAddGroupOrder(SPEL);
- wbAddGroupOrder(ACTI);
- wbAddGroupOrder(TACT);
- wbAddGroupOrder(TERM);
- wbAddGroupOrder(ARMO);
- wbAddGroupOrder(BOOK);
- wbAddGroupOrder(CONT);
- wbAddGroupOrder(DOOR);
- wbAddGroupOrder(INGR);
- wbAddGroupOrder(LIGH);
- wbAddGroupOrder(MISC);
- wbAddGroupOrder(STAT);
- wbAddGroupOrder(SCOL);
- wbAddGroupOrder(MSTT);
- wbAddGroupOrder(PWAT);
- wbAddGroupOrder(GRAS);
- wbAddGroupOrder(TREE);
- wbAddGroupOrder(FURN);
- wbAddGroupOrder(WEAP);
- wbAddGroupOrder(AMMO);
- wbAddGroupOrder(NPC_);
- wbAddGroupOrder(CREA);
- wbAddGroupOrder(LVLC);
- wbAddGroupOrder(LVLN);
- wbAddGroupOrder(KEYM);
- wbAddGroupOrder(ALCH);
- wbAddGroupOrder(IDLM);
- wbAddGroupOrder(NOTE);
- wbAddGroupOrder(PROJ);
- wbAddGroupOrder(LVLI);
- wbAddGroupOrder(WTHR);
- wbAddGroupOrder(CLMT);
- wbAddGroupOrder(COBJ);
- wbAddGroupOrder(REGN);
- wbAddGroupOrder(NAVI);
- wbAddGroupOrder(CELL);
- wbAddGroupOrder(WRLD);
- wbAddGroupOrder(DIAL);
- wbAddGroupOrder(QUST);
- wbAddGroupOrder(IDLE);
- wbAddGroupOrder(PACK);
- wbAddGroupOrder(CSTY);
- wbAddGroupOrder(LSCR);
- wbAddGroupOrder(ANIO);
- wbAddGroupOrder(WATR);
- wbAddGroupOrder(EFSH);
- wbAddGroupOrder(EXPL);
- wbAddGroupOrder(DEBR);
- wbAddGroupOrder(IMGS);
- wbAddGroupOrder(IMAD);
- wbAddGroupOrder(FLST);
- wbAddGroupOrder(PERK);
- wbAddGroupOrder(BPTD);
- wbAddGroupOrder(ADDN);
- wbAddGroupOrder(AVIF);
- wbAddGroupOrder(RADS);
- wbAddGroupOrder(CAMS);
- wbAddGroupOrder(CPTH);
- wbAddGroupOrder(VTYP);
- wbAddGroupOrder(IPCT);
- wbAddGroupOrder(IPDS);
- wbAddGroupOrder(ARMA);
- wbAddGroupOrder(ECZN);
- wbAddGroupOrder(MESG);
- wbAddGroupOrder(RGDL);
- wbAddGroupOrder(DOBJ);
- wbAddGroupOrder(LGTM);
- wbAddGroupOrder(MUSC);
-end;
-
-procedure DefineFO3;
-begin
- DefineFO3a;
- DefineFO3b;
- DefineFO3c;
- DefineFO3d;
- DefineFO3e;
- DefineFO3f;
-end;
-
-end.
diff --git a/lib/xedit/wbDefinitionsFO4.pas b/lib/xedit/wbDefinitionsFO4.pas
deleted file mode 100644
index 20aa7fa..0000000
--- a/lib/xedit/wbDefinitionsFO4.pas
+++ /dev/null
@@ -1,16450 +0,0 @@
-{*******************************************************************************
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
-*******************************************************************************}
-
-unit wbDefinitionsFO4;
-
-{$I wbDefines.inc}
-
-interface
-
-uses
- wbInterface;
-
-var
- wbBipedObjectFlags: IwbFlagsDef;
- wbEquipType: IwbFlagsDef;
- wbFurnitureEntryTypeFlags: IwbFlagsDef;
- wbPKDTFlags: IwbFlagsDef;
- wbPKDTInterruptFlags: IwbFlagsDef;
- wbSMNodeFlags: IwbFlagsDef;
-
- wbActorPropertyEnum: IwbEnumDef;
- wbAdvanceActionEnum: IwbEnumDef;
- wbStaggerEnum: IwbEnumDef;
- wbAlignmentEnum: IwbEnumDef;
- wbArmorPropertyEnum: IwbEnumDef;
- wbAxisEnum: IwbEnumDef;
- wbBipedObjectEnum: IwbEnumDef;
- wbBlendModeEnum: IwbEnumDef;
- wbBlendOpEnum: IwbEnumDef;
- wbBodyPartIndexEnum: IwbEnumDef;
- wbCastEnum: IwbEnumDef;
- wbCastingSourceEnum: IwbEnumDef;
- wbCrimeTypeEnum: IwbEnumDef;
- wbCriticalStageEnum: IwbEnumDef;
- wbEmotionTypeEnum: IwbEnumDef;
- wbEntryPointsEnum: IwbEnumDef;
- wbEventFunctionEnum: IwbEnumDef;
- wbEventMemberEnum: IwbEnumDef;
- wbFormTypeEnum: IwbEnumDef;
- wbFurnitureAnimTypeEnum: IwbEnumDef;
- wbLocationEnum: IwbEnumDef;
- wbMiscStatEnum: IwbEnumDef;
- wbMusicEnum: IwbEnumDef;
- wbObjectModProperties: IwbArrayDef;
- wbObjectTypeEnum: IwbEnumDef;
- wbPropTypeEnum: IwbEnumDef;
- wbQuadrantEnum: IwbEnumDef;
- wbSexEnum: IwbEnumDef;
- wbSkillEnum: IwbEnumDef;
- wbSoulGemEnum: IwbEnumDef;
- wbSoundLevelEnum: IwbEnumDef;
- wbTargetEnum: IwbEnumDef;
- wbVatsValueFunctionEnum: IwbEnumDef;
- wbWardStateEnum: IwbEnumDef;
- wbWeaponAnimTypeEnum: IwbEnumDef;
- wbWeaponPropertyEnum: IwbEnumDef;
- wbZTestFuncEnum: IwbEnumDef;
- wbKeywordTypeEnum: IwbEnumDef;
- wbReverbClassEnum: IwbEnumDef;
- wbHitBehaviourEnum: IwbEnumDef;
- wbBoolEnum: IwbEnumDef;
-
-procedure DefineFO4;
-
-implementation
-
-uses
- Types,
- Classes,
- SysUtils,
- Math,
- Variants,
- wbHelpers;
-
-const
- _00_IAD: TwbSignature = #$00'IAD';
- _01_IAD: TwbSignature = #$01'IAD';
- _02_IAD: TwbSignature = #$02'IAD';
- _03_IAD: TwbSignature = #$03'IAD';
- _04_IAD: TwbSignature = #$04'IAD';
- _05_IAD: TwbSignature = #$05'IAD';
- _06_IAD: TwbSignature = #$06'IAD';
- _07_IAD: TwbSignature = #$07'IAD';
- _08_IAD: TwbSignature = #$08'IAD';
- _09_IAD: TwbSignature = #$09'IAD';
- _0A_IAD: TwbSignature = #$0A'IAD';
- _0B_IAD: TwbSignature = #$0B'IAD';
- _0C_IAD: TwbSignature = #$0C'IAD';
- _0D_IAD: TwbSignature = #$0D'IAD';
- _0E_IAD: TwbSignature = #$0E'IAD';
- _0F_IAD: TwbSignature = #$0F'IAD';
- _10_IAD: TwbSignature = #$10'IAD';
- _11_IAD: TwbSignature = #$11'IAD';
- _12_IAD: TwbSignature = #$12'IAD';
- _13_IAD: TwbSignature = #$13'IAD';
- _14_IAD: TwbSignature = #$14'IAD';
- _40_IAD: TwbSignature = #$40'IAD';
- _41_IAD: TwbSignature = #$41'IAD';
- _42_IAD: TwbSignature = #$42'IAD';
- _43_IAD: TwbSignature = #$43'IAD';
- _44_IAD: TwbSignature = #$44'IAD';
- _45_IAD: TwbSignature = #$45'IAD';
- _46_IAD: TwbSignature = #$46'IAD';
- _47_IAD: TwbSignature = #$47'IAD';
- _48_IAD: TwbSignature = #$48'IAD';
- _49_IAD: TwbSignature = #$49'IAD';
- _4A_IAD: TwbSignature = #$4A'IAD';
- _4B_IAD: TwbSignature = #$4B'IAD';
- _4C_IAD: TwbSignature = #$4C'IAD';
- _4D_IAD: TwbSignature = #$4D'IAD';
- _4E_IAD: TwbSignature = #$4E'IAD';
- _4F_IAD: TwbSignature = #$4F'IAD';
- _50_IAD: TwbSignature = #$50'IAD';
- _51_IAD: TwbSignature = #$51'IAD';
- _52_IAD: TwbSignature = #$52'IAD';
- _53_IAD: TwbSignature = #$53'IAD';
- _54_IAD: TwbSignature = #$54'IAD';
-
-{00TX} _00_0TX: TwbSignature = #$30'0TX';
-{10TX} _10_0TX: TwbSignature = #$31'0TX';
-{20TX} _20_0TX: TwbSignature = #$32'0TX';
-{30TX} _30_0TX: TwbSignature = #$33'0TX';
-{40TX} _40_0TX: TwbSignature = #$34'0TX';
-{50TX} _50_0TX: TwbSignature = #$35'0TX';
-{60TX} _60_0TX: TwbSignature = #$36'0TX';
-{70TX} _70_0TX: TwbSignature = #$37'0TX';
-{80TX} _80_0TX: TwbSignature = #$38'0TX';
-{90TX} _90_0TX: TwbSignature = #$39'0TX';
-{:0TX} _3A_0TX: TwbSignature = #$3A'0TX';
-{;0TX} _3B_0TX: TwbSignature = #$3B'0TX';
-{<0TX} _3C_0TX: TwbSignature = #$3C'0TX';
-{=0TX} _3D_0TX: TwbSignature = #$3D'0TX';
-{>0TX} _3E_0TX: TwbSignature = #$3E'0TX';
-{?0TX} _3F_0TX: TwbSignature = #$3F'0TX';
-{@0TX} _40h_0TX: TwbSignature = #$40'0TX';
-{A0TX} A0TX: TwbSignature = 'A0TX';
-{B0TX} B0TX: TwbSignature = 'B0TX';
-{C0TX} C0TX: TwbSignature = 'C0TX';
-{D0TX} D0TX: TwbSignature = 'D0TX';
-{E0TX} E0TX: TwbSignature = 'E0TX';
-{F0TX} F0TX: TwbSignature = 'F0TX';
-{G0TX} G0TX: TwbSignature = 'G0TX';
-{H0TX} H0TX: TwbSignature = 'H0TX';
-{I0TX} I0TX: TwbSignature = 'I0TX';
-{J0TX} J0TX: TwbSignature = 'J0TX';
-{K0TX} K0TX: TwbSignature = 'K0TX';
-{L0TX} L0TX: TwbSignature = 'L0TX';
-
- AACT : TwbSignature = 'AACT';
- ACBS : TwbSignature = 'ACBS';
- ACEC : TwbSignature = 'ACEC'; { New To Dawnguard }
- ACEP : TwbSignature = 'ACEP'; { New To Dawnguard }
- ACHR : TwbSignature = 'ACHR';
- ACID : TwbSignature = 'ACID'; { New To Dawnguard }
- ACPR : TwbSignature = 'ACPR'; { New To Skyrim }
- ACSR : TwbSignature = 'ACSR'; { New To Dawnguard }
- ACTI : TwbSignature = 'ACTI';
- ACTV : TwbSignature = 'ACTV'; { New To Fallout 4 }
- ACUN : TwbSignature = 'ACUN'; { New To Dawnguard }
- ADDN : TwbSignature = 'ADDN';
- AECH : TwbSignature = 'AECH'; { New To Fallout 4 }
- AHCF : TwbSignature = 'AHCF'; { New To Skyrim }
- AHCM : TwbSignature = 'AHCM'; { New To Skyrim }
- AIDT : TwbSignature = 'AIDT';
- ALCA : TwbSignature = 'ALCA'; { New To Skyrim }
- ALCC : TwbSignature = 'ALCC'; { New To Fallout 4 }
- ALCH : TwbSignature = 'ALCH';
- ALCL : TwbSignature = 'ALCL'; { New To Skyrim }
- ALCO : TwbSignature = 'ALCO'; { New To Skyrim }
- ALCS : TwbSignature = 'ALCS'; { New To Fallout 4 }
- ALDI : TwbSignature = 'ALDI'; { New To Fallout 4 }
- ALDN : TwbSignature = 'ALDN'; { New To Skyrim }
- ALEA : TwbSignature = 'ALEA'; { New To Skyrim }
- ALED : TwbSignature = 'ALED'; { New To Skyrim }
- ALEQ : TwbSignature = 'ALEQ'; { New To Skyrim }
- ALFA : TwbSignature = 'ALFA'; { New To Skyrim }
- ALFC : TwbSignature = 'ALFC'; { New To Skyrim }
- ALFD : TwbSignature = 'ALFD'; { New To Skyrim }
- ALFE : TwbSignature = 'ALFE'; { New To Skyrim }
- ALFI : TwbSignature = 'ALFI'; { New To Skyrim }
- ALFL : TwbSignature = 'ALFL'; { New To Skyrim }
- ALFR : TwbSignature = 'ALFR'; { New To Skyrim }
- ALFV : TwbSignature = 'ALFV'; { New To Fallout 4 }
- ALID : TwbSignature = 'ALID'; { New To Skyrim }
- ALLA : TwbSignature = 'ALLA'; { New To Fallout 4 }
- ALLS : TwbSignature = 'ALLS'; { New To Skyrim }
- ALMI : TwbSignature = 'ALMI'; { New To Fallout 4 }
- ALNA : TwbSignature = 'ALNA'; { New To Skyrim }
- ALNT : TwbSignature = 'ALNT'; { New To Skyrim }
- ALPC : TwbSignature = 'ALPC'; { New To Skyrim }
- ALRT : TwbSignature = 'ALRT'; { New To Skyrim }
- ALSP : TwbSignature = 'ALSP'; { New To Skyrim }
- ALST : TwbSignature = 'ALST'; { New To Skyrim }
- ALUA : TwbSignature = 'ALUA'; { New To Skyrim }
- AMDL : TwbSignature = 'AMDL'; { New To Fallout 4 }
- AMMO : TwbSignature = 'AMMO';
- ANAM : TwbSignature = 'ANAM';
- ANIO : TwbSignature = 'ANIO';
- AOR2 : TwbSignature = 'AOR2'; { New To Fallout 4 }
- AORU : TwbSignature = 'AORU'; { New To Fallout 4 }
- APPR : TwbSignature = 'APPR'; { New To Fallout 4 }
- ARMA : TwbSignature = 'ARMA';
- ARMO : TwbSignature = 'ARMO';
- ARTO : TwbSignature = 'ARTO';
- ASPC : TwbSignature = 'ASPC';
- ASTP : TwbSignature = 'ASTP';
- ATKD : TwbSignature = 'ATKD'; { New to Skyrim }
- ATKE : TwbSignature = 'ATKE'; { New to Skyrim }
- ATKR : TwbSignature = 'ATKR'; { New to Skyrim }
- ATKT : TwbSignature = 'ATKT'; { New To Fallout 4 }
- ATKS : TwbSignature = 'ATKS'; { New To Fallout 4 }
- ATKW : TwbSignature = 'ATKW'; { New To Fallout 4 }
- ATTN : TwbSignature = 'ATTN'; { New To Fallout 4 }
- ATTX : TwbSignature = 'ATTX'; { New To Fallout 4 }
- ATXT : TwbSignature = 'ATXT';
- AVFL : TwbSignature = 'AVFL'; { New To Fallout 4 }
- AVIF : TwbSignature = 'AVIF';
- AVSK : TwbSignature = 'AVSK'; { New to Skyrim }
- BAMT : TwbSignature = 'BAMT'; { New to Skyrim }
- BCLF : TwbSignature = 'BCLF'; { New to Fallout 4 }
- BIDS : TwbSignature = 'BIDS'; { New to Skyrim }
- BIPL : TwbSignature = 'BIPL';
- BMCT : TwbSignature = 'BMCT';
- BMMP : TwbSignature = 'BMMP'; { New to Fallout 4 }
- BNAM : TwbSignature = 'BNAM';
- BNDS : TwbSignature = 'BNDS'; { New to Fallout 4 }
- BOD2 : TwbSignature = 'BOD2'; { New to Skyrim 1.6.91 CK}
- BODT : TwbSignature = 'BODT'; { New to Skyrim }
- BOOK : TwbSignature = 'BOOK';
- BPND : TwbSignature = 'BPND';
- BPNI : TwbSignature = 'BPNI';
- BPNN : TwbSignature = 'BPNN';
- BPNT : TwbSignature = 'BPNT';
- BPTD : TwbSignature = 'BPTD';
- BPTN : TwbSignature = 'BPTN';
- BSIZ : TwbSignature = 'BSIZ'; { New to Fallout 4 }
- BSMB : TwbSignature = 'BSMB'; { New to Fallout 4 }
- BSMP : TwbSignature = 'BSMP'; { New to Fallout 4 }
- BSMS : TwbSignature = 'BSMS'; { New to Fallout 4 }
- BTXT : TwbSignature = 'BTXT';
- CAMS : TwbSignature = 'CAMS';
- CDIX : TwbSignature = 'CDIX'; { New to Fallout 4 }
- CELL : TwbSignature = 'CELL';
- CIS1 : TwbSignature = 'CIS1'; { New to Skyrim }
- CIS2 : TwbSignature = 'CIS2'; { New to Skyrim }
- CITC : TwbSignature = 'CITC'; { New to Skyrim }
- CLAS : TwbSignature = 'CLAS';
- CLFM : TwbSignature = 'CLFM';
- CLMT : TwbSignature = 'CLMT';
- CLSZ : TwbSignature = 'CLSZ'; { New to Fallout 4 }
- CMPO : TwbSignature = 'CMPO'; { New to Fallout 4 }
- CNAM : TwbSignature = 'CNAM';
- CNTO : TwbSignature = 'CNTO';
- COBJ : TwbSignature = 'COBJ';
- COCT : TwbSignature = 'COCT'; { New to Skyrim 'Count'}
- COED : TwbSignature = 'COED';
- COLL : TwbSignature = 'COLL';
- CONT : TwbSignature = 'CONT';
- CPTH : TwbSignature = 'CPTH';
- CRDT : TwbSignature = 'CRDT';
- CRGR : TwbSignature = 'CRGR'; { New to Skyrim }
- CRIF : TwbSignature = 'CRIF'; { New to Skyrim }
- CRIS : TwbSignature = 'CRIS'; { New to Fallout 4 }
- CRVA : TwbSignature = 'CRVA'; { New to Skyrim }
- CS2H : TwbSignature = 'CS2H'; { New To Fallout 4 }
- CS2D : TwbSignature = 'CS2D'; { New To Fallout 4 }
- CS2E : TwbSignature = 'CS2E'; { New To Fallout 4 }
- CS2F : TwbSignature = 'CS2F'; { New To Fallout 4 }
- CS2K : TwbSignature = 'CS2K'; { New To Fallout 4 }
- CSCR : TwbSignature = 'CSCR';
- CSCV : TwbSignature = 'CSCV'; { New To Fallout 4 }
- CSDC : TwbSignature = 'CSDC';
- CSDI : TwbSignature = 'CSDI';
- CSDT : TwbSignature = 'CSDT';
- CSFL : TwbSignature = 'CSFL'; { New to Skyrim }
- CSGD : TwbSignature = 'CSGD'; { New to Skyrim }
- CSLR : TwbSignature = 'CSLR'; { New to Skyrim }
- CSMD : TwbSignature = 'CSMD'; { New to Skyrim }
- CSME : TwbSignature = 'CSME'; { New to Skyrim }
- CSRA : TwbSignature = 'CSRA'; { New To Fallout 4 }
- CSTY : TwbSignature = 'CSTY';
- CTDA : TwbSignature = 'CTDA';
- CUSD : TwbSignature = 'CUSD'; { New to Fallout 4 }
- CVPA : TwbSignature = 'CVPA'; { New to Fallout 4 }
- DALC : TwbSignature = 'DALC'; { New to Skyrim }
- DAMA : TwbSignature = 'DAMA'; { New to Fallout 4 }
- DAMC : TwbSignature = 'DAMC'; { New to Fallout 4 }
- DATA : TwbSignature = 'DATA';
- DEBR : TwbSignature = 'DEBR';
- DELE : TwbSignature = 'DELE';
- DEMO : TwbSignature = 'DEMO'; { New to Skyrim }
- DESC : TwbSignature = 'DESC';
- DEST : TwbSignature = 'DEST';
- DEVA : TwbSignature = 'DEVA'; { New to Skyrim }
- DFOB : TwbSignature = 'DFOB'; { New to Fallout 4 }
- DFTF : TwbSignature = 'DFTF'; { New To Skyrim }
- DFTM : TwbSignature = 'DFTM'; { New To Skyrim }
- DIAL : TwbSignature = 'DIAL';
- DLBR : TwbSignature = 'DLBR';
- DLVW : TwbSignature = 'DLVW';
- DMAX : TwbSignature = 'DMAX'; { New to Skyrim }
- DMDC : TwbSignature = 'DMDC'; { New to Fallout 4 }
- DMDL : TwbSignature = 'DMDL';
- DMDS : TwbSignature = 'DMDS'; { New to Skyrim }
- DMDT : TwbSignature = 'DMDT';
- DMGT : TwbSignature = 'DMGT'; { New to Fallout 4 }
- DMIN : TwbSignature = 'DMIN'; { New to Skyrim }
- DNAM : TwbSignature = 'DNAM';
- DOBJ : TwbSignature = 'DOBJ';
- DODT : TwbSignature = 'DODT';
- DOFT : TwbSignature = 'DOFT'; { New to Skyrim }
- DOOR : TwbSignature = 'DOOR';
- DPLT : TwbSignature = 'DPLT'; { New to Skyrim }
- DSTA : TwbSignature = 'DSTA'; { New To Fallout 4 }
- DSTD : TwbSignature = 'DSTD';
- DSTF : TwbSignature = 'DSTF';
- DTGT : TwbSignature = 'DTGT'; { New To Fallout 4 }
- DTID : TwbSignature = 'DTID'; { New To Fallout 4 }
- DUAL : TwbSignature = 'DUAL';
- EAMT : TwbSignature = 'EAMT';
- ECOR : TwbSignature = 'ECOR'; { New to Skyrim }
- ECZN : TwbSignature = 'ECZN';
- EDID : TwbSignature = 'EDID';
- EFID : TwbSignature = 'EFID';
- EFIT : TwbSignature = 'EFIT';
- EFSH : TwbSignature = 'EFSH';
- EITM : TwbSignature = 'EITM';
- ENAM : TwbSignature = 'ENAM';
- ENCH : TwbSignature = 'ENCH';
- ENIT : TwbSignature = 'ENIT';
- EPF2 : TwbSignature = 'EPF2';
- EPF3 : TwbSignature = 'EPF3';
- EPFB : TwbSignature = 'EPFB'; { New To Fallout 4 }
- EPFD : TwbSignature = 'EPFD';
- EPFT : TwbSignature = 'EPFT';
- EQUP : TwbSignature = 'EQUP';
- ESCE : TwbSignature = 'ESCE';
- ETYP : TwbSignature = 'ETYP';
- EXPL : TwbSignature = 'EXPL';
- EYES : TwbSignature = 'EYES';
- FACT : TwbSignature = 'FACT';
- FCHT : TwbSignature = 'FCHT'; { New to Skyrim }
- FCPL : TwbSignature = 'FCPL'; { New To Fallout 4 }
- FFFF : TwbSignature = 'FFFF';
- FIMD : TwbSignature = 'FIMD'; { New To Fallout 4 }
- FLMV : TwbSignature = 'FLMV'; { New to Skyrim }
- FLOR : TwbSignature = 'FLOR';
- FLST : TwbSignature = 'FLST';
- FLTR : TwbSignature = 'FLTR'; { New to Skyrim }
- FLTV : TwbSignature = 'FLTV';
- FMIN : TwbSignature = 'FMIN'; { New To Fallout 4 }
- FMRI : TwbSignature = 'FMRI'; { New To Fallout 4 }
- FMRN : TwbSignature = 'FMRN'; { New To Fallout 4 }
- FMRS : TwbSignature = 'FMRS'; { New To Fallout 4 }
- FNAM : TwbSignature = 'FNAM';
- FNMK : TwbSignature = 'FNMK'; { New to Skyrim }
- FNPR : TwbSignature = 'FNPR'; { New to Skyrim }
- FPRT : TwbSignature = 'FPRT'; { New to Skyrim }
- FSTP : TwbSignature = 'FSTP';
- FSTS : TwbSignature = 'FSTS';
- FTSF : TwbSignature = 'FTSF'; { New to Skyrim }
- FTSM : TwbSignature = 'FTSM'; { New to Skyrim }
- FTST : TwbSignature = 'FTST'; { New to Skyrim }
- FTYP : TwbSignature = 'FTYP'; { New To Fallout 4 }
- FULL : TwbSignature = 'FULL';
- FURN : TwbSignature = 'FURN';
- FVPA : TwbSignature = 'FVPA'; { New To Fallout 4 }
- GDRY : TwbSignature = 'GDRY'; { New to Fallout 4 }
- GLOB : TwbSignature = 'GLOB';
- GMST : TwbSignature = 'GMST';
- GNAM : TwbSignature = 'GNAM';
- GRAS : TwbSignature = 'GRAS';
- GREE : TwbSignature = 'GREE'; { New to Fallout 4 }
- GWOR : TwbSignature = 'GWOR'; { New to Skyrim }
- HAZD : TwbSignature = 'HAZD';
- HCLF : TwbSignature = 'HCLF'; { New to Skyrim }
- HDPT : TwbSignature = 'HDPT';
- HEAD : TwbSignature = 'HEAD'; { New to Skyrim }
- HEDR : TwbSignature = 'HEDR';
- HLTX : TwbSignature = 'HLTX'; { New to Fallout 4 }
- HNAM : TwbSignature = 'HNAM';
- HTID : TwbSignature = 'HTID'; { New to Skyrim }
- ICO2 : TwbSignature = 'ICO2';
- ICON : TwbSignature = 'ICON';
- IDLA : TwbSignature = 'IDLA';
- IDLB : TwbSignature = 'IDLB';
- IDLC : TwbSignature = 'IDLC';
- IDLE : TwbSignature = 'IDLE';
- IDLF : TwbSignature = 'IDLF';
- IDLM : TwbSignature = 'IDLM';
- IDLT : TwbSignature = 'IDLT';
- IMAD : TwbSignature = 'IMAD';
- IMGS : TwbSignature = 'IMGS';
- IMSP : TwbSignature = 'IMSP'; { New to Skyrim }
- INAM : TwbSignature = 'INAM';
- INCC : TwbSignature = 'INCC'; { New to Skyrim }
- INDX : TwbSignature = 'INDX';
- INFO : TwbSignature = 'INFO';
- INGR : TwbSignature = 'INGR';
- INNR : TwbSignature = 'INNR'; { New To Fallout 4 }
- INRD : TwbSignature = 'INRD'; { New To Fallout 4 }
- INTT : TwbSignature = 'INTT'; { New To Fallout 4 }
- INTV : TwbSignature = 'INTV';
- IOVR : TwbSignature = 'IOVR'; { New To Fallout 4 }
- IPCT : TwbSignature = 'IPCT';
- IPDS : TwbSignature = 'IPDS';
- ISIZ : TwbSignature = 'ISIZ'; { New To Fallout 4 }
- ITID : TwbSignature = 'ITID'; { New To Fallout 4 }
- ITMC : TwbSignature = 'ITMC'; { New To Fallout 4 }
- ITME : TwbSignature = 'ITME'; { New To Fallout 4 }
- ITMS : TwbSignature = 'ITMS'; { New To Fallout 4 }
- ITXT : TwbSignature = 'ITXT';
- JAIL : TwbSignature = 'JAIL'; { New To Skyrim }
- JNAM : TwbSignature = 'JNAM';
- JOUT : TwbSignature = 'JOUT'; { New To Skyrim }
- KEYM : TwbSignature = 'KEYM';
- KNAM : TwbSignature = 'KNAM';
- KSIZ : TwbSignature = 'KSIZ';
- KSSM : TwbSignature = 'KSSM'; { New To Fallout 4 }
- KWDA : TwbSignature = 'KWDA';
- KYWD : TwbSignature = 'KYWD';
- LAND : TwbSignature = 'LAND';
- LAYR : TwbSignature = 'LAYR'; { New to Fallout 4 }
- LCEC : TwbSignature = 'LCEC'; { New to Skyrim }
- LCEP : TwbSignature = 'LCEP'; { New to Skyrim }
- LCID : TwbSignature = 'LCID'; { New to Skyrim }
- LCPR : TwbSignature = 'LCPR'; { New to Skyrim }
- LCRT : TwbSignature = 'LCRT';
- LCSR : TwbSignature = 'LCSR'; { New to Skyrim }
- LCTN : TwbSignature = 'LCTN';
- LCUN : TwbSignature = 'LCUN'; { New to Skyrim }
- LENS : TwbSignature = 'LENS'; { New to Fallout 4 }
- LFSD : TwbSignature = 'LFSD'; { New to Fallout 4 }
- LFSP : TwbSignature = 'LFSP'; { New to Fallout 4 }
- LGTM : TwbSignature = 'LGTM';
- LIGH : TwbSignature = 'LIGH';
- LLCT : TwbSignature = 'LLCT'; {New to Skyrim, part of LVLI 'Count'}
- LLKC : TwbSignature = 'LLKC'; { New to Fallout 4 }
- LNAM : TwbSignature = 'LNAM';
- LSCR : TwbSignature = 'LSCR';
- LSPR : TwbSignature = 'LSPR'; { New to Fallout 4 }
- LTEX : TwbSignature = 'LTEX';
- LTMP : TwbSignature = 'LTMP';
- LTPT : TwbSignature = 'LTPT'; { New to Fallout 4 }
- LTPC : TwbSignature = 'LTPC'; { New to Fallout 4 }
- LVLC : TwbSignature = 'LVLC';
- LVLD : TwbSignature = 'LVLD';
- LVLF : TwbSignature = 'LVLF';
- LVLG : TwbSignature = 'LVLG';
- LVLI : TwbSignature = 'LVLI';
- LVLM : TwbSignature = 'LVLM'; { New to Fallout 4 }
- LVLN : TwbSignature = 'LVLN';
- LVLO : TwbSignature = 'LVLO';
- LVSG : TwbSignature = 'LVSG'; { New to Fallout 4 }
- LVSP : TwbSignature = 'LVSP';
- MASE : TwbSignature = 'MASE'; { New To Fallout 4 }
- MAST : TwbSignature = 'MAST';
- MATO : TwbSignature = 'MATO';
- MATT : TwbSignature = 'MATT';
- MCHT : TwbSignature = 'MCHT'; { New to Skyrim }
- MDOB : TwbSignature = 'MDOB';
- MESG : TwbSignature = 'MESG';
- MGEF : TwbSignature = 'MGEF';
- MHDT : TwbSignature = 'MHDT'; { New to Skyrim }
- MIC2 : TwbSignature = 'MIC2';
- MICN : TwbSignature = 'MICN'; { New to Fallout 4 }
- MICO : TwbSignature = 'MICO';
- MISC : TwbSignature = 'MISC';
- MLSI : TwbSignature = 'MLSI'; { New to Fallout 4 }
- MNAM : TwbSignature = 'MNAM';
- MO2C : TwbSignature = 'MO2C'; { New to Fallout 4 }
- MO2F : TwbSignature = 'MO2F'; { New to Fallout 4 }
- MO2S : TwbSignature = 'MO2S';
- MO2T : TwbSignature = 'MO2T';
- MO3C : TwbSignature = 'MO3C'; { New to Fallout 4 }
- MO3F : TwbSignature = 'MO3F'; { New to Fallout 4 }
- MO3S : TwbSignature = 'MO3S';
- MO3T : TwbSignature = 'MO3T';
- MO4C : TwbSignature = 'MO4C'; { New to Fallout 4 }
- MO4F : TwbSignature = 'MO4F'; { New to Fallout 4 }
- MO4S : TwbSignature = 'MO4S';
- MO4T : TwbSignature = 'MO4T';
- MO5C : TwbSignature = 'MO5C'; { New to Fallout 4 }
- MO5F : TwbSignature = 'MO5F'; { New to Fallout 4 }
- MO5S : TwbSignature = 'MO5S'; { New to Skyrim }
- MO5T : TwbSignature = 'MO5T'; { New to Skyrim }
- MOD2 : TwbSignature = 'MOD2';
- MOD3 : TwbSignature = 'MOD3';
- MOD4 : TwbSignature = 'MOD4';
- MOD5 : TwbSignature = 'MOD5'; { New to Skyrim }
- MODC : TwbSignature = 'MODC'; { New to Fallout 4 }
- MODF : TwbSignature = 'MODF'; { New to Fallout 4 }
- MODL : TwbSignature = 'MODL';
- MODS : TwbSignature = 'MODS';
- MODT : TwbSignature = 'MODT';
- MODQ : TwbSignature = 'MODQ'; { New to Fallout 4 }
- MOVT : TwbSignature = 'MOVT';
- MPAI : TwbSignature = 'MPAI'; { New To Skyrim }
- MPAV : TwbSignature = 'MPAV'; { New To Skyrim }
- MPCD : TwbSignature = 'MPCD'; { New to Fallout 4 }
- MPGN : TwbSignature = 'MPGN'; { New to Fallout 4 }
- MPGS : TwbSignature = 'MPGS'; { New to Fallout 4 }
- MPPC : TwbSignature = 'MPPC'; { New to Fallout 4 }
- MPPF : TwbSignature = 'MPPF'; { New to Fallout 4 }
- MPPI : TwbSignature = 'MPPI'; { New to Fallout 4 }
- MPPK : TwbSignature = 'MPPK'; { New to Fallout 4 }
- MPPM : TwbSignature = 'MPPM'; { New to Fallout 4 }
- MPPN : TwbSignature = 'MPPN'; { New to Fallout 4 }
- MPPT : TwbSignature = 'MPPT'; { New to Fallout 4 }
- MPRT : TwbSignature = 'MPRT'; { New to Skyrim }
- MRSV : TwbSignature = 'MRSV'; { New to Fallout 4 }
- MSDK : TwbSignature = 'MSDK'; { New to Fallout 4 }
- MSDV : TwbSignature = 'MSDV'; { New to Fallout 4 }
- MSID : TwbSignature = 'MSID'; { New to Fallout 4 }
- MSM0 : TwbSignature = 'MSM0'; { New to Fallout 4 }
- MSM1 : TwbSignature = 'MSM1'; { New to Fallout 4 }
- MSTT : TwbSignature = 'MSTT';
- MSWP : TwbSignature = 'MSWP'; { New to Fallout 4 }
- MTNM : TwbSignature = 'MTNM'; { New to Skyrim }
- MTYP : TwbSignature = 'MTYP'; { New To Skyrim }
- MUSC : TwbSignature = 'MUSC';
- MUST : TwbSignature = 'MUST';
- MWGT : TwbSignature = 'MWGT'; { New to Fallout 4 }
- NAM0 : TwbSignature = 'NAM0';
- NAM1 : TwbSignature = 'NAM1';
- NAM2 : TwbSignature = 'NAM2';
- NAM3 : TwbSignature = 'NAM3';
- NAM4 : TwbSignature = 'NAM4';
- NAM5 : TwbSignature = 'NAM5';
- NAM6 : TwbSignature = 'NAM6';
- NAM7 : TwbSignature = 'NAM7';
- NAM8 : TwbSignature = 'NAM8';
- NAM9 : TwbSignature = 'NAM9';
- NAMA : TwbSignature = 'NAMA'; { New to Skyrim }
- NAME : TwbSignature = 'NAME';
- NAVI : TwbSignature = 'NAVI';
- NAVM : TwbSignature = 'NAVM';
- NETO : TwbSignature = 'NETO'; { New to Fallout 4 }
- NEXT : TwbSignature = 'NEXT';
- NNAM : TwbSignature = 'NNAM';
- NNGT : TwbSignature = 'NNGT'; { New to Fallout 4 }
- NNGS : TwbSignature = 'NNGS'; { New to Fallout 4 }
- NNUS : TwbSignature = 'NNUS'; { New to Fallout 4 }
- NNUT : TwbSignature = 'NNUT'; { New to Fallout 4 }
- NOCM : TwbSignature = 'NOCM'; { New to Fallout 4 }
- NONE : TwbSignature = 'NONE'; { New to Fallout 4, used in OMOD Form Type }
- NOTE : TwbSignature = 'NOTE'; { New to Fallout 4 }
- NPC_ : TwbSignature = 'NPC_';
- NPOS : TwbSignature = 'NPOS'; { New to Fallout 4 }
- NPOT : TwbSignature = 'NPOT'; { New to Fallout 4 }
- NQUS : TwbSignature = 'NQUS'; { New to Fallout 4 }
- NQUT : TwbSignature = 'NQUT'; { New to Fallout 4 }
- NTOP : TwbSignature = 'NTOP'; { New to Fallout 4 }
- NTRM : TwbSignature = 'NTRM'; { New to Fallout 4 }
- NULL : TwbSignature = 'NULL';
- NVER : TwbSignature = 'NVER';
- NVMI : TwbSignature = 'NVMI';
- NVNM : TwbSignature = 'NVNM'; { New to Skyrim }
- NVPP : TwbSignature = 'NVPP'; { New to Skyrim }
- NVSI : TwbSignature = 'NVSI'; { New to Dawnguard }
- OBND : TwbSignature = 'OBND';
- OBTE : TwbSignature = 'OBTE'; { New to Fallout 4 }
- OBTF : TwbSignature = 'OBTF'; { New to Fallout 4 }
- OBTS : TwbSignature = 'OBTS'; { New to Fallout 4 }
- OCOR : TwbSignature = 'OCOR'; { New to Skyrim }
- OFST : TwbSignature = 'OFST';
- OMOD : TwbSignature = 'OMOD'; { New to Fallout 4 }
- ONAM : TwbSignature = 'ONAM';
- OTFT : TwbSignature = 'OTFT';
- OVIS : TwbSignature = 'OVIS'; { New to Fallout 4 }
- PACK : TwbSignature = 'PACK';
- PARW : TwbSignature = 'PARW'; { New to Skyrim }
- PBAR : TwbSignature = 'PBAR'; { New to Skyrim }
- PBEA : TwbSignature = 'PBEA'; { New to Skyrim }
- PCMB : TwbSignature = 'PCMB'; { New to Fallout 4 }
- PCON : TwbSignature = 'PCON'; { New to Skyrim }
- PDTO : TwbSignature = 'PDTO'; { New to Skyrim }
- PERK : TwbSignature = 'PERK';
- PFIG : TwbSignature = 'PFIG';
- PFLA : TwbSignature = 'PFLA'; { New to Skyrim }
- PFO2 : TwbSignature = 'PFO2'; { New to Skyrim }
- PFOR : TwbSignature = 'PFOR'; { New to Skyrim }
- PFPC : TwbSignature = 'PFPC';
- PFRN : TwbSignature = 'PFRN'; { New to Fallout 4 }
- PGRE : TwbSignature = 'PGRE';
- PHTN : TwbSignature = 'PHTN'; { New to Skyrim }
- PHWT : TwbSignature = 'PHWT'; { New to Skyrim }
- PHZD : TwbSignature = 'PHZD';
- PKC2 : TwbSignature = 'PKC2'; { New to Skyrim }
- PKCU : TwbSignature = 'PKCU'; { New to Skyrim }
- PKDT : TwbSignature = 'PKDT';
- PKID : TwbSignature = 'PKID';
- PKIN : TwbSignature = 'PKIN'; { New to Fallout 4 }
- PLCN : TwbSignature = 'PLCN'; { New to Skyrim }
- PLDT : TwbSignature = 'PLDT';
- PLVD : TwbSignature = 'PLVD'; { New to Skyrim }
- PLYR : TwbSignature = 'PLYR';
- PMIS : TwbSignature = 'PMIS';
- PNAM : TwbSignature = 'PNAM';
- POBA : TwbSignature = 'POBA';
- POCA : TwbSignature = 'POCA';
- POEA : TwbSignature = 'POEA';
- PRCB : TwbSignature = 'PRCB'; { New to Skyrim }
- PRKC : TwbSignature = 'PRKC';
- PRKE : TwbSignature = 'PRKE';
- PRKF : TwbSignature = 'PRKF';
- PRKR : TwbSignature = 'PRKR'; { New to Skyrim }
- PRKZ : TwbSignature = 'PRKZ'; { New to Skyrim }
- PROJ : TwbSignature = 'PROJ';
- PRPS : TwbSignature = 'PRPS'; { New to Fallout 4 }
- PSDT : TwbSignature = 'PSDT';
- PTDA : TwbSignature = 'PTDA'; { New to Skyrim }
- PTOP : TwbSignature = 'PTOP'; { New to Fallout 4 }
- PTRN : TwbSignature = 'PTRN'; { New to Fallout 4 }
- QNAM : TwbSignature = 'QNAM';
- QOBJ : TwbSignature = 'QOBJ';
- QSDT : TwbSignature = 'QSDT';
- QSTA : TwbSignature = 'QSTA';
- QSTI : TwbSignature = 'QSTI'; { New to Fallout 4 }
- QTGL : TwbSignature = 'QTGL'; { New To Skyrim }
- QTOP : TwbSignature = 'QTOP'; { New to Fallout 4 }
- QUAL : TwbSignature = 'QUAL'; { New To Skyrim }
- QUST : TwbSignature = 'QUST';
- RACE : TwbSignature = 'RACE';
- RADR : TwbSignature = 'RADR'; { New To Fallout 4 }
- RBPC : TwbSignature = 'RBPC'; { New To Fallout 4 }
- RCEC : TwbSignature = 'RCEC'; { New To Skyrim }
- RCLR : TwbSignature = 'RCLR';
- RCPR : TwbSignature = 'RCPR'; { New to Dawnguard }
- RCSR : TwbSignature = 'RCSR'; { New To Skyrim }
- RCUN : TwbSignature = 'RCUN'; { New To Skyrim }
- RDAT : TwbSignature = 'RDAT';
- RDGS : TwbSignature = 'RDGS';
- RDMO : TwbSignature = 'RDMO';
- RDMP : TwbSignature = 'RDMP';
- RDOT : TwbSignature = 'RDOT';
- RDSA : TwbSignature = 'RDSA'; { New to Skyrim }
- RDWT : TwbSignature = 'RDWT';
- REFR : TwbSignature = 'REFR';
- REGN : TwbSignature = 'REGN';
- RELA : TwbSignature = 'RELA';
- REPL : TwbSignature = 'REPL';
- REPT : TwbSignature = 'REPT'; { New To Fallout 4 }
- REVB : TwbSignature = 'REVB';
- RFCT : TwbSignature = 'RFCT';
- RFGP : TwbSignature = 'RFGP'; { New to Fallout 4 }
- RGDL : TwbSignature = 'RGDL'; { Unused in Skyrim, but contained in Skyrim.esm }
- RLDM : TwbSignature = 'RLDM'; { New to Fallout 4 }
- RNAM : TwbSignature = 'RNAM';
- RNMV : TwbSignature = 'RNMV'; { New to Skyrim }
- RPLD : TwbSignature = 'RPLD';
- RPLI : TwbSignature = 'RPLI';
- RPRF : TwbSignature = 'RPRF'; { New To Skyrim }
- RPRM : TwbSignature = 'RPRM'; { New To Skyrim }
- RVIS : TwbSignature = 'RVIS'; { New to Fallout 4 }
- SADD : TwbSignature = 'SADD'; { New To Fallout 4 }
- SAKD : TwbSignature = 'SAKD'; { New To Fallout 4 }
- SAPT : TwbSignature = 'SAPT'; { New To Fallout 4 }
- SCCO : TwbSignature = 'SCCO'; { New To Fallout 4 }
- SCDA : TwbSignature = 'SCDA';
- SCEN : TwbSignature = 'SCEN';
- SCHR : TwbSignature = 'SCHR';
- SCOL : TwbSignature = 'SCOL'; { Unused in Skyrim, but contained in Skyrim.esm }
- SCPT : TwbSignature = 'SCPT'; { Unused in Skyrim, but contained in Skyrim.esm }
- SCQS : TwbSignature = 'SCQS'; { New To Fallout 4 }
- SCRL : TwbSignature = 'SCRL';
- SCRN : TwbSignature = 'SCRN';
- SCRO : TwbSignature = 'SCRO';
- SCSN : TwbSignature = 'SCSN'; { New To Fallout 4 }
- SCTX : TwbSignature = 'SCTX';
- SDSC : TwbSignature = 'SDSC'; { New to Skyrim }
- SGNM : TwbSignature = 'SGNM'; { New to Fallout 4 }
- SHOU : TwbSignature = 'SHOU';
- SHRT : TwbSignature = 'SHRT'; { New to Skyrim }
- SKIL : TwbSignature = 'SKIL'; { New to Fallout 4 }
- SLCP : TwbSignature = 'SLCP';
- SLGM : TwbSignature = 'SLGM';
- SMBN : TwbSignature = 'SMBN';
- SMEN : TwbSignature = 'SMEN';
- SMQN : TwbSignature = 'SMQN';
- SNAM : TwbSignature = 'SNAM';
- SNCT : TwbSignature = 'SNCT';
- SNDD : TwbSignature = 'SNDD';
- SNDR : TwbSignature = 'SNDR';
- SNMV : TwbSignature = 'SNMV'; { New to Skyrim }
- SOFT : TwbSignature = 'SOFT'; { New to Skyrim }
- SOPM : TwbSignature = 'SOPM';
- SOUL : TwbSignature = 'SOUL';
- SOUN : TwbSignature = 'SOUN';
- SPCT : TwbSignature = 'SPCT'; { New to Skyrim }
- SPED : TwbSignature = 'SPED'; { New To Skyrim }
- SPEL : TwbSignature = 'SPEL';
- SPGD : TwbSignature = 'SPGD';
- SPIT : TwbSignature = 'SPIT';
- SPLO : TwbSignature = 'SPLO';
- SPMV : TwbSignature = 'SPMV'; { New To Skyrim }
- SPOR : TwbSignature = 'SPOR'; { New to Skyrim }
- SRAC : TwbSignature = 'SRAC'; { New to Fallout 4 }
- SRAF : TwbSignature = 'SRAF'; { New to Fallout 4 }
- SSPN : TwbSignature = 'SSPN'; { New to Fallout 4 }
- STAG : TwbSignature = 'STAG'; { New to Fallout 4 }
- STAT : TwbSignature = 'STAT';
- STCP : TwbSignature = 'STCP'; { New to Fallout 4 }
- STKD : TwbSignature = 'STKD'; { New to Fallout 4 }
- STOL : TwbSignature = 'STOL'; { New to Skyrim }
- STOP : TwbSignature = 'STOP'; { New to Fallout 4 }
- STSC : TwbSignature = 'STSC'; { New to Fallout 4 }
- SWMV : TwbSignature = 'SWMV'; { New to Skyrim }
- TACT : TwbSignature = 'TACT';
- TCLT : TwbSignature = 'TCLT';
- TERM : TwbSignature = 'TERM'; { New to Fallout 4 }
- TES4 : TwbSignature = 'TES4';
- TETI : TwbSignature = 'TETI'; { New to Fallout 4 }
- TEND : TwbSignature = 'TEND'; { New to Fallout 4 }
- TIAS : TwbSignature = 'TIAS'; { New to Skyrim }
- TIFC : TwbSignature = 'TIFC'; { New To Skyrim }
- TINC : TwbSignature = 'TINC'; { New to Skyrim }
- TIND : TwbSignature = 'TIND'; { New to Skyrim }
- TINI : TwbSignature = 'TINI'; { New to Skyrim }
- TINL : TwbSignature = 'TINL'; { New to Skyrim }
- TINP : TwbSignature = 'TINP'; { New to Skyrim }
- TINT : TwbSignature = 'TINT'; { New to Skyrim }
- TINV : TwbSignature = 'TINV'; { New to Skyrim }
- TIQS : TwbSignature = 'TIQS'; { New to Fallout 4 }
- TIRS : TwbSignature = 'TIRS'; { New to Skyrim }
- TLOD : TwbSignature = 'TLOD'; { New to Fallout 4 }
- TNAM : TwbSignature = 'TNAM';
- TOFT : TwbSignature = 'TOFT'; { New to Fallout 4 }
- TPIC : TwbSignature = 'TPIC';
- TPLT : TwbSignature = 'TPLT';
- TPTA : TwbSignature = 'TPTA'; { New To Fallout 4 }
- TRDA : TwbSignature = 'TRDA'; { New To Fallout 4 }
- TRDT : TwbSignature = 'TRDT';
- TREE : TwbSignature = 'TREE';
- TRNS : TwbSignature = 'TRNS'; { New To Fallout 4 }
- TSCE : TwbSignature = 'TSCE'; { New To Fallout 4 }
- TTEB : TwbSignature = 'TTEB'; { New To Fallout 4 }
- TTEC : TwbSignature = 'TTEC'; { New To Fallout 4 }
- TTED : TwbSignature = 'TTED'; { New To Fallout 4 }
- TTEF : TwbSignature = 'TTEF'; { New To Fallout 4 }
- TTET : TwbSignature = 'TTET'; { New To Fallout 4 }
- TTGE : TwbSignature = 'TTGE'; { New To Fallout 4 }
- TTGP : TwbSignature = 'TTGP'; { New To Fallout 4 }
- TVDT : TwbSignature = 'TVDT'; { New To Skyrim }
- TWAT : TwbSignature = 'TWAT'; { New To Skyrim }
- TX00 : TwbSignature = 'TX00';
- TX01 : TwbSignature = 'TX01';
- TX02 : TwbSignature = 'TX02';
- TX03 : TwbSignature = 'TX03';
- TX04 : TwbSignature = 'TX04';
- TX05 : TwbSignature = 'TX05';
- TX06 : TwbSignature = 'TX06'; { New To Skyrim }
- TX07 : TwbSignature = 'TX07'; { New To Skyrim }
- TXST : TwbSignature = 'TXST';
- UNAM : TwbSignature = 'UNAM';
- UNES : TwbSignature = 'UNES'; { New To Skyrim }
- UNWP : TwbSignature = 'UNWP'; { New To Fallout 4 }
- VATS : TwbSignature = 'VATS';
- VCLR : TwbSignature = 'VCLR';
- VENC : TwbSignature = 'VENC'; { New To Skyrim }
- VEND : TwbSignature = 'VEND'; { New To Skyrim }
- VENV : TwbSignature = 'VENV'; { New To Skyrim }
- VHGT : TwbSignature = 'VHGT';
- VISI : TwbSignature = 'VISI'; { New To Fallout 4 }
- VMAD : TwbSignature = 'VMAD';
- VNAM : TwbSignature = 'VNAM';
- VNML : TwbSignature = 'VNML';
- VTCK : TwbSignature = 'VTCK';
- VTEX : TwbSignature = 'VTEX';
- VTXT : TwbSignature = 'VTXT';
- VTYP : TwbSignature = 'VTYP';
- WAIT : TwbSignature = 'WAIT'; { New To Skyrim }
- WAMD : TwbSignature = 'WAMD'; { New To Fallout 4 }
- WATR : TwbSignature = 'WATR';
- WBDT : TwbSignature = 'WBDT'; { New to Skyrim }
- WCTR : TwbSignature = 'WCTR'; { New To Skyrim }
- WEAP : TwbSignature = 'WEAP';
- WGDR : TwbSignature = 'WGDR'; { New To Fallout 4 }
- WKMV : TwbSignature = 'WKMV'; { New to Skyrim }
- WLEV : TwbSignature = 'WLEV'; { New To Fallout 4 }
- WLST : TwbSignature = 'WLST';
- WMAP : TwbSignature = 'WMAP'; { New To Fallout 4 }
- WNAM : TwbSignature = 'WNAM';
- WOOP : TwbSignature = 'WOOP';
- WRLD : TwbSignature = 'WRLD';
- WTHR : TwbSignature = 'WTHR';
- WZMD : TwbSignature = 'WZMD'; { New To Fallout 4 }
- XACT : TwbSignature = 'XACT';
- XALP : TwbSignature = 'XALP'; { New To Skyrim }
- XAMC : TwbSignature = 'XAMC'; { New To Fallout 4 }
- XAPD : TwbSignature = 'XAPD';
- XAPR : TwbSignature = 'XAPR';
- XASP : TwbSignature = 'XASP'; { New To Fallout 4 }
- XATP : TwbSignature = 'XATP'; { New To Fallout 4 }
- XATR : TwbSignature = 'XATR'; { New To Dawnguard }
- XBSD : TwbSignature = 'XBSD'; { New To Fallout 4 }
- XCAS : TwbSignature = 'XCAS';
- XCCM : TwbSignature = 'XCCM';
- XCHG : TwbSignature = 'XCHG';
- XCIM : TwbSignature = 'XCIM';
- XCLC : TwbSignature = 'XCLC';
- XCLL : TwbSignature = 'XCLL';
- XCLP : TwbSignature = 'XCLP';
- XCLR : TwbSignature = 'XCLR';
- XCLW : TwbSignature = 'XCLW';
- XCMO : TwbSignature = 'XCMO';
- XCNT : TwbSignature = 'XCNT';
- XCRI : TwbSignature = 'XCRI'; { New To Fallout 4 }
- XCVL : TwbSignature = 'XCVL'; { New To Skyrim }
- XCVR : TwbSignature = 'XCVR'; { New To Fallout 4 }
- XCWT : TwbSignature = 'XCWT';
- XCZA : TwbSignature = 'XCZA'; { New To Skyrim }
- XCZC : TwbSignature = 'XCZC'; { New To Skyrim }
- XCZR : TwbSignature = 'XCZR'; { New To Skyrim }
- XDCR : TwbSignature = 'XDCR';
- XEMI : TwbSignature = 'XEMI';
- XESP : TwbSignature = 'XESP';
- XEZN : TwbSignature = 'XEZN';
- XFVC : TwbSignature = 'XFVC'; { New To Skyrim }
- XGDR : TwbSignature = 'XGDR'; { New To Fallout 4 }
- XGLB : TwbSignature = 'XGLB';
- XHLP : TwbSignature = 'XHLP';
- XHLT : TwbSignature = 'XHLT'; { New To Fallout 4 }
- XHOR : TwbSignature = 'XHOR'; { New To Skyrim }
- XHTW : TwbSignature = 'XHTW'; { New To Skyrim }
- XIBS : TwbSignature = 'XIBS';
- XILL : TwbSignature = 'XILL'; { New To Skyrim }
- XILW : TwbSignature = 'XILW'; { New To Fallout 4 }
- XIS2 : TwbSignature = 'XIS2'; { New To Skyrim }
- XLCM : TwbSignature = 'XLCM';
- XLCN : TwbSignature = 'XLCN'; { New To Skyrim }
- XLIB : TwbSignature = 'XLIB'; { New To Skyrim }
- XLIG : TwbSignature = 'XLIG'; { New To Skyrim }
- XLKR : TwbSignature = 'XLKR';
- XLKT : TwbSignature = 'XLKT'; { New To Fallout 4 }
- XLOC : TwbSignature = 'XLOC';
- XLOD : TwbSignature = 'XLOD';
- XLRL : TwbSignature = 'XLRL'; { New To Skyrim }
- XLRM : TwbSignature = 'XLRM';
- XLRT : TwbSignature = 'XLRT'; { New To Skyrim }
- XLTW : TwbSignature = 'XLTW';
- XLYR : TwbSignature = 'XLYR'; { New To Fallout 4 }
- XMBO : TwbSignature = 'XMBO';
- XMBP : TwbSignature = 'XMBP';
- XMBR : TwbSignature = 'XMBR';
- XMRC : TwbSignature = 'XMRC';
- XMRK : TwbSignature = 'XMRK';
- XMSP : TwbSignature = 'XMSP'; { New To Fallout 4 }
- XNAM : TwbSignature = 'XNAM';
- XNDP : TwbSignature = 'XNDP';
- XOCP : TwbSignature = 'XOCP';
- XORD : TwbSignature = 'XORD';
- XOWN : TwbSignature = 'XOWN';
- XPDD : TwbSignature = 'XPDD'; { New To Fallout 4 }
- XPLK : TwbSignature = 'XPLK'; { New To Fallout 4 }
- XPOD : TwbSignature = 'XPOD';
- XPPA : TwbSignature = 'XPPA';
- XPRD : TwbSignature = 'XPRD';
- XPRI : TwbSignature = 'XPRI'; { New To Fallout 4 }
- XPRM : TwbSignature = 'XPRM';
- XPTL : TwbSignature = 'XPTL';
- XPWR : TwbSignature = 'XPWR';
- XRDO : TwbSignature = 'XRDO'; { New To Fallout 4 }
- XRDS : TwbSignature = 'XRDS';
- XRFG : TwbSignature = 'XRFG'; { New To Fallout 4 }
- XRGB : TwbSignature = 'XRGB';
- XRGD : TwbSignature = 'XRGD';
- XRMR : TwbSignature = 'XRMR';
- XRNK : TwbSignature = 'XRNK';
- XSCL : TwbSignature = 'XSCL';
- XSPC : TwbSignature = 'XSPC'; { New To Skyrim }
- XTEL : TwbSignature = 'XTEL';
- XTNM : TwbSignature = 'XTNM'; { New To Skyrim }
- XTRI : TwbSignature = 'XTRI';
- XWCN : TwbSignature = 'XWCN'; { New To Skyrim }
- XWCS : TwbSignature = 'XWCS'; { New To Skyrim }
- XWCU : TwbSignature = 'XWCU'; { New To Skyrim }
- XWEM : TwbSignature = 'XWEM'; { New To Skyrim }
- XWPG : TwbSignature = 'XWPG'; { New To Fallout 4 }
- XWPN : TwbSignature = 'XWPN'; { New To Fallout 4 }
- XXXX : TwbSignature = 'XXXX';
- YNAM : TwbSignature = 'YNAM';
- ZNAM : TwbSignature = 'ZNAM';
- ZOOM : TwbSignature = 'ZOOM'; { New To Fallout 4 }
-
- // signatures of reference records
- sigReferences : array [0..11] of TwbSignature = (
- 'NULL', 'PLYR', 'ACHR', 'REFR', 'PGRE', 'PHZD',
- 'PMIS', 'PARW', 'PBAR', 'PBEA', 'PCON', 'PFLA'
- );
-
- // signatures of referenceable records (placed by references or constructable)
- sigBaseObjects : array [0..43] of TwbSignature = (
- 'NULL', 'ACTI', 'ADDN', 'ALCH', 'AMMO', 'ARMO',
- 'ARTO', 'ASPC', 'BNDS', 'BOOK', 'CMPO', 'COBJ',
- 'CONT', 'DEBR', 'DOOR', 'EXPL', 'FLST', 'FLOR',
- 'FURN', 'HAZD', 'IDLM', 'INGR', 'KEYM', 'LIGH',
- 'LVLI', 'LVLN', 'LVSP', 'MISC', 'MSTT', 'NOTE',
- 'NPC_', 'OMOD', 'PROJ', 'SCOL', 'SCRL', 'SOUN',
- 'SPEL', 'STAT', 'TACT', 'TERM', 'TREE', 'TXST',
- 'WATR', 'WEAP'
- );
-
-var
- wbPKDTSpecificFlagsUnused : Boolean;
- wbEDID: IwbSubRecordDef;
- wbCOED: IwbSubRecordDef;
- wbXLCM: IwbSubRecordDef;
- wbEITM: IwbSubRecordDef;
- wbOBND: IwbSubRecordDef;
- wbOBNDReq: IwbSubRecordDef;
- wbDEST: IwbSubRecordStructDef;
- wbDESTActor: IwbSubRecordStructDef;
- wbDODT: IwbSubRecordDef;
- wbXRGD: IwbSubRecordDef;
- wbXRGB: IwbSubRecordDef;
- wbSPLO: IwbSubRecordDef;
- wbSPLOs: IwbSubRecordArrayDef;
- wbCNTO: IwbSubRecordStructDef;
- wbCNTOs: IwbSubRecordArrayDef;
- wbAIDT: IwbSubRecordDef;
- wbFULL: IwbSubRecordDef;
- wbFULLActor: IwbSubRecordDef;
- wbFULLReq: IwbSubRecordDef;
- wbDESC: IwbSubRecordDef;
- wbDESCReq: IwbSubRecordDef;
- wbXSCL: IwbSubRecordDef;
- wbDATAPosRot: IwbSubRecordDef;
- wbPosRot: IwbStructDef;
- wbMODC: IwbSubRecordDef;
- wbMODF: IwbSubRecordDef;
- wbMODL: IwbSubRecordStructDef;
- wbMODS: IwbSubRecordDef;
- wbMO2S: IwbSubRecordDef;
- wbMO3S: IwbSubRecordDef;
- wbMO4S: IwbSubRecordDef;
- wbMO2F: IwbSubRecordDef;
- wbMO3F: IwbSubRecordDef;
- wbMO4F: IwbSubRecordDef;
- wbMO5F: IwbSubRecordDef;
- wbMO2C: IwbSubRecordDef;
- wbMO3C: IwbSubRecordDef;
- wbMO4C: IwbSubRecordDef;
- wbMO5C: IwbSubRecordDef;
- wbMODLActor: IwbSubRecordStructDef;
- wbMODLReq: IwbSubRecordStructDef;
- wbCTDA: IwbSubRecordStructDef;
- wbCTDAs: IwbSubRecordArrayDef;
- wbCTDAsReq: IwbSubRecordArrayDef;
- wbCTDAsCount: IwbSubRecordArrayDef;
- wbCTDAsReqCount: IwbSubRecordArrayDef;
- wbXLOD: IwbSubRecordDef;
- wbXESP: IwbSubRecordDef;
- wbICON: IwbSubRecordDef;
- wbMICO: IwbSubRecordDef;
- wbActorValue: IwbIntegerDef;
- wbETYP: IwbSubRecordDef;
- wbETYPReq: IwbSubRecordDef;
- wbEFID: IwbSubRecordDef;
- wbEFIT: IwbSubRecordDef;
- wbEffectsReq: IwbSubRecordArrayDef;
- wbFirstPersonFlagsU32: IwbIntegerDef;
- wbBOD2: IwbSubRecordDef;
- wbScriptEntry: IwbStructDef;
- wbScriptFlags: IwbIntegerDef;
- wbScriptPropertyObject: IwbUnionDef;
- wbScriptPropertyStruct: IwbArrayDef;
- wbScriptProperties: IwbArrayDef;
- wbScriptFragments: IwbStructDef;
- wbScriptFragmentsQuest: IwbStructDef;
- wbScriptFragmentsInfo: IwbStructDef;
- wbScriptFragmentsPack: IwbStructDef;
- wbScriptFragmentsScen: IwbStructDef;
- wbPLDT: IwbSubRecordDef;
- wbPLVD: IwbSubRecordDef;
- wbTargetData: IwbStructDef;
- wbAttackData: IwbSubRecordStructDef;
- wbLLCT: IwbSubRecordDef;
- wbLVLD: IwbSubRecordDef;
- wbVMAD: IwbSubRecordDef;
- wbVMADFragmentedPERK: IwbSubRecordDef;
- wbVMADFragmentedPACK: IwbSubRecordDef;
- wbVMADFragmentedQUST: IwbSubRecordDef;
- wbVMADFragmentedSCEN: IwbSubRecordDef;
- wbVMADFragmentedINFO: IwbSubRecordDef;
- wbCOCT: IwbSubRecordDef;
- wbKSIZ: IwbSubRecordDef;
- wbKWDAs: IwbSubRecordDef;
- wbReqKWDAs: IwbSubRecordDef;
- wbKeywords: IwbSubRecordStructDef;
- wbCNAM: IwbSubRecordDef;
- wbCITC: IwbSubRecordDef;
- wbMGEFData: IwbSubRecordStructDef;
- wbMGEFType: IwbIntegerDef;
- wbMDOB: IwbSubRecordDef;
- wbSPIT: IwbSubRecordDef;
- wbDMDC: IwbSubRecordDef;
- wbDMDS: IwbSubRecordDef;
- wbMO5S: IwbSubRecordDef;
- wbSPCT: IwbSubRecordDef;
- wbMODT: IwbSubRecordDef;
- wbDMDT: IwbSubRecordDef;
- wbXOWN: IwbSubRecordDef;
- wbXRNK: IwbSubRecordDef;
- wbPhonemeTargets: IwbSubRecordDef;
- wbPHWT: IwbSubRecordStructDef;
- wbHeadPart: IwbSubRecordStructDef;
- wbQUSTAliasFlags: IwbSubRecordDef;
- wbPDTO: IwbSubRecordDef;
- wbPDTOs: IwbSubRecordArrayDef;
- wbUNAMs: IwbSubRecordArrayDef;
- wbNull: IwbValueDef;
- wbTimeInterpolator: IwbStructDef;
- wbColorInterpolator: IwbStructDef;
- wbYNAM: IwbSubRecordDef;
- wbZNAM: IwbSubRecordDef;
- wbSPED: IwbSubRecordDef;
- wbCUSD: IwbSubRecordDef;
- wbINRD: IwbSubRecordDef;
- wbPTRN: IwbSubRecordDef;
- wbNTRM: IwbSubRecordDef;
- wbPRPS: IwbSubRecordDef;
- wbFLTR: IwbSubRecordDef;
- wbAPPR: IwbSubRecordDef;
- wbObjectTemplate: IwbSubRecordStructDef;
- wbBSMPSequence: IwbSubRecordArrayDef;
- wbFTYP: IwbSubRecordDef;
- wbATTX: IwbSubRecordDef;
- wbMNAMFurnitureMarker: IwbSubRecordDef;
- wbSNAMMarkerParams: IwbSubRecordDef;
- wbOBTSReq: IwbSubRecordDef;
- //wbTintTemplateGroups: IwbSubrecordArrayDef;
- //wbMorphGroups: IwbSubrecordArrayDef;
- //wbRaceFRMI: IwbSubrecordArrayDef;
- wbRaceRBPC: IwbSubRecordDef;
- wbNVNM: IwbSubRecordDef;
- wbMaxHeightDataCELL: IwbSubRecordDef;
- wbMaxHeightDataWRLD: IwbSubRecordDef;
- wbOFST: IwbSubRecordDef;
-
-function Sig2Int(aSignature: TwbSignature): Cardinal; inline;
-begin
- Result := PCardinal(@aSignature)^;
-end;
-
-function wbEPFDActorValueToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- AsCardinal : Cardinal;
- AsFloat : Single;
-begin
- AsCardinal := aInt;
- AsFloat := PSingle(@AsCardinal)^;
- aInt := Round(AsFloat);
- case aType of
- ctToStr: Result := wbActorValueEnum.ToString(aInt, aElement);
- ctToSortKey: Result := wbActorValueEnum.ToSortKey(aInt, aElement);
- ctCheck: Result := wbActorValueEnum.Check(aInt, aElement);
- ctToEditValue: Result := wbActorValueEnum.ToEditValue(aInt, aElement);
- ctEditType: Result := 'ComboBox';
- ctEditInfo: Result := wbActorValueEnum.EditInfo[aInt, aElement];
- end;
-end;
-
-function wbEPFDActorValueToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- AsCardinal : Cardinal;
- AsFloat : Single;
-begin
- AsFloat := wbActorValueEnum.FromEditValue(aString, aElement);
- PSingle(@AsCardinal)^ := AsFloat;
- Result := AsCardinal;
-end;
-
-function wbCTDAParam2QuestStageToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Stages : IwbContainerElementRef;
- Stage : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- // get winning quest override except for partial forms
- if MainRecord.WinningOverride.Flags._Flags and $00004000 = 0 then
- MainRecord := MainRecord.WinningOverride
- else if MainRecord.Flags._Flags and $00004000 <> 0 then
- MainRecord := MainRecord.MasterOrSelf;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Stages'], IwbContainerElementRef, Stages) then begin
- for i := 0 to Pred(Stages.ElementCount) do
- if Supports(Stages.Elements[i], IwbContainerElementRef, Stage) then begin
- j := Stage.ElementNativeValues['INDX\Stage Index'];
- s := Trim(Stage.ElementValues['Log Entries\Log Entry\CNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbPerkDATAQuestStageToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Stages : IwbContainerElementRef;
- Stage : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Quest'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- // get winning quest override except for partial forms
- if MainRecord.WinningOverride.Flags._Flags and $00004000 = 0 then
- MainRecord := MainRecord.WinningOverride
- else if MainRecord.Flags._Flags and $00004000 <> 0 then
- MainRecord := MainRecord.MasterOrSelf;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Stages'], IwbContainerElementRef, Stages) then begin
- for i := 0 to Pred(Stages.ElementCount) do
- if Supports(Stages.Elements[i], IwbContainerElementRef, Stage) then begin
- j := Stage.ElementNativeValues['INDX\Stage Index'];
- s := Trim(Stage.ElementValues['Log Entries\Log Entry\CNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbCTDAParam2QuestStageToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i : Integer;
- s : string;
-begin
- i := 1;
- s := Trim(aString);
- while (i <= Length(s)) and (s[i] in ['0'..'9']) do
- Inc(i);
- s := Copy(s, 1, Pred(i));
-
- Result := StrToInt(s);
-end;
-
-function wbREFRNavmeshTriangleToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Navmesh : IwbElement;
- MainRecord : IwbMainRecord;
- Triangles : IwbContainerElementRef;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt);
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Navmesh := Container.Elements[0];
-
- if not Assigned(Navmesh) then
- Exit;
-
- if not Supports(Navmesh.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- MainRecord := MainRecord.WinningOverride;
-
- if MainRecord.Signature <> NAVM then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- if Supports(MainRecord.ElementByPath['NVNM\Triangles'], IwbContainerElementRef, Triangles) and (aType = ctCheck) then
- if aInt >= Triangles.ElementCount then
- Result := '';
-end;
-
-function wbStringToInt(const aString: string; const aElement: IwbElement): Int64;
-begin
- Result := StrToIntDef(aString, 0);
-end;
-
-{ Alias to string conversion, requires quest reference or quest record specific to record that references alias }
-function wbAliasToStr(aInt: Int64; const aQuestRef: IwbElement; aType: TwbCallbackType): string;
-var
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Aliases : IwbContainerElementRef;
- Alias : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: if aInt = -1 then
- Result := 'None'
- else if aInt = -2 then
- Result := 'Player'
- else
- Result := IntToStr(aInt) + ' ';
- ctToEditValue: if aInt = -1 then Result := 'None' else
- Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: if (aInt = -1) or (aInt = -2) then Result := '' else
- Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if ((aInt = -1) or (aInt = -2)) and (aType <> ctEditType) and (aType <> ctEditInfo) then
- Exit;
-
- if not Assigned(aQuestRef) then
- Exit;
-
- // aQuestRef can be a QUST record or reference to QUST record
- if not Supports(aQuestRef, IwbMainRecord, MainRecord) then
- if not Supports(aQuestRef.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- // get winning quest override except for partial forms
- if MainRecord.WinningOverride.Flags._Flags and $00004000 = 0 then
- MainRecord := MainRecord.WinningOverride
- else if MainRecord.Flags._Flags and $00004000 <> 0 then
- MainRecord := MainRecord.MasterOrSelf;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo: begin
- EditInfos := TStringList.Create;
- end;
- else
- EditInfos := nil;
- end;
-
- try
- if Supports(MainRecord.ElementByName['Aliases'], IwbContainerElementRef, Aliases) then begin
- for i := 0 to Pred(Aliases.ElementCount) do
- if Supports(Aliases.Elements[i], IwbContainerElementRef, Alias) then begin
- // skip alias collection
- if Assigned(Alias.ElementBySignature['ALCS']) then
- Continue;
- j := Alias.Elements[0].NativeValue;
- s := Alias.ElementEditValues['ALID'];
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.Add(t)
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Add('None');
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbStrToAlias(const aString: string; const aElement: IwbElement): Int64;
-var
- i : Integer;
- s : string;
-begin
- Result := -1;
-
- if aString = 'None' then
- Exit
- else if aString = 'Player' then begin
- Result := -2;
- Exit;
- end;
-
- i := 1;
- s := Trim(aString);
- while (i <= Length(s)) and (s[i] in ['-', '0'..'9']) do
- Inc(i);
- s := Copy(s, 1, Pred(i));
-
- Result := StrToIntDef(s, -1);
-end;
-
-function wbScriptObjectAliasToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
-begin
- if not wbResolveAlias then begin
- case aType of
- ctToStr, ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: Result := IntToHex64(aInt, 8);
- else
- Result := '';
- end;
- Exit;
- end;
-
- if not Assigned(aElement) then
- Exit;
-
- Container := GetContainerRefFromUnionOrValue(aElement);
-
- if not Assigned(Container) then
- Exit;
-
- Result := wbAliasToStr(aInt, Container.ElementByName['FormID'], aType);
-end;
-
-function wbPackageLocationAliasToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainer;
-begin
- if not wbResolveAlias then begin
- case aType of
- ctToStr, ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: Result := IntToHex64(aInt, 8);
- else
- Result := '';
- end;
- Exit;
- end;
-
- if not Assigned(aElement) then
- Exit;
-
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.ElementType <> etMainRecord) do
- Container := Container.Container;
-
- if not Assigned(Container) then
- Exit;
-
- Result := wbAliasToStr(aInt, Container.ElementBySignature['QNAM'], aType);
-end;
-
-function wbQuestAliasToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainer;
-begin
- if not wbResolveAlias then begin
- case aType of
- ctToStr, ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: Result := IntToHex64(aInt, 8);
- else
- Result := '';
- end;
- Exit;
- end;
-
- if not Assigned(aElement) then
- Exit;
-
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.ElementType <> etMainRecord) do
- Container := Container.Container;
-
- if not Assigned(Container) then
- Exit;
-
- Result := wbAliasToStr(aInt, Container, aType);
-end;
-
-function wbQuestExternalAliasToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainer;
-begin
- if not wbResolveAlias then begin
- case aType of
- ctToStr, ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: Result := IntToHex64(aInt, 8);
- else
- Result := '';
- end;
- Exit;
- end;
-
- if not Assigned(aElement) then
- Exit;
-
- Container := aElement.Container;
-
- if not Assigned(Container) then
- Exit;
-
- Result := wbAliasToStr(aInt, Container.ElementBySignature['ALEQ'] , aType);
-end;
-
-function wbConditionAliasToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainer;
- MainRecord : IwbMainRecord;
- GroupRecord : IwbGroupRecord;
-begin
- if not wbResolveAlias then begin
- case aType of
- ctToStr, ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: Result := IntToHex64(aInt, 8);
- else
- Result := '';
- end;
- Exit;
- end;
-
- if not Assigned(aElement) then
- Exit;
-
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.ElementType <> etMainRecord) do
- Container := Container.Container;
-
- if not Assigned(Container) then
- Exit;
-
- if not Supports(Container, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.Signature = QUST then
- Result := wbAliasToStr(aInt, Container, aType)
- else if MainRecord.Signature = SCEN then
- Result := wbAliasToStr(aInt, Container.ElementBySignature['PNAM'], aType)
- else if MainRecord.Signature = PACK then
- Result := wbAliasToStr(aInt, Container.ElementBySignature['QNAM'], aType)
- else if MainRecord.Signature = INFO then begin
- // get DIAL for INFO
- if Supports(MainRecord.Container, IwbGroupRecord, GroupRecord) then
- if Supports(GroupRecord.ChildrenOf, IwbMainRecord, MainRecord) then
- Result := wbAliasToStr(aInt, MainRecord.ElementBySignature['QNAM'], aType);
- end else
- // this should never be called since aliases in conditions can be in the forms above only
- // but just in case
- case aType of
- ctToStr, ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: Result := IntToHex64(aInt, 8);
- else
- Result := '';
- end;
-end;
-
-function wbClmtMoonsPhaseLength(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- PhaseLength : Byte;
- Masser : Boolean;
- Secunda : Boolean;
-begin
- Result := '';
- if aType = ctToSortKey then begin
- Result := IntToHex64(aInt, 2);
- end else if aType = ctToStr then begin
- PhaseLength := aInt mod 64;
- Masser := (aInt and 64) <> 0;
- Secunda := (aInt and 128) <> 0;
- if Masser then
- if Secunda then
- Result := 'Masser, Secunda / '
- else
- Result := 'Masser / '
- else
- if Secunda then
- Result := 'Secunda / '
- else
- Result := 'No Moon / ';
- Result := Result + IntToStr(PhaseLength);
- end;
-end;
-
-function wbClmtTime(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- Result := TimeToStr( EncodeTime(aInt div 6, (aInt mod 6) * 10, 0, 0) )
- else
- Result := '';
-end;
-
-
-var
- wbCtdaTypeFlags : IwbFlagsDef;
-
-function wbCtdaTypeToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- s: string;
-begin
- Result := '';
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Use aliases',
- {0x04} 'Use global',
- {0x08} 'Use packdata',
- {0x10} 'Swap Subject and Target'
- ]);
-{
- Compare operator (upper 3 bits)
- LGE
- 000 0=Equal to
- 001 1=Not equal to
- 010 2=Greater than
- 011 3=Greater than or equal to
- 100 4=Less than
- 101 5=Less than or equal to
-
- Flags (lower 5 bits)
- 0x01=OR (default is to AND conditions together)
- 0x02=Parameters (use aliases) : Force function parameters to use quest alias data (exclusive with "use pack data")
- 0x04=Use global
- 0x08=Use Pack Data : Force function parameters to use pack data (exclusive with "use aliases")
- 0x10=Swap Subject and Target
-}
- case aType of
- ctEditType:
- Result := 'CheckComboBox';
- ctEditInfo:
- Result := 'Equal,Greater,Lesser,Or,"Use Aliases","Use Global","Use Packdata","Swap Subject and Target"';
- ctToEditValue: begin
- Result := '00000000';
- case aInt and $E0 of
- $00 : Result[1] := '1';
- $40 : Result[2] := '1';
- $60 : begin
- Result[1] := '1';
- Result[2] := '1';
- end;
- $80 : Result[3] := '1';
- $A0 : begin
- Result[1] := '1';
- Result[3] := '1';
- end;
- end;
- if (aInt and $01) <> 0 then // Or
- Result[4] := '1';
- if (aInt and $02) <> 0 then // Use aliases
- Result[5] := '1';
- if (aInt and $04) <> 0 then // Use global
- Result[6] := '1';
- if (aInt and $08) <> 0 then // Use packdata
- Result[7] := '1';
- if (aInt and $10) <> 0 then // Swap Subject and Target
- Result[8] := '1';
- end;
- ctToStr: begin
- case aInt and $E0 of
- $00 : Result := 'Equal to';
- $20 : Result := 'Not equal to';
- $40 : Result := 'Greater than';
- $60 : Result := 'Greater than or equal to';
- $80 : Result := 'Less than';
- $A0 : Result := 'Less than or equal to';
- else
- Result := ''
- end;
- s := wbCtdaTypeFlags.ToString(aInt and $1F, aElement);
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: begin
- case aInt and $E0 of
- $00, $20, $40, $60, $80, $A0 : Result := '';
- else
- Result := ''
- end;
- s := wbCtdaTypeFlags.Check(aInt and $1F, aElement);
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- end;
-end;
-
-function wbCtdaTypeToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- s: string;
-begin
- s := aString + '00000000';
- if s[1] = '1' then begin
- if s[2] = '1' then begin
- if s[3] = '1' then begin
- Result := $00;
- end else begin
- Result := $60;
- end;
- end else begin
- if s[3] = '1' then begin
- Result := $A0;
- end else begin
- Result := $00;
- end;
- end;
- end else begin
- if s[2] = '1' then begin
- if s[3] = '1' then begin
- Result := $20;
- end else begin
- Result := $40;
- end;
- end else begin
- if s[3] = '1' then begin
- Result := $80;
- end else begin
- Result := $20;
- end;
- end;
- end;
- // Or
- if s[4] = '1' then
- Result := Result or $01;
- // Use aliases
- if s[5] = '1' then
- Result := Result or $02;
- // Use global
- if s[6] = '1' then
- Result := Result or $04;
- // Use packdata
- if s[7] = '1' then
- Result := Result or $08;
- // Swap Subject and Target
- if s[8] = '1' then
- Result := Result or $10;
-end;
-
-var
- wbEventFunctionAndMemberEditInfo: string;
-
-function wbEventFunctionAndMemberToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- EventFunction, EventMember: Integer;
- i, j: Integer;
- s1, s2: string;
- slMember: TStringList;
-begin
- Result := '';
- EventFunction := aInt and $FFFF;
- EventMember := aInt shr 16;
- case aType of
- ctToStr, ctToEditValue: begin
- Result := wbEventFunctionEnum.ToEditValue(EventFunction, nil);
- Result := Result + ':' + wbEventMemberEnum.ToEditValue(EventMember, nil);
- end;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctCheck: begin
- s1 := wbEventFunctionEnum.Check(EventFunction, nil);
- if s1 <> '' then
- s1 := 'EventFunction' + s1;
- s2 := wbEventMemberEnum.Check(EventMember, nil);
- if s2 <> '' then
- s2 := 'EventMember' + s2;
- if (s1 <> '') or (s2 <> '') then
- Result := s1 + ':' + s2;
- end;
- ctEditType:
- Result := 'ComboBox';
- ctEditInfo: begin
- Result := wbEventFunctionAndMemberEditInfo;
- if Result = '' then try
- slMember := TStringList.Create;
- slMember.CommaText := wbEventMemberEnum.EditInfo[0, nil];
- with TStringList.Create do try
- for i := 0 to Pred(wbEventFunctionEnum.NameCount) do
- for j := 0 to Pred(slMember.Count) do
- Add(wbEventFunctionEnum.Names[i] + ':' + slMember[j]);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- wbEventFunctionAndMemberEditInfo := Result;
- finally
- FreeAndNil(slMember);
- end
- end;
- end;
-end;
-
-function wbEventFunctionAndMemberToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- EventFunction, EventMember, i: Integer;
-begin
- i := Pos(':', aString);
- if i > 0 then begin
- EventFunction := wbEventFunctionEnum.FromEditValue(Copy(aString, 1, i-1), nil);
- EventMember := wbEventMemberEnum.FromEditValue(Copy(aString, i+1, Length(aString)), nil);
- end
- else begin
- EventFunction := 0;
- EventMember := 0;
- end;
- Result := EventMember shl 16 + EventFunction;
-end;
-
-procedure wbMESGDNAMAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : Integer;
- Container : IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := Integer(aOldValue) and 1;
- NewValue := Integer(aNewValue) and 1;
- if NewValue = OldValue then
- Exit;
- if NewValue = 1 then
- Container.RemoveElement('TNAM')
- else
- Container.Add('TNAM', True);
- end;
-end;
-
-procedure wbGMSTEDIDAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : string;
- Container : IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := aOldValue;
- NewValue := aNewValue;
- if (Length(OldValue) < 1) or (Length(OldValue) < 1) or (OldValue[1] <> NewValue[1]) then begin
- Container.RemoveElement('DATA');
- Container.Add('DATA', True);
- end;
- end;
-end;
-
-procedure wbFLSTEDIDAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue : string;
- OldOrdered, NewOrdered : Boolean;
- Container : IwbContainerElementRef;
-const
- OrderedList = 'OrderedList';
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- OldValue := aOldValue;
- NewValue := aNewValue;
-
- if Length(OldValue) > Length(OrderedList) then
- Delete(OldValue, 1, Length(OldValue)-Length(OrderedList));
- if Length(NewValue) > Length(OrderedList) then
- Delete(NewValue, 1, Length(NewValue)-Length(OrderedList));
-
- OldOrdered := SameText(OldValue, OrderedList);
- NewOrdered := SameText(NewValue, OrderedList);
-
- if OldOrdered <> NewOrdered then
- Container.RemoveElement('FormIDs');
- end;
-end;
-
-procedure wbCtdaTypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- OldValue, NewValue: Integer;
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- // reset value if "use global" has changed
- OldValue := aOldValue and $04;
- NewValue := aNewValue and $04;
- if OldValue <> NewValue then
- Container.ElementNativeValues['..\Comparison Value'] := 0;
-
- {>>> "run on target", no such flag in Skyrim <<<}
-// if aNewValue and $02 then begin
-// Container.ElementNativeValues['..\Run On'] := 1;
-// if Integer(Container.ElementNativeValues['..\Run On']) = 1 then
-// aElement.NativeValue := Byte(aNewValue) and not $02;
-// end;
-end;
-
-procedure wbAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- Exit;
-end;
-
-function wbMODTCallback(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Strings: TDynStrings;
- i: Integer;
-begin
- Result := '';
- if wbLoaderDone and (aType in [ctToStr, ctToSortKey] ) then begin
- Strings := wbContainerHandler.ResolveHash(aInt);
- for i := Low(Strings) to High(Strings) do
- Result := Result + Strings[i] + ', ';
- SetLength(Result, Length(Result) -2 );
- end;
-end;
-
-{>>> Needs revision for Skyrim <<<}
-//function wbIdleAnam(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-//begin
-// Result := '';
-// case aType of
-// ctToStr: begin
-// case aInt and not $C0 of
-// 0: Result := 'Idle';
-// 1: Result := 'Movement';
-// 2: Result := 'Left Arm';
-// 3: Result := 'Left Hand';
-// 4: Result := 'Weapon';
-// 5: Result := 'Weapon Up';
-// 6: Result := 'Weapon Down';
-// 7: Result := 'Special Idle';
-// 20: Result := 'Whole Body';
-// 21: Result := 'Upper Body';
-// else
-// Result := '';
-// end;
-//
-// if (aInt and $80) = 0 then
-// Result := Result + ', Must return a file';
-// if (aInt and $40) = 1 then
-// Result := Result + ', Unknown Flag';
-// end;
-// ctToSortKey: begin
-// Result := IntToHex64(aInt, 2);
-// end;
-// ctCheck: begin
-// case aInt and not $C0 of
-// 0..7, 20, 21: Result := '';
-// else
-// Result := '';
-// end;
-// end;
-// end;
-//end;
-
-function wbScaledInt4ToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-const
- PlusMinus : array[Boolean] of string = ('+', '-');
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- ctToSortKey: begin
- Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- if Length(Result) < 22 then
- Result := StringOfChar('0', 22 - Length(Result)) + Result;
- Result := PlusMinus[aInt < 0] + Result;
- end;
- ctCheck: Result := '';
- end;
-end;
-
-function wbScaledInt4ToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- f: Extended;
-begin
- f := StrToFloat(aString);
- f := f * 10000;
- Result := Round(f);
-end;
-
-function wbCloudSpeedToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: Result := FloatToStrF((aInt - 127)/127/10, ffFixed, 99, 4);
- ctCheck: Result := '';
- end;
-end;
-
-function wbCloudSpeedToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- f: Extended;
-begin
- f := StrToFloat(aString);
- f := f*10*127 + 127;
- Result := Min(Round(f), 254);
-end;
-
-function wbShortXYtoStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- x, y: SmallInt;
-begin
- y := aInt and $FFFF;
- x := aInt shr 16 and $FFFF;
- Result := '';
- case aType of
- ctToStr, ctToEditValue: Result := Format('%d, %d', [x, y]);
- ctCheck: Result := '';
- end;
-end;
-
-function wbStrToShortXY(const aString: string; const aElement: IwbElement): Int64;
-var
- x, y: SmallInt;
- Value: Cardinal;
-begin
- y := StrToIntDef(Copy(aString, 1, Pred(Pos(', ', aString))), 0);
- x := StrToIntDef(Copy(aString, Pos(', ', aString) + 2, Length(aString)), 0);
- PWord(@Value)^ := x;
- PWord(Cardinal(@Value) + SizeOf(SmallInt))^ := y;
- Result := Value;
-end;
-
-function wbHideFFFF(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- if aInt = $FFFF then
- Result := 'None'
- else
- Result := IntToStr(aInt);
-end;
-
-function wbAtxtPosition(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt div 17, 2) + IntToHex64(aInt mod 17, 2)
- else if aType = ctCheck then begin
- if (aInt < 0) or (aInt > 288) then
- Result := ''
- else
- Result := '';
- end else if aType = ctToStr then
- Result := IntToStr(aInt) + ' -> ' + IntToStr(aInt div 17) + ':' + IntToStr(aInt mod 17);
-end;
-
-function wbPlacedAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- s: string;
- Cell: IwbMainRecord;
- Position: TwbVector;
- Grid: TwbGridCell;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['NAME'];
- if Assigned(Rec) then begin
- s := Trim(Rec.Value);
- if s <> '' then
- Result := 'places ' + s;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
-
- // grid position of persistent reference in exterior persistent cell (interior cells are not persistent)
- if Supports(aMainRecord.Container, IwbGroupRecord, Container) then
- Cell := IwbGroupRecord(Container).ChildrenOf;
- if Assigned(Cell) and Cell.IsPersistent and (Cell.Signature = 'CELL') then
- if aMainRecord.GetPosition(Position) then begin
- Grid := wbPositionToGridCell(Position);
- Result := Result + ' at ' + IntToStr(Grid.x) + ',' + IntToStr(Grid.y);
- end;
-
- // in precombined mesh
- if aMainRecord.HasPrecombinedMesh then
- Result := Result + ' in ' + aMainRecord.PrecombinedMesh;
- end;
- end;
-end;
-
-function wbINFOAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Container: IwbContainer;
- s: string;
-begin
- Result := Trim(aMainRecord.ElementValues['Responses\Response\NAM1']);
- if Result <> '' then
- Result := '''' + Result + '''';
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
- end;
- end;
-
- s := Trim(aMainRecord.ElementValues['QNAM']);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'for ' + s;
- end;
-end;
-
-function wbNAVMAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Container: IwbContainer;
- s: string;
-begin
- Result := '';
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
- end;
- end;
-end;
-
-//function wbNAVMAddInfo(const aMainRecord: IwbMainRecord): string;
-//var
-// Rec : IwbRecord;
-// Element : IwbElement;
-// s : string;
-//begin
-// Result := '';
-//
-// Rec := aMainRecord.RecordBySignature['DATA'];
-// if Assigned(Rec) then begin
-// Element := Rec.ElementByName['Cell'];
-// if Assigned(Element) then
-// Element := Element.LinksTo;
-// if Assigned(Element) then
-// s := Trim(Element.Name);
-// if s <> '' then
-// Result := 'for ' + s;
-// end;
-//end;
-
-function wbCellAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- GroupRecord : IwbGroupRecord;
- s: string;
-begin
- Result := '';
-
- if not aMainRecord.IsPersistent then begin
- Rec := aMainRecord.RecordBySignature['XCLC'];
- if Assigned(Rec) then
- Result := 'at ' + Rec.Elements[0].Value + ',' + Rec.Elements[1].Value;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and not
- (Supports(Container, IwbGroupRecord, GroupRecord) and (GroupRecord.GroupType = 1)) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := wbFormID.ToString(GroupRecord.GroupLabel, aMainRecord);
- if s <> '' then begin
- if Result <> '' then
- s := s + ' ';
- Result := 'in ' + s + Result;
- end;
- end;
-end;
-
-procedure wbCTDARunOnAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- if aOldValue <> aNewValue then
- if aNewValue <> 2 then
- aElement.Container.ElementNativeValues['Reference'] := 0;
-end;
-
-{>>> Needs revision for Skyrim <<<}
-procedure wbPERKPRKETypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainerElementRef;
-// rDATA : IwbRecord;
-begin
- if aOldValue <> aNewValue then
- if Supports(aElement.Container, IwbContainerElementRef, Container) then begin
- if Supports(Container.Container, IwbContainerElementRef, Container) then begin
- Container.RemoveElement('DATA');
- Container.Add('DATA', True);
- Container.RemoveElement('Perk Conditions');
- Container.RemoveElement('Entry Point Function Parameters');
- if aNewValue = 2 then begin
- Container.Add('EPFT', True);
- Container.ElementNativeValues['DATA\Entry Point\Function'] := 2;
- end;
- end;
- end;
-end;
-
-function wbNPCLevelDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
- i: Int64;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- i := Container.ElementByName['Flags'].NativeValue;
- if i and $00000080 <> 0 then
- Result := 1;
-end;
-
-function wbMGEFAssocItemDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- Archtype : Variant;
- DataContainer : IwbDataContainer;
- Element : IwbElement;
-const
- OffsetArchtype = 56;
-
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- VarClear(ArchType);
- Element := Container.ElementByName['Archetype'];
- if Assigned(Element) then
- ArchType := Element.NativeValue
- else if Supports(Container, IwbDataContainer, DataContainer) and
- DataContainer.IsValidOffset(aBasePtr, aEndPtr, OffsetArchtype) then begin // we are part a proper structure
- aBasePtr := Pointer(Cardinal(aBasePtr) + OffsetArchtype);
- ArchType := PCardinal(aBasePtr)^;
- end;
-
- if not VarIsEmpty(ArchType) then
- case Integer(ArchType) of
- 12: Result := 1; // Light
- 17: Result := 2; // Bound Item
- 18: Result := 3; // Summon Creature
- 25: Result := 4; // Guide
- 34: Result := 8; // Peak Mod
- 35: Result := 5; // Cloak
- 36: Result := 6; // Werewolf
- 39: Result := 7; // Enhance Weapon
- 40: Result := 4; // Spawn Hazard
- 46: Result := 6; // Vampire Lord
- end;
-end;
-
-procedure wbMGEFAssocItemAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainer;
- Element : IwbElement;
-begin
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if (aNewValue <> 0) then begin
- Element := Container.ElementByName['Archetype'];
- if Assigned(Element) and (Element.NativeValue = 0) then
- Element.NativeValue := $FF; // Signals ArchType that it should not mess with us on the next change!
- // I assume this will alo protect Second AV Weight (The two actor values are after ArchType)
- end;
-end;
-
-procedure wbMGEFAV2WeightAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainer;
- Element : IwbElement;
-begin
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if (aNewValue <> 0.0) then begin
- Element := Container.ElementByName['Archetype'];
- if Assigned(Element) and (Element.NativeValue = 0) then
- Element.NativeValue := $FF; // Signals ArchType that it should not mess with us on the next change!
- end;
-end;
-
-procedure wbMGEFArchtypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container: IwbContainerElementRef;
-begin
- if VarSameValue(aOldValue, aNewValue) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if (aNewValue < $FF) and (aOldValue < $FF) then begin
- Container.ElementNativeValues['..\Assoc. Item'] := 0;
- case Integer(aNewValue) of
- 06: Container.ElementNativeValues['..\Actor Value'] := 00;//Agression
- 07: Container.ElementNativeValues['..\Actor Value'] := 01;//Confidence
- 08: Container.ElementNativeValues['..\Actor Value'] := 00;//Agression
- 11: Container.ElementNativeValues['..\Actor Value'] := 54;//Invisibility
- 21: Container.ElementNativeValues['..\Actor Value'] := 53;//Paralysis
- 24: Container.ElementNativeValues['..\Actor Value'] := 01;//Confidence
- 38: Container.ElementNativeValues['..\Actor Value'] := 01;//Confidence
- 42: Container.ElementNativeValues['..\Actor Value'] := 01;//Confidence
- else
- Container.ElementNativeValues['..\Actor Value'] := -1;
- end;
- Container.ElementNativeValues['..\Second Actor Value'] := -1;
- Container.ElementNativeValues['..\Second AV Weight'] := 0.0;
- end;
-end;
-
-function wbCTDAReferenceDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Integer(Container.ElementNativeValues['Run On']) = 2 then
- Result := 1;
-end;
-
-function wbNAVIIslandDataDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbMainRecord;
- Element : IwbElement;
-begin
- Result := 0;
-
- Container := aElement.Container;
- while Assigned(Container) and (Container.ElementType <> etSubRecord) do
- Container := Container.Container;
-
- if not Supports(Container, IwbSubRecord, SubRecord) then
- Exit;
-
- Element := SubRecord.ElementByName['Is Island'];
- if not Assigned(Element) then
- Exit;
-
- Result := Element.NativeValue;
-end;
-
-function wbNAVIParentDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbMainRecord;
- Element : IwbElement;
-begin
- Result := 0;
-
- Container := aElement.Container;
- while Assigned(Container) and (Container.ElementType <> etsubRecord) do
- Container := Container.Container;
-
- if not Supports(Container, IwbSubRecord, SubRecord) then
- Exit;
-
- Element := SubRecord.ElementByName['Parent Worldspace'];
- if not Assigned(Element) then
- Exit;
-
- if (Element.NativeValue = 0) then
- Result := 1;
-end;
-
-function wbNVNMParentDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- Parent : IwbElement;
- i : integer;
-begin // Could be simplified by checking if Parent Worldspace is NULL, that's what the runtime does :)
- Result := 0;
-
- Container := aElement.Container;
-
- Parent := Container.ElementByName['Parent Worldspace'];
-
- if not Assigned(Parent) then
- Exit;
-
- i := Parent.NativeValue;
-
- // is interior cell?
- if i = 0 then
- Result := 1;
-end;
-
-function wbDoorTriangleDoorTriangleDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- Parent : IwbElement;
- i : int64;
-begin
- Result := 0;
-
- Container := aElement.Container;
-
- Parent := Container.ElementByName['DTUnknown'];
-
- if not Assigned(Parent) then
- Exit;
-
- i := Parent.NativeValue;
-
- // not sure if it would be an error in the file or if it really possible
- if i <> 0 then
- Result := 1;
-end;
-
-function wbSubrecordSizeDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
-
- if Supports(aElement, IwbSubRecord, SubRecord) then
- if SubRecord.DataSize > 0 then
- Result := 1;
-end;
-
-function wbCOEDOwnerDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- LinksTo : IwbElement;
- MainRecord : IwbMainRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- LinksTo := Container.ElementByName['Owner'].LinksTo;
-
- if Supports(LinksTo, IwbMainRecord, MainRecord) then
- if MainRecord.Signature = 'NPC_' then
- Result := 1
- else if MainRecord.Signature = 'FACT' then
- Result := 2;
-end;
-
-function wbGMSTUnionDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rEDID: IwbRecord;
- s: string;
-begin
- Result := 1;
- rEDID := aElement.Container.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > 0 then
- case s[1] of
- 's': Result := 0; {String} {>>> Localization Strings <<<}
- 'i': Result := 1; {intS32}
- 'f': Result := 2; {Float}
- 'b': Result := 3; {Boolean}
- end;
- end;
-end;
-
-function wbFLSTLNAMIsSorted(const aContainer: IwbContainer): Boolean;
-var
- rEDID : IwbRecord;
- s : string;
-const
- OrderedList = 'OrderedList';
-begin
- Result := False; {>>> Should not be sorted according to Arthmoor and JustinOther <<<}
- rEDID := aContainer.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > Length(OrderedList) then
- Delete(s, 1, Length(s)-Length(OrderedList));
- if SameText(s, OrderedList) then
- Result := False;
- end;
-end;
-
-function wbPerkDATADecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rPRKE: IwbRecord;
- eType: IwbElement;
-begin
- Result := 0;
- rPRKE := aElement.Container.RecordBySignature[PRKE];
- if Assigned(rPRKE) then begin
- eType := rPRKE.ElementByName['Type'];
- if Assigned(eType) then begin
- Result := eType.NativeValue;
- end;
- end;
-end;
-
-function wbEPFDDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainerElementRef;
-begin
- Result := 0;
- if not Assigned(aElement) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, Container) then
- Exit;
- Result := Container.ElementNativeValues['EPFT'];
- if Result = 2 then
- case Integer(Container.ElementNativeValues['..\DATA\Entry Point\Function']) of
- 5, 12, 13, 14: Result := 8;
- end;
-end;
-
-function wbSceneActionSoundDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainerElementRef;
-begin
- Result := 0;
- if not Assigned(aElement) then
- Exit;
- if not Supports(aElement.Container, IwbContainerElementRef, Container) then
- Exit;
- if Container.ElementNativeValues['ANAM'] <> 4 then
- Result := 1;
-end;
-
-function wbEFSHFormatDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- MainRecord: IwbMainRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then
- Exit;
- if not Supports(aElement.Container, IwbMainRecord, MainRecord) then
- Exit;
- if MainRecord.Version < 102 then
- Result := 1;
-end;
-
-function wbDeciderFormVersion99(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-begin
- Result := wbFormVerDecider(aBasePtr, aEndPtr, aElement, 99);
-end;
-
-function wbAECHDataDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- rKNAM : IwbElement;
- s: string;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- rKNAM := Container.ElementBySignature['KNAM'];
- if not Assigned(rKNAM) then Exit;
-
- s := rKNAM.EditValue;
-
- if s = 'BSOverdrive' then
- Result := 0
- else if s = 'BSStateVariableFilter' then
- Result := 1
- else if s = 'BSDelayEffect' then
- Result := 2;
-end;
-
-function wbCLFMColorDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- rFNAM : IwbElement;
- i : Integer;
-begin
- Result := 0;
-
- // resolving to a float causes data loss when copying
- // since deciding field FNAM comes after a value CNAM
- Exit;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- rFNAM := Container.ElementBySignature['FNAM'];
- if not Assigned(rFNAM) then Exit;
-
- i := rFNAM.NativeValue;
-
- if i and 2 <> 0 then
- Result := 1;
-end;
-
-function wbCLFMColorToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainer;
- rFNAM : IwbElement;
- i : Integer;
- s : string;
-begin
- i := 0;
- Container := aElement.Container;
- if Assigned(Container) then begin
- rFNAM := Container.ElementBySignature['FNAM'];
- if Assigned(rFNAM) then
- i := rFNAM.NativeValue;
- end;
-
- if i and 2 <> 0 then
- s := FloatToStrF(PSingle(@aInt)^, ffFixed, 99, wbFloatDigits)
- else
- s := 'rgba(' + IntToStr(aInt and $FF) + ', ' +
- IntToStr(aInt shr 8 and $FF) + ', ' +
- IntToStr(aInt shr 16 and $FF) + ', ' +
- IntToStr(aInt shr 24 and $FF) + ')';
-
- case aType of
- ctToStr: Result := s;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctToEditValue: Result := s;
- end;
-end;
-
-function wbCLFMColorToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- s: string;
- value: Single;
-begin
- if SameText(Copy(aString, 1, 5), 'rgba(') then begin
- s := Copy(aString, 6, Pos(')', aString) - 6);
- with TStringList.Create do try
- Delimiter := ',';
- StrictDelimiter := True;
- DelimitedText := s;
- Result := 0;
- if Count = 4 then begin
- PByte(@Result)[0] := StrToIntDef(Strings[0], 0);
- PByte(@Result)[1] := StrToIntDef(Strings[1], 0);
- PByte(@Result)[2] := StrToIntDef(Strings[2], 0);
- PByte(@Result)[3] := StrToIntDef(Strings[3], 0);
- end;
- finally
- Free;
- end;
- end
- else begin
- try value := StrToFloat(aString) except value := 0.0 end;
- Result := PInteger(@value)^;
- end;
-end;
-
-function wbNOTEDataDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- rDNAM : IwbElement;
- i : Integer;
-begin
- Result := 0;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- rDNAM := Container.ElementBySignature['DNAM'];
- if not Assigned(rDNAM) then Exit;
-
- i := rDNAM.NativeValue;
-
- case i of
- 0: Result := 1;
- 1: Result := 2;
- 3: Result := 3;
- end;
-end;
-
-function wbSNDRDataDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- rCNAM : IwbElement;
-begin
- Result := 0;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- rCNAM := Container.ElementBySignature['CNAM'];
- if not Assigned(rCNAM) then Exit;
-
- if rCNAM.EditValue = 'AutoWeapon' then
- Result := 1;
-end;
-
-
-{>>> For VMAD <<<}
-function wbScriptObjFormatDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- ObjFormat: Integer;
- Container: IwbContainer;
-begin
- Result := 0;
-
- Container := aElement.Container;
- while Assigned(Container) and (Container.ElementType <> etSubRecord) do
- Container := Container.Container;
-
- if not Assigned(Container) then Exit;
-
- ObjFormat := Container.ElementNativeValues['Object Format'];
-
- if ObjFormat = 1 then
- Result := 1;
-end;
-
-{>>> For VMAD <<<}
-function wbScriptPropertyDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- case Integer(Container.ElementNativeValues['Type']) of
- 1: Result := 1;
- 2: Result := 2;
- 3: Result := 3;
- 4: Result := 4;
- 5: Result := 5;
- 6: Result := 6;
- 7: Result := 7;
- 11: Result := 8;
- 12: Result := 9;
- 13: Result := 10;
- 14: Result := 11;
- 15: Result := 12;
- 17: Result := 13;
- end;
-end;
-
-function wbScriptPropertyStructMemberDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- case Integer(Container.ElementNativeValues['Type']) of
- 1: Result := 1;
- 2: Result := 2;
- 3: Result := 3;
- 4: Result := 4;
- 5: Result := 5;
- 11: Result := 6;
- 12: Result := 7;
- 13: Result := 8;
- 14: Result := 9;
- 15: Result := 10;
- end;
-end;
-
-procedure wbScriptPropertyTypeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainerElementRef;
-begin
- if aOldValue <> aNewValue then
- if Supports(aElement.Container, IwbContainerElementRef, Container) then
- Container.ElementByName['Value'].SetToDefault;
-end;
-
-{>>> For VMAD <<<}
-function wbScriptFragmentsDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- MainRecord : IwbMainRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.ElementType <> etMainRecord) do
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- Supports(Container, IwbMainRecord, MainRecord);
- if MainRecord.Signature = PERK then
- Result := 1
- else if MainRecord.Signature = TERM then
- Result := 1
- else if MainRecord.Signature = INFO then
- Result := 2
- else if MainRecord.Signature = PACK then
- Result := 3
- else if MainRecord.Signature = QUST then
- Result := 4
- else if MainRecord.Signature = SCEN then
- Result := 5;
-end;
-
-{>>> For VMAD <<<}
-function wbScriptFragmentsQuestCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if aElement.ElementType = etValue then
- Container := aElement.Container
- else
- Container := aElement as IwbContainer;
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.Name <> 'Script Fragments') do
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- Result := Cardinal(Container.ElementNativeValues['fragmentCount']);
-end;
-
-{>>> For VMAD <<<}
-function wbScriptFragmentsInfoCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
- F : Integer;
- i : Integer;
-begin
- Result := 0;
- if aElement.ElementType = etValue then
- Container := aElement.Container
- else
- Container := aElement as IwbContainer;
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.Name <> 'Script Fragments') do
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- F := Container.ElementByName['Flags'].NativeValue;
- for i := 0 to 2 do begin
- if (F and 1) = 1 then
- Inc(Result);
- F := F shr 1;
- end;
- for i := 3 to 7 do begin
- if (F and 1) = 1 then begin
- Inc(Result);
- if Assigned(wbProgressCallback) then
- wbProgressCallback('==='+aElement.Name+' ['+Container.Name+':'+Container.Path+'] = unknown info VMAD flag bit '+IntToStr(i));
- end;
- F := F shr 1;
- end;
-end;
-
-{>>> For VMAD <<<}
-function wbScriptFragmentsSceneCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
- F : Integer;
- i : Integer;
-begin
- Result := 0;
- if aElement.ElementType = etValue then
- Container := aElement.Container
- else
- Container := aElement as IwbContainer;
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.Name <> 'Script Fragments') do
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- F := Container.ElementByName['Flags'].NativeValue;
- for i := 0 to 2 do begin
- if (F and 1) = 1 then
- Inc(Result);
- F := F shr 1;
- end;
- for i := 3 to 7 do begin
- if (F and 1) = 1 then begin
- Inc(Result);
- if Assigned(wbProgressCallback) then
- wbProgressCallback('==='+aElement.Name+' ['+Container.Name+':'+Container.Path+'] = unknown scene VMAD flag bit '+IntToStr(i));
- end;
- F := F shr 1;
- end;
-end;
-
-{>>> For VMAD <<<}
-function wbScriptFragmentsPackCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
- F : Integer;
- i : Integer;
-begin
- Result := 0;
- if aElement.ElementType = etValue then
- Container := aElement.Container
- else
- Container := aElement as IwbContainer;
- if not Assigned(Container) then Exit;
- while Assigned(Container) and (Container.Name <> 'Script Fragments') do
- Container := Container.Container;
- if not Assigned(Container) then Exit;
-
- F := Container.ElementByName['Flags'].NativeValue;
- for i := 0 to 7 do begin
- if (F and 1) = 1 then
- Inc(Result);
- F := F shr 1;
- end;
-end;
-
-{>>> For VMAD <<<}
-function wbScriptFragmentsEmptyScriptDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Container.ElementEditValues['scriptName'] = '' then
- Result := 1;
-end;
-
-function wbBOOKTeachesDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
- i: Int64;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- i := Container.ElementByName['Flags'].NativeValue;
- if i and $01 <> 0 then
- Result := 1
- else if i and $04 <> 0 then
- Result := 2
- else if i and $10 <> 0 then
- Result := 3
- else
- Result := 0;
-end;
-
-type
- TCTDAFunctionParamType = (
- { 0} ptNone,
- { 1} ptInteger,
- { 2} ptFloat,
- { 3} ptActor, // ACHR
- { 4} ptActorBase, // NPC_
- { 5} ptActorValue, // Enum: wbActorValue
- { 6} ptAdvanceAction, // ?? Enum
- { 7} ptAlias, // index into QUST quest aliases
- { 8} ptAlignment, // ?? Enum
- { 9} ptAssociationType, // ASTP
- {10} ptAxis, // ?? Char
- {11} ptCastingSource, // ?? Enum
- {12} ptCell, // CELL
- {13} ptClass, // CLAS
- {14} ptCrimeType, // ?? Enum
- {15} ptCriticalStage, // ?? Enum
- {16} ptEncounterZone, // ECZN
- {17} ptEquipType, // ?? Enum
- {18} ptEvent, // Struct
- {19} ptEventData, // LCTN, KYWD or FLST
- {20} ptFaction, // FACT
- {21} ptFormList, // FLST
- {22} ptFormType, // ?? Enum
- {23} ptFurniture, // FURN
- {24} ptFurnitureAnim, // enum
- {25} ptFurnitureEntry, // flags
- {26} ptGlobal, // GLOB
- {27} ptIdleForm, // IDLE
- {28} ptInventoryObject, // ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, ARMA, LIGH, LVLI, COBJ
- {29} ptKeyword, // KYWD
- {30} ptLocation, // LCTN
- {31} ptMagicEffect, // MGEF
- {32} ptMagicItem, // SPEL
- {33} ptMiscStat, // ?? Enum
- {34} ptObjectReference, // REFR, ACHR
- {35} ptOwner, // FACT, NPC_
- {36} ptPackage, // PACK
- {37} ptPackdata, // index into PACK package data inputs
- {38} ptPerk, // PERK
- {39} ptQuest, // QUST
- {40} ptQuestStage, // ?? Integer
- {41} ptRace, // RACE
- {42} ptReferencableObject,
- {43} ptRefType, // LCRT
- {44} ptRegion, // REGN
- {45} ptScene, // SCEN
- {46} ptSex, // Enum: Male, Female
- {47} ptShout, // SHOU
- {48} ptVariableName, // Integer
- {49} ptVATSValueFunction, //
- {50} ptVATSValueParam,
- {51} ptVoiceType, // VTYP
- {52} ptWardState, // enum
- {53} ptWeather, // WTHR
- {54} ptWorldspace, // WRLD
- {55} ptDamageType // DMGT
- );
-
- PCTDAFunction = ^TCTDAFunction;
- TCTDAFunction = record
- Index: Integer;
- Name: string;
- ParamType1: TCTDAFunctionParamType;
- ParamType2: TCTDAFunctionParamType;
- ParamType3: TCTDAFunctionParamType;
- end;
-
-const
- wbCTDAFunctions : array[0..514] of TCTDAFunction = (
- (Index: 0; Name: 'GetWantBlocking'),
- (Index: 1; Name: 'GetDistance'; ParamType1: ptObjectReference),
- (Index: 5; Name: 'GetLocked'),
- (Index: 6; Name: 'GetPos'; ParamType1: ptAxis),
- (Index: 8; Name: 'GetAngle'; ParamType1: ptAxis),
- (Index: 10; Name: 'GetStartingPos'; ParamType1: ptAxis),
- (Index: 11; Name: 'GetStartingAngle'; ParamType1: ptAxis),
- (Index: 12; Name: 'GetSecondsPassed'),
- (Index: 14; Name: 'GetValue'; ParamType1: ptActorValue),
- (Index: 18; Name: 'GetCurrentTime'),
- (Index: 24; Name: 'GetScale'),
- (Index: 25; Name: 'IsMoving'),
- (Index: 26; Name: 'IsTurning'),
- (Index: 27; Name: 'GetLineOfSight'; ParamType1: ptObjectReference),
- (Index: 31; Name: 'GetButtonPressed'),
- (Index: 32; Name: 'GetInSameCell'; ParamType1: ptObjectReference),
- (Index: 35; Name: 'GetDisabled'),
- (Index: 39; Name: 'GetDisease'),
- (Index: 41; Name: 'GetClothingValue'),
- (Index: 42; Name: 'SameFaction'; ParamType1: ptActor),
- (Index: 43; Name: 'SameRace'; ParamType1: ptActor),
- (Index: 44; Name: 'SameSex'; ParamType1: ptActor),
- (Index: 45; Name: 'GetDetected'; ParamType1: ptActor),
- (Index: 46; Name: 'GetDead'),
- (Index: 47; Name: 'GetItemCount'; ParamType1: ptReferencableObject),
- (Index: 48; Name: 'GetGold'),
- (Index: 49; Name: 'GetSleeping'),
- (Index: 50; Name: 'GetTalkedToPC'),
- (Index: 56; Name: 'GetQuestRunning'; ParamType1: ptQuest),
- (Index: 58; Name: 'GetStage'; ParamType1: ptQuest),
- (Index: 59; Name: 'GetStageDone'; ParamType1: ptQuest; ParamType2: ptQuestStage),
- (Index: 60; Name: 'GetFactionRankDifference'; ParamType1: ptFaction; ParamType2: ptActor),
- (Index: 61; Name: 'GetAlarmed'),
- (Index: 62; Name: 'IsRaining'),
- (Index: 63; Name: 'GetAttacked'),
- (Index: 64; Name: 'GetIsCreature'),
- (Index: 65; Name: 'GetLockLevel'),
- (Index: 66; Name: 'GetShouldAttack'; ParamType1: ptActor),
- (Index: 67; Name: 'GetInCell'; ParamType1: ptCell),
- (Index: 68; Name: 'GetIsClass'; ParamType1: ptClass),
- (Index: 69; Name: 'GetIsRace'; ParamType1: ptRace),
- (Index: 70; Name: 'GetIsSex'; ParamType1: ptSex),
- (Index: 71; Name: 'GetInFaction'; ParamType1: ptFaction),
- (Index: 72; Name: 'GetIsID'; ParamType1: ptReferencableObject),
- (Index: 73; Name: 'GetFactionRank'; ParamType1: ptFaction),
- (Index: 74; Name: 'GetGlobalValue'; ParamType1: ptGlobal),
- (Index: 75; Name: 'IsSnowing'),
- (Index: 77; Name: 'GetRandomPercent'),
- (Index: 79; Name: 'WouldBeStealing'; ParamType1: ptObjectReference),
- (Index: 80; Name: 'GetLevel'),
- (Index: 81; Name: 'IsRotating'),
- (Index: 83; Name: 'GetLeveledEncounterValue'; ParamType1: ptInteger),
- (Index: 84; Name: 'GetDeadCount'; ParamType1: ptActorBase),
- (Index: 91; Name: 'GetIsAlerted'),
- (Index: 99; Name: 'GetHeadingAngle'; ParamType1: ptObjectReference),
- (Index: 101; Name: 'IsWeaponMagicOut'),
- (Index: 102; Name: 'IsTorchOut'),
- (Index: 103; Name: 'IsShieldOut'),
- (Index: 105; Name: 'IsActionRef'; ParamType1: ptObjectReference),
- (Index: 106; Name: 'IsFacingUp'),
- (Index: 107; Name: 'GetKnockedState'),
- (Index: 108; Name: 'GetWeaponAnimType'),
- (Index: 109; Name: 'IsWeaponSkillType'; ParamType1: ptActorValue),
- (Index: 110; Name: 'GetCurrentAIPackage'),
- (Index: 111; Name: 'IsWaiting'),
- (Index: 112; Name: 'IsIdlePlaying'),
- (Index: 116; Name: 'IsIntimidatedbyPlayer'),
- (Index: 117; Name: 'IsPlayerInRegion'; ParamType1: ptRegion),
- (Index: 118; Name: 'GetActorAggroRadiusViolated'),
- (Index: 119; Name: 'GetCrimeKnown'; ParamType1: ptCrimeType; ParamType2: ptActor; ParamType3: ptActor),
- (Index: 122; Name: 'GetCrime'; ParamType1: ptActor; ParamType2: ptCrimeType),
- (Index: 123; Name: 'IsGreetingPlayer'),
- (Index: 125; Name: 'IsGuard'),
- (Index: 127; Name: 'HasBeenEaten'),
- (Index: 128; Name: 'GetStaminaPercentage'),
- (Index: 129; Name: 'HasBeenRead'),
- (Index: 130; Name: 'GetDying'),
- (Index: 131; Name: 'GetSceneActionPercent'; ParamType1: ptScene; ParamType2: ptInteger),
- (Index: 132; Name: 'WouldRefuseCommand'; ParamType1: ptObjectReference),
- (Index: 133; Name: 'SameFactionAsPC'),
- (Index: 134; Name: 'SameRaceAsPC'),
- (Index: 135; Name: 'SameSexAsPC'),
- (Index: 136; Name: 'GetIsReference'; ParamType1: ptObjectReference),
- (Index: 141; Name: 'IsTalking'),
- (Index: 142; Name: 'GetComponentCount'; ParamType1: ptReferencableObject),
- (Index: 143; Name: 'GetCurrentAIProcedure'),
- (Index: 144; Name: 'GetTrespassWarningLevel'),
- (Index: 145; Name: 'IsTrespassing'),
- (Index: 146; Name: 'IsInMyOwnedCell'),
- (Index: 147; Name: 'GetWindSpeed'),
- (Index: 148; Name: 'GetCurrentWeatherPercent'),
- (Index: 149; Name: 'GetIsCurrentWeather'; ParamType1: ptWeather),
- (Index: 150; Name: 'IsContinuingPackagePCNear'),
- (Index: 152; Name: 'GetIsCrimeFaction'; ParamType1: ptFaction),
- (Index: 153; Name: 'CanHaveFlames'),
- (Index: 154; Name: 'HasFlames'),
- (Index: 157; Name: 'GetOpenState'),
- (Index: 159; Name: 'GetSitting'),
- (Index: 160; Name: 'GetFurnitureMarkerID'),
- (Index: 161; Name: 'GetIsCurrentPackage'; ParamType1: ptPackage),
- (Index: 162; Name: 'IsCurrentFurnitureRef'; ParamType1: ptObjectReference),
- (Index: 163; Name: 'IsCurrentFurnitureObj'; ParamType1: ptFurniture),
- (Index: 167; Name: 'GetFactionReaction'; ParamType1: ptFaction; ParamType2: ptFaction),
- (Index: 170; Name: 'GetDayOfWeek'),
- (Index: 172; Name: 'GetTalkedToPCParam'; ParamType1: ptActor),
- (Index: 175; Name: 'IsPCSleeping'),
- (Index: 176; Name: 'IsPCAMurderer'),
- (Index: 180; Name: 'HasSameEditorLocationAsRef'; ParamType1: ptObjectReference; ParamType2: ptKeyword),
- (Index: 181; Name: 'HasSameEditorLocationAsRefAlias'; ParamType1: ptAlias; ParamType2: ptKeyword),
- (Index: 182; Name: 'GetEquipped'; ParamType1: ptReferencableObject),
- (Index: 185; Name: 'IsSwimming'),
- (Index: 186; Name: 'ScriptEffectElapsedSeconds'),
- (Index: 188; Name: 'GetPCSleepHours'),
- (Index: 190; Name: 'GetAmountSoldStolen'),
- (Index: 192; Name: 'GetIgnoreCrime'),
- (Index: 193; Name: 'GetPCExpelled'; ParamType1: ptFaction),
- (Index: 195; Name: 'GetPCFactionMurder'; ParamType1: ptFaction),
- (Index: 197; Name: 'GetPCEnemyofFaction'; ParamType1: ptFaction),
- (Index: 199; Name: 'GetPCFactionAttack'; ParamType1: ptFaction),
- (Index: 203; Name: 'GetDestroyed'),
- (Index: 205; Name: 'GetActionRef'),
- (Index: 206; Name: 'GetSelf'),
- (Index: 207; Name: 'GetContainer'),
- (Index: 208; Name: 'GetForceRun'),
- (Index: 210; Name: 'GetForceSneak'),
- (Index: 214; Name: 'HasMagicEffect'; ParamType1: ptMagicEffect),
- (Index: 215; Name: 'GetDefaultOpen'),
- (Index: 223; Name: 'IsSpellTarget'; ParamType1: ptMagicItem),
- (Index: 224; Name: 'GetVATSMode'),
- (Index: 225; Name: 'GetPersuasionNumber'),
- (Index: 226; Name: 'GetVampireFeed'),
- (Index: 227; Name: 'GetCannibal'),
- (Index: 228; Name: 'GetIsClassDefault'; ParamType1: ptClass),
- (Index: 229; Name: 'GetClassDefaultMatch'),
- (Index: 230; Name: 'GetInCellParam'; ParamType1: ptCell; ParamType2: ptObjectReference),
- (Index: 231; Name: 'GetPlayerDialogueInput'),
- (Index: 232; Name: 'GetCombatTarget'),
- (Index: 233; Name: 'GetPackageTarget'),
- (Index: 235; Name: 'GetVatsTargetHeight'),
- (Index: 237; Name: 'GetIsGhost'),
- (Index: 242; Name: 'GetUnconscious'),
- (Index: 244; Name: 'GetRestrained'),
- (Index: 246; Name: 'GetIsUsedItem'; ParamType1: ptReferencableObject),
- (Index: 247; Name: 'GetIsUsedItemType'; ParamType1: ptFormType),
- (Index: 248; Name: 'IsScenePlaying'; ParamType1: ptScene),
- (Index: 249; Name: 'IsInDialogueWithPlayer'),
- (Index: 250; Name: 'GetLocationCleared'; ParamType1: ptLocation),
- (Index: 254; Name: 'GetIsPlayableRace'),
- (Index: 255; Name: 'GetOffersServicesNow'),
- (Index: 256; Name: 'GetGameSetting'; ParamType1: ptNone),
- (Index: 258; Name: 'HasAssociationType'; ParamType1: ptActor; ParamType2: ptAssociationType),
- (Index: 259; Name: 'HasFamilyRelationship'; ParamType1: ptActor),
- (Index: 261; Name: 'HasParentRelationship'; ParamType1: ptActor),
- (Index: 262; Name: 'IsWarningAbout'; ParamType1: ptFormList),
- (Index: 263; Name: 'IsWeaponOut'),
- (Index: 264; Name: 'HasSpell'; ParamType1: ptMagicItem),
- (Index: 265; Name: 'IsTimePassing'),
- (Index: 266; Name: 'IsPleasant'),
- (Index: 267; Name: 'IsCloudy'),
- (Index: 274; Name: 'IsSmallBump'),
- (Index: 275; Name: 'GetParentRef'),
- (Index: 277; Name: 'GetBaseValue'; ParamType1: ptActorValue),
- (Index: 278; Name: 'IsOwner'; ParamType1: ptOwner),
- (Index: 280; Name: 'IsCellOwner'; ParamType1: ptCell; ParamType2: ptOwner),
- (Index: 282; Name: 'IsHorseStolen'),
- (Index: 285; Name: 'IsLeftUp'),
- (Index: 286; Name: 'IsSneaking'),
- (Index: 287; Name: 'IsRunning'),
- (Index: 288; Name: 'GetFriendHit'),
- (Index: 289; Name: 'IsInCombat'; ParamType1: ptInteger),
- (Index: 296; Name: 'IsAnimPlaying'; ParamType1: ptReferencableObject),
- (Index: 300; Name: 'IsInInterior'),
- (Index: 303; Name: 'IsActorsAIOff'),
- (Index: 304; Name: 'IsWaterObject'),
- (Index: 305; Name: 'GetPlayerAction'),
- (Index: 306; Name: 'IsActorUsingATorch'),
- (Index: 309; Name: 'IsXBox'),
- (Index: 310; Name: 'GetInWorldspace'; ParamType1: ptWorldspace),
- (Index: 312; Name: 'GetPCMiscStat'; ParamType1: ptMiscStat),
- (Index: 313; Name: 'GetPairedAnimation'),
- (Index: 314; Name: 'IsActorAVictim'),
- (Index: 315; Name: 'GetTotalPersuasionNumber'),
- (Index: 318; Name: 'GetIdleDoneOnce'),
- (Index: 320; Name: 'GetNoRumors'),
- (Index: 323; Name: 'GetCombatState'),
- (Index: 325; Name: 'GetWithinPackageLocation'; ParamType1: ptPackdata),
- (Index: 327; Name: 'IsRidingMount'),
- (Index: 329; Name: 'IsFleeing'),
- (Index: 332; Name: 'IsInDangerousWater'),
- (Index: 338; Name: 'GetIgnoreFriendlyHits'),
- (Index: 339; Name: 'IsPlayersLastRiddenMount'),
- (Index: 344; Name: 'ReleaseWeatherOverride'),
- (Index: 348; Name: 'SendTrespassAlarm'; ParamType1: ptActor),
- (Index: 353; Name: 'IsActor'),
- (Index: 354; Name: 'IsEssential'),
- (Index: 358; Name: 'IsPlayerMovingIntoNewSpace'),
- (Index: 359; Name: 'GetInCurrentLocation'; ParamType1: ptLocation),
- (Index: 360; Name: 'GetInCurrentLocationAlias'; ParamType1: ptAlias),
- (Index: 361; Name: 'GetTimeDead'),
- (Index: 362; Name: 'HasLinkedRef'; ParamType1: ptKeyword),
- (Index: 363; Name: 'GetLinkedRef'; ParamType1: ptKeyword),
- (Index: 365; Name: 'IsChild'),
- (Index: 366; Name: 'GetStolenItemValueNoCrime'; ParamType1: ptFaction),
- (Index: 367; Name: 'GetLastPlayerAction'),
- (Index: 368; Name: 'IsPlayerActionActive'; ParamType1: ptInteger),
- (Index: 370; Name: 'IsTalkingActivatorActor'; ParamType1: ptActor),
- (Index: 372; Name: 'IsInList'; ParamType1: ptFormList),
- (Index: 373; Name: 'GetStolenItemValue'; ParamType1: ptFaction),
- (Index: 375; Name: 'GetCrimeGoldViolent'; ParamType1: ptFaction),
- (Index: 376; Name: 'GetCrimeGoldNonviolent'; ParamType1: ptFaction),
- (Index: 378; Name: 'IsOwnedBy'; ParamType1: ptActor),
- (Index: 380; Name: 'GetCommandDistance'),
- (Index: 381; Name: 'GetCommandLocationDistance'),
- (Index: 387; Name: 'GetObjectiveFailed'; ParamType1: ptQuest; ParamType2: ptInteger),
- (Index: 390; Name: 'GetHitLocation'),
- (Index: 391; Name: 'IsPC1stPerson'),
- (Index: 396; Name: 'GetCauseofDeath'),
- (Index: 397; Name: 'IsLimbGone'; ParamType1: ptInteger),
- (Index: 398; Name: 'IsWeaponInList'; ParamType1: ptFormList),
- (Index: 402; Name: 'IsBribedbyPlayer'),
- (Index: 403; Name: 'GetRelationshipRank'; ParamType1: ptActor),
- (Index: 407; Name: 'GetVATSValue'; ParamType1: ptInteger; ParamType2: ptInteger),
- (Index: 408; Name: 'IsKiller'; ParamType1: ptActor),
- (Index: 409; Name: 'IsKillerObject'; ParamType1: ptFormList),
- (Index: 410; Name: 'GetFactionCombatReaction'; ParamType1: ptFaction; ParamType2: ptFaction),
- (Index: 414; Name: 'Exists'; ParamType1: ptObjectReference),
- (Index: 415; Name: 'GetGroupMemberCount'),
- (Index: 416; Name: 'GetGroupTargetCount'),
- (Index: 419; Name: 'GetObjectiveCompleted'; ParamType1: ptQuest; ParamType2: ptInteger),
- (Index: 420; Name: 'GetObjectiveDisplayed'; ParamType1: ptQuest; ParamType2: ptInteger),
- (Index: 425; Name: 'GetIsFormType'),
- (Index: 426; Name: 'GetIsVoiceType'; ParamType1: ptVoiceType),
- (Index: 427; Name: 'GetPlantedExplosive'),
- (Index: 429; Name: 'IsScenePackageRunning'),
- (Index: 430; Name: 'GetHealthPercentage'),
- (Index: 432; Name: 'GetIsObjectType'; ParamType1: ptFormType),
- (Index: 437; Name: 'GetIsCreatureType'; ParamType1: ptInteger),
- (Index: 438; Name: 'HasKey'; ParamType1: ptObjectReference),
- (Index: 439; Name: 'IsFurnitureEntryType'; ParamType1: ptReferencableObject),
- (Index: 444; Name: 'GetInCurrentLocationFormList'; ParamType1: ptFormList),
- (Index: 445; Name: 'GetInZone'; ParamType1: ptEncounterZone),
- (Index: 446; Name: 'GetVelocity'; ParamType1: ptAxis),
- (Index: 447; Name: 'GetGraphVariableFloat'),
- (Index: 448; Name: 'HasPerk'; ParamType1: ptPerk),
- (Index: 449; Name: 'GetFactionRelation'; ParamType1: ptActor),
- (Index: 450; Name: 'IsLastIdlePlayed'; ParamType1: ptIdleForm),
- (Index: 453; Name: 'GetPlayerTeammate'),
- (Index: 454; Name: 'GetPlayerTeammateCount'),
- (Index: 458; Name: 'GetActorCrimePlayerEnemy'),
- (Index: 459; Name: 'GetCrimeGold'; ParamType1: ptFaction),
- (Index: 462; Name: 'GetPlayerGrabbedRef'),
- (Index: 463; Name: 'IsPlayerGrabbedRef'; ParamType1: ptObjectReference),
- (Index: 465; Name: 'GetKeywordItemCount'; ParamType1: ptKeyword),
- (Index: 467; Name: 'GetBroadcastState'),
- (Index: 470; Name: 'GetDestructionStage'),
- (Index: 473; Name: 'GetIsAlignment'; ParamType1: ptAlignment),
- (Index: 476; Name: 'IsProtected'),
- (Index: 477; Name: 'GetThreatRatio'; ParamType1: ptActor),
- (Index: 479; Name: 'GetIsUsedItemEquipType'; ParamType1: ptEquipType),
- (Index: 480; Name: 'GetPlayerName'),
- (Index: 483; Name: 'GetPlayerActivated'),
- (Index: 485; Name: 'GetFullyEnabledActorsInHigh'),
- (Index: 487; Name: 'IsCarryable'),
- (Index: 488; Name: 'GetConcussed'),
- (Index: 489; Name: 'SetZoneRespawns'; ParamType1: ptEncounterZone; ParamType2: ptInteger),
- (Index: 490; Name: 'SetVATSTarget'; ParamType1: ptInteger),
- (Index: 491; Name: 'GetMapMarkerVisible'),
- (Index: 493; Name: 'PlayerKnows'; ParamType1: ptReferencableObject),
- (Index: 494; Name: 'GetPermanentValue'; ParamType1: ptActorValue),
- (Index: 495; Name: 'GetKillingBlowLimb'),
- (Index: 497; Name: 'CanPayCrimeGold'; ParamType1: ptFaction),
- (Index: 499; Name: 'GetDaysInJail'),
- (Index: 500; Name: 'EPAlchemyGetMakingPoison'),
- (Index: 501; Name: 'EPAlchemyEffectHasKeyword'; ParamType1: ptKeyword),
- (Index: 503; Name: 'GetAllowWorldInteractions'),
- (Index: 506; Name: 'DialogueGetAv'; ParamType1: ptActorValue),
- (Index: 507; Name: 'DialogueHasPerk'; ParamType1: ptPerk),
- (Index: 508; Name: 'GetLastHitCritical'),
- (Index: 510; Name: 'DialogueGetItemCount'; ParamType1: ptReferencableObject),
- (Index: 511; Name: 'LastCrippledCondition'; ParamType1: ptActorValue),
- (Index: 512; Name: 'HasSharedPowerGrid'; ParamType1: ptObjectReference),
- (Index: 513; Name: 'IsCombatTarget'; ParamType1: ptActor),
- (Index: 515; Name: 'GetVATSRightAreaFree'; ParamType1: ptObjectReference),
- (Index: 516; Name: 'GetVATSLeftAreaFree'; ParamType1: ptObjectReference),
- (Index: 517; Name: 'GetVATSBackAreaFree'; ParamType1: ptObjectReference),
- (Index: 518; Name: 'GetVATSFrontAreaFree'; ParamType1: ptObjectReference),
- (Index: 519; Name: 'GetIsLockBroken'),
- (Index: 520; Name: 'IsPS3'),
- (Index: 521; Name: 'IsWindowsPC'),
- (Index: 522; Name: 'GetVATSRightTargetVisible'; ParamType1: ptObjectReference),
- (Index: 523; Name: 'GetVATSLeftTargetVisible'; ParamType1: ptObjectReference),
- (Index: 524; Name: 'GetVATSBackTargetVisible'; ParamType1: ptObjectReference),
- (Index: 525; Name: 'GetVATSFrontTargetVisible'; ParamType1: ptObjectReference),
- (Index: 528; Name: 'IsInCriticalStage'; ParamType1: ptCriticalStage),
- (Index: 530; Name: 'GetXPForNextLevel'),
- (Index: 533; Name: 'GetInfamy'; ParamType1: ptFaction),
- (Index: 534; Name: 'GetInfamyViolent'; ParamType1: ptFaction),
- (Index: 535; Name: 'GetInfamyNonViolent'; ParamType1: ptFaction),
- (Index: 536; Name: 'GetTypeCommandPerforming'),
- (Index: 543; Name: 'GetQuestCompleted'; ParamType1: ptQuest),
- (Index: 544; Name: 'GetSpeechChallengeSuccessLevel'),
- (Index: 545; Name: 'PipBoyRadioOff'),
- (Index: 547; Name: 'IsGoreDisabled'),
- (Index: 550; Name: 'IsSceneActionComplete'; ParamType1: ptScene; ParamType2: ptInteger),
- (Index: 552; Name: 'GetSpellUsageNum'; ParamType1: ptMagicItem),
- (Index: 554; Name: 'GetActorsInHigh'),
- (Index: 555; Name: 'HasLoaded3D'),
- (Index: 559; Name: 'IsImageSpaceActive'; ParamType1: ptReferencableObject),
- (Index: 560; Name: 'HasKeyword'; ParamType1: ptKeyword),
- (Index: 561; Name: 'HasRefType'; ParamType1: ptRefType),
- (Index: 562; Name: 'LocationHasKeyword'; ParamType1: ptKeyword),
- (Index: 563; Name: 'LocationHasRefType'; ParamType1: ptRefType),
- (Index: 565; Name: 'GetIsEditorLocation'; ParamType1: ptLocation),
- (Index: 566; Name: 'GetIsAliasRef'; ParamType1: ptAlias),
- (Index: 567; Name: 'GetIsEditorLocationAlias'; ParamType1: ptAlias),
- (Index: 568; Name: 'IsSprinting'),
- (Index: 569; Name: 'IsBlocking'),
- (Index: 570; Name: 'HasEquippedSpell'; ParamType1: ptCastingSource),
- (Index: 571; Name: 'GetCurrentCastingType'; ParamType1: ptCastingSource),
- (Index: 572; Name: 'GetCurrentDeliveryType'; ParamType1: ptCastingSource),
- (Index: 574; Name: 'GetAttackState'),
- (Index: 575; Name: 'GetAliasedRef'; ParamType1: ptAlias),
- (Index: 576; Name: 'GetEventData'; ParamType1: ptEvent; ParamType2: ptEventData; ParamType3: ptNone), // fireundubh: Event Function, Event Member, Data (FO4)
- (Index: 577; Name: 'IsCloserToAThanB'; ParamType1: ptObjectReference; ParamType2: ptObjectReference),
- (Index: 578; Name: 'LevelMinusPCLevel'),
- (Index: 580; Name: 'IsBleedingOut'),
- (Index: 584; Name: 'GetRelativeAngle'; ParamType1: ptObjectReference; ParamType2: ptAxis),
- (Index: 589; Name: 'GetMovementDirection'),
- (Index: 590; Name: 'IsInScene'),
- (Index: 591; Name: 'GetRefTypeDeadCount'; ParamType1: ptLocation; ParamType2: ptRefType),
- (Index: 592; Name: 'GetRefTypeAliveCount'; ParamType1: ptLocation; ParamType2: ptRefType),
- (Index: 594; Name: 'GetIsFlying'),
- (Index: 595; Name: 'IsCurrentSpell'; ParamType1: ptMagicItem; ParamType2: ptCastingSource),
- (Index: 596; Name: 'SpellHasKeyword'; ParamType1: ptCastingSource; ParamType2: ptKeyword),
- (Index: 597; Name: 'GetEquippedItemType'; ParamType1: ptCastingSource),
- (Index: 598; Name: 'GetLocationAliasCleared'; ParamType1: ptAlias),
- (Index: 600; Name: 'GetLocationAliasRefTypeDeadCount'; ParamType1: ptAlias; ParamType2: ptRefType),
- (Index: 601; Name: 'GetLocationAliasRefTypeAliveCount'; ParamType1: ptAlias; ParamType2: ptRefType),
- (Index: 602; Name: 'IsWardState'; ParamType1: ptWardState),
- (Index: 603; Name: 'IsInSameCurrentLocationAsRef'; ParamType1: ptObjectReference; ParamType2: ptKeyword),
- (Index: 604; Name: 'IsInSameCurrentLocationAsRefAlias'; ParamType1: ptAlias; ParamType2: ptKeyword),
- (Index: 605; Name: 'LocationAliasIsLocation'; ParamType1: ptAlias; ParamType2: ptLocation),
- (Index: 606; Name: 'GetKeywordDataForLocation'; ParamType1: ptLocation; ParamType2: ptKeyword),
- (Index: 608; Name: 'GetKeywordDataForAlias'; ParamType1: ptAlias; ParamType2: ptKeyword),
- (Index: 610; Name: 'LocationAliasHasKeyword'; ParamType1: ptAlias; ParamType2: ptKeyword),
- (Index: 611; Name: 'IsNullPackageData'; ParamType1: ptPackdata),
- (Index: 612; Name: 'GetNumericPackageData'; ParamType1: ptPackdata),
- (Index: 613; Name: 'IsPlayerRadioOn'),
- (Index: 614; Name: 'GetPlayerRadioFrequency'),
- (Index: 615; Name: 'GetHighestRelationshipRank'),
- (Index: 616; Name: 'GetLowestRelationshipRank'),
- (Index: 617; Name: 'HasAssociationTypeAny'; ParamType1: ptAssociationType),
- (Index: 618; Name: 'HasFamilyRelationshipAny'),
- (Index: 619; Name: 'GetPathingTargetOffset'; ParamType1: ptAxis),
- (Index: 620; Name: 'GetPathingTargetAngleOffset'; ParamType1: ptAxis),
- (Index: 621; Name: 'GetPathingTargetSpeed'),
- (Index: 622; Name: 'GetPathingTargetSpeedAngle'; ParamType1: ptAxis),
- (Index: 623; Name: 'GetMovementSpeed'),
- (Index: 624; Name: 'GetInContainer'; ParamType1: ptObjectReference),
- (Index: 625; Name: 'IsLocationLoaded'; ParamType1: ptLocation),
- (Index: 626; Name: 'IsLocationAliasLoaded'; ParamType1: ptAlias),
- (Index: 627; Name: 'IsDualCasting'),
- (Index: 629; Name: 'GetVMQuestVariable'; ParamType1: ptQuest; ParamType2: ptNone),
- (Index: 630; Name: 'GetCombatAudioDetection'),
- (Index: 631; Name: 'GetCombatVisualDetection'),
- (Index: 632; Name: 'IsCasting'),
- (Index: 633; Name: 'GetFlyingState'),
- (Index: 635; Name: 'IsInFavorState'),
- (Index: 636; Name: 'HasTwoHandedWeaponEquipped'),
- (Index: 637; Name: 'IsFurnitureExitType'; ParamType1: ptReferencableObject),
- (Index: 638; Name: 'IsInFriendStatewithPlayer'),
- (Index: 639; Name: 'GetWithinDistance'; ParamType1: ptObjectReference; ParamType2: ptFloat),
- (Index: 640; Name: 'GetValuePercent'; ParamType1: ptActorValue),
- (Index: 641; Name: 'IsUnique'),
- (Index: 642; Name: 'GetLastBumpDirection'),
- (Index: 644; Name: 'GetInfoChallangeSuccess'),
- (Index: 645; Name: 'GetIsInjured'),
- (Index: 646; Name: 'GetIsCrashLandRequest'),
- (Index: 647; Name: 'GetIsHastyLandRequest'),
- (Index: 650; Name: 'IsLinkedTo'; ParamType1: ptObjectReference; ParamType2: ptKeyword),
- (Index: 651; Name: 'GetKeywordDataForCurrentLocation'; ParamType1: ptKeyword),
- (Index: 652; Name: 'GetInSharedCrimeFaction'; ParamType1: ptObjectReference),
- (Index: 653; Name: 'GetBribeAmount'),
- (Index: 654; Name: 'GetBribeSuccess'),
- (Index: 655; Name: 'GetIntimidateSuccess'),
- (Index: 656; Name: 'GetArrestedState'),
- (Index: 657; Name: 'GetArrestingActor'),
- (Index: 659; Name: 'HasVMScript'; ParamType1: ptNone),
- (Index: 660; Name: 'GetVMScriptVariable'; ParamType1: ptNone; ParamType2: ptNone),
- (Index: 661; Name: 'GetWorkshopResourceDamage'; ParamType1: ptActorValue),
- (Index: 664; Name: 'HasValidRumorTopic'; ParamType1: ptQuest),
- (Index: 672; Name: 'IsAttacking'),
- (Index: 673; Name: 'IsPowerAttacking'),
- (Index: 674; Name: 'IsLastHostileActor'),
- (Index: 675; Name: 'GetGraphVariableInt'; ParamType1: ptNone),
- (Index: 678; Name: 'ShouldAttackKill'; ParamType1: ptActor),
- (Index: 680; Name: 'GetActivationHeight'),
- (Index: 682; Name: 'WornHasKeyword'; ParamType1: ptKeyword),
- (Index: 683; Name: 'GetPathingCurrentSpeed'),
- (Index: 684; Name: 'GetPathingCurrentSpeedAngle'; ParamType1: ptAxis),
- (Index: 691; Name: 'GetWorkshopObjectCount'; ParamType1: ptReferencableObject),
- (Index: 693; Name: 'EPMagic_SpellHasKeyword'; ParamType1: ptKeyword),
- (Index: 694; Name: 'GetNoBleedoutRecovery'),
- (Index: 696; Name: 'EPMagic_SpellHasSkill'; ParamType1: ptActorValue),
- (Index: 697; Name: 'IsAttackType'; ParamType1: ptKeyword),
- (Index: 698; Name: 'IsAllowedToFly'),
- (Index: 699; Name: 'HasMagicEffectKeyword'; ParamType1: ptKeyword),
- (Index: 700; Name: 'IsCommandedActor'),
- (Index: 701; Name: 'IsStaggered'),
- (Index: 702; Name: 'IsRecoiling'),
- (Index: 703; Name: 'HasScopeWeaponEquipped'),
- (Index: 704; Name: 'IsPathing'),
- (Index: 705; Name: 'GetShouldHelp'; ParamType1: ptActor),
- (Index: 706; Name: 'HasBoundWeaponEquipped'; ParamType1: ptCastingSource),
- (Index: 707; Name: 'GetCombatTargetHasKeyword'; ParamType1: ptKeyword),
- (Index: 709; Name: 'GetCombatGroupMemberCount'),
- (Index: 710; Name: 'IsIgnoringCombat'),
- (Index: 711; Name: 'GetLightLevel'),
- (Index: 713; Name: 'SpellHasCastingPerk'; ParamType1: ptPerk),
- (Index: 714; Name: 'IsBeingRidden'),
- (Index: 715; Name: 'IsUndead'),
- (Index: 716; Name: 'GetRealHoursPassed'),
- (Index: 718; Name: 'IsUnlockedDoor'),
- (Index: 719; Name: 'IsHostileToActor'; ParamType1: ptActor),
- (Index: 720; Name: 'GetTargetHeight'; ParamType1: ptObjectReference),
- (Index: 721; Name: 'IsPoison'),
- (Index: 722; Name: 'WornApparelHasKeywordCount'; ParamType1: ptKeyword),
- (Index: 723; Name: 'GetItemHealthPercent'),
- (Index: 724; Name: 'EffectWasDualCast'),
- (Index: 725; Name: 'GetKnockStateEnum'),
- (Index: 726; Name: 'DoesNotExist'),
- (Index: 728; Name: 'GetPlayerWalkAwayFromDialogueScene'),
- (Index: 729; Name: 'GetActorStance'),
- (Index: 734; Name: 'CanProduceForWorkshop'),
- (Index: 735; Name: 'CanFlyHere'),
- (Index: 736; Name: 'EPIsDamageType'; ParamType1: ptDamageType),
- (Index: 738; Name: 'GetActorGunState'),
- (Index: 739; Name: 'GetVoiceLineLength'),
- (Index: 741; Name: 'ObjectTemplateItem_HasKeyword'; ParamType1: ptKeyword),
- (Index: 742; Name: 'ObjectTemplateItem_HasUniqueKeyword'; ParamType1: ptKeyword),
- (Index: 743; Name: 'ObjectTemplateItem_GetLevel'),
- (Index: 744; Name: 'MovementIdleMatches'; ParamType1: ptInteger; ParamType2: ptInteger), // TODO: determine correct param types (2)
- (Index: 745; Name: 'GetActionData'),
- (Index: 746; Name: 'GetActionDataShort'; ParamType1: ptInteger),
- (Index: 747; Name: 'GetActionDataByte'; ParamType1: ptInteger),
- (Index: 748; Name: 'GetActionDataFlag'; ParamType1: ptInteger),
- (Index: 749; Name: 'ModdedItemHasKeyword'; ParamType1: ptKeyword),
- (Index: 750; Name: 'GetAngryWithPlayer'),
- (Index: 751; Name: 'IsCameraUnderWater'),
- (Index: 753; Name: 'IsActorRefOwner'; ParamType1: ptActor),
- (Index: 754; Name: 'HasActorRefOwner'; ParamType1: ptActor),
- (Index: 756; Name: 'GetLoadedAmmoCount'),
- (Index: 757; Name: 'IsTimeSpanSunrise'),
- (Index: 758; Name: 'IsTimeSpanMorning'),
- (Index: 759; Name: 'IsTimeSpanAfternoon'),
- (Index: 760; Name: 'IsTimeSpanEvening'),
- (Index: 761; Name: 'IsTimeSpanSunset'),
- (Index: 762; Name: 'IsTimeSpanNight'),
- (Index: 763; Name: 'IsTimeSpanMidnight'),
- (Index: 764; Name: 'IsTimeSpanAnyDay'),
- (Index: 765; Name: 'IsTimeSpanAnyNight'),
- (Index: 766; Name: 'CurrentFurnitureHasKeyword'; ParamType1: ptKeyword),
- (Index: 767; Name: 'GetWeaponEquipIndex'),
- (Index: 769; Name: 'IsOverEncumbered'),
- (Index: 770; Name: 'IsPackageRequestingBlockedIdles'),
- (Index: 771; Name: 'GetActionDataInt'),
- (Index: 772; Name: 'GetVATSRightMinusLeftAreaFree'; ParamType1: ptObjectReference),
- (Index: 773; Name: 'GetInIronSights'; ParamType1: ptObjectReference),
- (Index: 774; Name: 'GetActorStaggerDirection'),
- (Index: 775; Name: 'GetActorStaggerMagnitude'),
- (Index: 776; Name: 'WornCoversBipedSlot'; ParamType1: ptInteger),
- (Index: 777; Name: 'GetInventoryValue'),
- (Index: 778; Name: 'IsPlayerInConversation'),
- (Index: 779; Name: 'IsInDialogueCamera'),
- (Index: 780; Name: 'IsMyDialogueTargetPlayer'),
- (Index: 781; Name: 'IsMyDialogueTargetActor'),
- (Index: 782; Name: 'GetMyDialogueTargetDistance'),
- (Index: 783; Name: 'IsSeatOccupied'; ParamType1: ptKeyword),
- (Index: 784; Name: 'IsPlayerRiding'),
- (Index: 785; Name: 'IsTryingEventCamera'),
- (Index: 786; Name: 'UseLeftSideCamera'),
- (Index: 787; Name: 'GetNoteType'),
- (Index: 788; Name: 'LocationHasPlayerOwnedWorkshop'),
- (Index: 789; Name: 'IsStartingAction'),
- (Index: 790; Name: 'IsMidAction'),
- (Index: 791; Name: 'IsWeaponChargeAttack'),
- (Index: 792; Name: 'IsInWorkshopMode'),
- (Index: 793; Name: 'IsWeaponChargingHoldAttack'),
- (Index: 794; Name: 'IsEncounterAbovePlayerLevel'),
- (Index: 795; Name: 'IsMeleeAttacking'),
- (Index: 796; Name: 'GetVATSQueuedTargetsUnique'),
- (Index: 797; Name: 'GetCurrentLocationCleared'),
- (Index: 798; Name: 'IsPowered'),
- (Index: 799; Name: 'GetTransmitterDistance'),
- (Index: 800; Name: 'GetCameraPlaybackTime'),
- (Index: 801; Name: 'IsInWater'),
- (Index: 802; Name: 'GetWithinActivateDistance'; ParamType1: ptObjectReference),
- (Index: 803; Name: 'IsUnderWater'),
- (Index: 804; Name: 'IsInSameSpace'; ParamType1: ptObjectReference),
- (Index: 805; Name: 'LocationAllowsReset'),
- (Index: 806; Name: 'GetVATSBackRightAreaFree'; ParamType1: ptObjectReference),
- (Index: 807; Name: 'GetVATSBackLeftAreaFree'; ParamType1: ptObjectReference),
- (Index: 808; Name: 'GetVATSBackRightTargetVisible'; ParamType1: ptObjectReference),
- (Index: 809; Name: 'GetVATSBackLeftTargetVisible'; ParamType1: ptObjectReference),
- (Index: 810; Name: 'GetVATSTargetLimbVisible'; ParamType1: ptObjectReference),
- (Index: 811; Name: 'IsPlayerListening'; ParamType1: ptFloat),
- (Index: 812; Name: 'GetPathingRequestedQuickTurn'),
- (Index: 813; Name: 'EPIsCalculatingBaseDamage'),
- (Index: 814; Name: 'GetReanimating'),
- (Index: 817; Name: 'IsInRobotWorkbench'),
-
- // F4SE
- (Index: 1024; Name: 'GetSKSEVersion'; ),
- (Index: 1025; Name: 'GetSKSEVersionMinor'; ),
- (Index: 1026; Name: 'GetSKSEVersionBeta'; ),
- (Index: 1027; Name: 'GetSKSERelease'; ),
- (Index: 1028; Name: 'ClearInvalidRegistrations'; )
- );
-var
- wbCTDAFunctionEditInfo: string;
-
-function wbCTDAParamDescFromIndex(aIndex: Integer): PCTDAFunction;
-var
- L, H, I, C: Integer;
-begin
- Result := nil;
-
- L := Low(wbCTDAFunctions);
- H := High(wbCTDAFunctions);
- while L <= H do begin
- I := (L + H) shr 1;
- C := CmpW32(wbCTDAFunctions[I].Index, aIndex);
- if C < 0 then
- L := I + 1
- else begin
- H := I - 1;
- if C = 0 then begin
- L := I;
- Result := @wbCTDAFunctions[L];
- end;
- end;
- end;
-end;
-
-function wbCTDACompValueDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- // "use global" flag
- if Integer(Container.ElementByName['Type'].NativeValue) and $04 <> 0 then
- Result := 1;
-end;
-
-function wbCTDAParam1Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
- ParamFlag: Byte;
- ParamType: TCTDAFunctionParamType;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
-
- if Assigned(Desc) then begin
- ParamType := Desc.ParamType1;
- ParamFlag := Container.ElementByName['Type'].NativeValue;
- if ParamType in [ptObjectReference, ptActor, ptPackage] then begin
- if ParamFlag and $02 > 0 then begin
- // except for this func when Run On = Quest Alias, then alias is param3 and package is param1
- // [INFO:00020D3C]
- if not ((Container.ElementByName['Run On'].NativeValue = 5) and (Desc.Name = 'GetIsCurrentPackage')) then
- ParamType := ptAlias {>>> 'use aliases' is set <<<}
- end
- else if ParamFlag and $08 > 0 then
- ParamType := ptPackdata; {>>> 'use packdata' is set <<<}
- end;
- Result := Succ(Integer(ParamType));
- end;
-end;
-
-function wbCTDAParam2Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
- ParamFlag: Byte;
- ParamType: TCTDAFunctionParamType;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
-
- if Assigned(Desc) then begin
- ParamType := Desc.ParamType2;
- ParamFlag := Container.ElementByName['Type'].NativeValue;
- if ParamType in [ptObjectReference, ptActor, ptPackage] then begin
- if ParamFlag and $02 > 0 then ParamType := ptAlias else {>>> 'use aliases' is set <<<}
- if ParamFlag and $08 > 0 then ParamType := ptPackdata; {>>> 'use packdata' is set <<<}
- end;
- Result := Succ(Integer(ParamType));
- end;
-end;
-
-function wbCTDAParam2VATSValueParamDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Result := Container.ElementByName['Parameter #1'].NativeValue;
-end;
-
-function wbCTDAFunctionToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Desc : PCTDAFunction;
- i : Integer;
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := Desc.Name
- else if aType = ctToEditValue then
- Result := IntToStr(aInt)
- else
- Result := '';
- end;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctCheck: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := ''
- else
- Result := '';
- end;
- ctEditType:
- Result := 'ComboBox';
- ctEditInfo: begin
- Result := wbCTDAFunctionEditInfo;
- if Result = '' then begin
- with TStringList.Create do try
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- Add(wbCTDAFunctions[i].Name);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- wbCTDAFunctionEditInfo := Result;
- end;
- end;
- end;
-end;
-
-function wbCTDAFunctionToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i: Integer;
-begin
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- with wbCTDAFunctions[i] do
- if SameText(Name, aString) then begin
- Result := Index;
- Exit;
- end;
- Result := StrToInt64(aString);
-end;
-
-function wbNeverShow(const aElement: IwbElement): Boolean;
-begin
- Result := wbHideNeverShow;
-end;
-
-function GetREGNType(aElement: IwbElement): Integer;
-var
- Container: IwbContainerElementRef;
-begin
- Result := -1;
- if not Assigned(aElement) then
- Exit;
- while aElement.Name <> 'Region Data Entry' do begin
- aElement := aElement.Container;
- if not Assigned(aElement) then
- Exit;
- end;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- Result := Container.ElementNativeValues['RDAT\Type'];
-end;
-
-function wbREGNObjectsDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 2;
-end;
-
-function wbREGNWeatherDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 3;
-end;
-
-function wbREGNMapDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 4;
-end;
-
-function wbREGNLandDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 5;
-end;
-
-function wbREGNGrassDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 6;
-end;
-
-function wbREGNSoundDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 7;
-end;
-
-function wbREGNImposterDontShow(const aElement: IwbElement): Boolean;
-begin
- Result := GetREGNType(aElement) <> 8;
-end;
-
-function wbMESGTNAMDontShow(const aElement: IwbElement): Boolean;
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- Result := False;
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if Integer(Container.ElementNativeValues['DNAM']) and 1 <> 0 then
- Result := True;
-end;
-
-function wbEPFDDontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Entry Point Function Parameters' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if not (Integer(Container.ElementNativeValues['EPFT']) in [1..3]) then
- Result := True;
-end;
-
-function wbTES4ONAMDontShow(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- Result := False;
- if not Assigned(aElement) then
- Exit;
- MainRecord := aElement.ContainingMainRecord;
- if not Assigned(MainRecord) then
- Exit;
- if not MainRecord.IsESM then
- Result := True;
-end;
-
-function wbEPF2DontShow(const aElement: IwbElement): Boolean;
-var
- Container: IwbContainerElementRef;
-begin
- Result := False;
- if aElement.Name <> 'Entry Point Function Parameters' then
- Exit;
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if not (Integer(Container.ElementNativeValues['EPFT']) in [4]) then
- Result := True;
-end;
-
-procedure wbRemoveOFST(const aElement: IwbElement);
-var
- Container: IwbContainer;
- rOFST: IwbRecord;
-begin
- if not wbRemoveOffsetData then
- Exit;
-
- if Supports(aElement, IwbContainer, Container) then begin
- if wbBeginInternalEdit then try
- Container.RemoveElement(OFST);
- finally
- wbEndInternalEdit;
- end else begin
- rOFST := Container.RecordBySignature[OFST];
- if Assigned(rOFST) then
- Container.RemoveElement(rOFST);
- end;
- end;
-end;
-
-procedure wbWRLDAfterLoad(const aElement: IwbElement);
- function OutOfRange(aValue: Integer; aRange: Integer = 256): Boolean;
- begin
- Result := (aValue < -aRange) or (aValue > aRange);
- end;
-var
- MainRecord: IwbMainRecord;
- Container: IwbContainer;
-begin
- wbRemoveOFST(aElement);
-
- if wbBeginInternalEdit then try
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.ElementExists['Unused RNAM'] then
- MainRecord.RemoveElement('Unused RNAM');
-
- //if MainRecord.ElementExists['World Default Level Data'] then
- // MainRecord.RemoveElement('World Default Level Data');
-
- //if MainRecord.ElementExists['MHDT'] then
- // MainRecord.RemoveElement('MHDT');
-
- if MainRecord.ElementExists['CLSZ'] then
- MainRecord.RemoveElement('CLSZ');
-
- // large values in object bounds cause stutter and performance issues in game (reported by Arthmoor)
- // CK can occasionally set them wrong, so make a warning
- if Supports(MainRecord.ElementByName['Object Bounds'], IwbContainer, Container) then
- if OutOfRange(StrToIntDef(Container.ElementEditValues['NAM0\X'], 0)) or
- OutOfRange(StrToIntDef(Container.ElementEditValues['NAM0\Y'], 0)) or
- OutOfRange(StrToIntDef(Container.ElementEditValues['NAM9\X'], 0)) or
- OutOfRange(StrToIntDef(Container.ElementEditValues['NAM9\Y'], 0))
- then
- wbProgressCallback('');
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbDOBJObjectsAfterLoad(const aElement: IwbElement);
-var
- ObjectsContainer : IwbContainerElementRef;
- i : Integer;
- ObjectContainer : IwbContainerElementRef;
-begin
- wbRemoveOFST(aElement);
-
- if wbBeginInternalEdit then try
-
- if not Supports(aElement, IwbContainerElementRef, ObjectsContainer) then
- Exit;
-
- for i := Pred(ObjectsContainer.ElementCount) downto 0 do
- if Supports(ObjectsContainer.Elements[i], IwbContainerElementRef, ObjectContainer) then
- if ObjectContainer.ElementNativeValues['Use'] = 0 then
- ObjectsContainer.RemoveElement(i, True);
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbActorTemplateUseTraits(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000001) <> 0;
- end;
-end;
-
-function wbActorTemplateUseStats(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000002) <> 0;
- end;
-end;
-
-function wbActorAutoCalcDontShow(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Flags'];
- Result := (i and $00000010) <> 0;
- end;
-end;
-
-function wbActorTemplateUseStatsAutoCalc(const aElement: IwbElement): Boolean;
-begin
- Result := wbActorTemplateUseStats(aElement) or wbActorAutoCalcDontShow(aElement);
-end;
-
-function wbActorTemplateUseFactions(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000004) <> 0;
- end;
-end;
-
-function wbActorTemplateUseActorEffectList(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000008) <> 0;
- end;
-end;
-
-function wbActorTemplateUseAIData(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000010) <> 0;
- end;
-end;
-
-function wbActorTemplateUseAIPackages(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000020) <> 0;
- end;
-end;
-
-function wbActorTemplateUseModelAnimation(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000040) <> 0;
- end;
-end;
-
-function wbActorTemplateUseBaseData(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000080) <> 0;
- end;
-end;
-
-function wbActorTemplateUseInventory(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000100) <> 0;
- end;
-end;
-
-function wbActorTemplateUseScript(const aElement: IwbElement): Boolean;
-var
- Element : IwbElement;
- MainRecord : IwbMainRecord;
- i : Int64;
-begin
- Result := False;
- Element := aElement;
- MainRecord := nil;
- while Assigned(Element) and not Supports(Element, IwbMainRecord, MainRecord) do
- Element := Element.Container;
- if Assigned(MainRecord) then begin
- i := MainRecord.ElementNativeValues['ACBS\Template Flags'];
- Result := (i and $00000200) <> 0;
- end;
-end;
-
-function wbActorTemplatesUseTemplate0(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 0 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate1(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 1 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate2(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 2 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate3(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 3 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate4(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 4 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate5(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 5 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate6(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 6 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate7(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 7 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate8(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 8 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate9(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 9 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate10(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 10 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate11(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 11 and 1) = 0
- else
- Result := False;
-end;
-
-function wbActorTemplatesUseTemplate12(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- MainRecord := aElement.ContainingMainRecord;
- if Assigned(MainRecord) then
- Result := (Cardinal(MainRecord.ElementNativeValues['ACBS\Use Template Actors']) shr 12 and 1) = 0
- else
- Result := False;
-end;
-
-procedure wbRemoveEmptyKWDA(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Assigned(Container.ElementBySignature['KSIZ']) then
- if Assigned(Container.ElementBySignature['KWDA']) then
- Container.ElementBySignature['KWDA'].Remove;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbReplaceBODTwithBOD2(const aElement: IwbElement);
-var
- MainRecord : IwbMainRecord;
- ContainerBOD2 : IwbContainerElementRef;
- ContainerBODT : IwbContainerElementRef;
-begin
- Exit; {>>> Looks like causes problems with Dawnguard.esm <<<}
-
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if not Supports(MainRecord.ElementBySignature[BODT], IwbContainerElementRef, ContainerBODT) then
- Exit;
-
- if Supports(MainRecord.Add('BOD2', True), IwbContainerElementRef, ContainerBOD2) then begin
- ContainerBOD2.ElementNativeValues['First Person Flags'] := ContainerBODT.ElementNativeValues['First Person Flags'];
- ContainerBOD2.ElementNativeValues['Armor Type'] := ContainerBODT.ElementNativeValues['Armor Type'];
- MainRecord.RemoveElement(BODT);
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbARMOAfterLoad(const aElement: IwbElement);
-begin
- wbRemoveEmptyKWDA(aElement);
- wbReplaceBODTwithBOD2(aElement);
-end;
-
-procedure wbARMAAfterLoad(const aElement: IwbElement);
-{var
- MainRecord : IwbMainRecord;}
-begin
- wbReplaceBODTwithBOD2(aElement);
- {if wbBeginInternalEdit then try
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
- if MainRecord.ElementNativeValues['DNAM\Weight slider - Male'] = 0 then
- MainRecord.ElementNativeValues['DNAM\Weight slider - Male'] := 2;
- if MainRecord.ElementNativeValues['DNAM\Weight slider - Female'] = 0 then
- MainRecord.ElementNativeValues['DNAM\Weight slider - Female'] := 2;
- finally
- wbEndInternalEdit;
- end;}
-end;
-
-procedure wbNPCAfterLoad(const aElement: IwbElement);
-begin
- wbRemoveEmptyKWDA(aElement);
-end;
-
-procedure wbREFRAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementExists['XLOC'] then begin
- if Container.ElementNativeValues['XLOC - Lock Data\Level'] = 0 then
- Container.ElementNativeValues['XLOC - Lock Data\Level'] := 1;
- end;
-
- Container.RemoveElement('XPTL');
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbWEAPAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- Flags : Cardinal;
-begin
- wbRemoveEmptyKWDA(aElement);
-
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- // clear IronSights flags which are randomly assigned in CK
- if Container.ElementExists['DNAM'] then begin
- Flags := Container.ElementNativeValues['DNAM - Data\Flags'];
- Flags := Flags and ($FFFF xor $0040);
- Container.ElementNativeValues['DNAM - Data\Flags'] := Flags;
- Flags := Container.ElementNativeValues['DNAM - Data\Flags2'];
- Flags := Flags and ($FFFFFFFF xor $0100);
- Container.ElementNativeValues['DNAM - Data\Flags2'] := Flags;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbCELLXCLWGetConflictPriority(const aElement: IwbElement; var aCP: TwbConflictPriority);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- DataRec : IwbElement;
- Flags : Cardinal;
-begin
- if not Assigned(aElement) then
- Exit;
-
- if not Supports(aElement.Container, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(Container, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- DataRec := MainRecord.ElementBySignature[DATA];
-
- if not Assigned(DataRec) then
- Exit;
-
- Flags := DataRec.NativeValue;
-
- {0x0001 Is Interior Cell}
- if (Flags and 1) = 1 then
- {Interior cells don't use water level in Skyrim at all}
- aCP := cpIgnore;
-end;
-
-procedure wbCELLDATAAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Container : IwbContainer;
-begin
- if not Assigned(aElement) then
- Exit;
- Container := aElement.Container;
- while Assigned(Container) and not (Container.Def.DefType = dtRecord) do
- Container := Container.Container;
- if Assigned(Container) then
- Container.ResetConflict;
-end;
-
-procedure wbCELLAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
-// Container2 : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- DataSubRec : IwbSubrecord;
- Flags : Byte;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Supports(Container.ElementBySignature['DATA'] , IwbSubRecord, DataSubRec) then begin
- // expand itU8 flags to itU16
- if DataSubRec.SubRecordHeaderSize = 1 then begin
- Flags := PByte(DataSubRec.DataBasePtr)^;
- DataSubRec.SetToDefault;
- DataSubRec.NativeValue := Flags;
- end;
- // 'Default' water height for exterior cells if not set (so water height will be taken from WRLD by game)
- if (not Container.ElementExists['XCLW']) and ((Integer(DataSubRec.NativeValue) and $02) <> 0) then begin
- Container.Add('XCLW', True);
- Container.ElementEditValues['XCLW'] := 'Default';
- end;
- end;
-
- // Min (-0 as in CK) water height is set to 0 when saving in CK
- if Container.ElementEditValues['XCLW'] = 'Min' then
- Container.ElementEditValues['XCLW'] := '0.0';
-
-// if Supports(Container.ElementBySignature[XCLR], IwbContainerElementRef, Container2) then begin
-// for i := Pred(Container2.ElementCount) downto 0 do
-// if not Supports(Container2.Elements[i].LinksTo, IwbMainRecord, MainRecord) or (MainRecord.Signature <> 'REGN') then
-// Container2.RemoveElement(i);
-// if Container2.ElementCount < 1 then
-// Container2.Remove;
-// end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMESGAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- IsMessageBox : Boolean;
- HasTimeDelay : Boolean;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- IsMessageBox := (Integer(Container.ElementNativeValues['DNAM']) and 1) = 1;
- HasTimeDelay := Container.ElementExists['TNAM'];
-
- if IsMessageBox = HasTimeDelay then
- if IsMessageBox then
- Container.RemoveElement('TNAM')
- else begin
- if not Container.ElementExists['DNAM'] then
- Container.Add('DNAM', True);
- Container.ElementNativeValues['DNAM'] := Integer(Container.ElementNativeValues['DNAM']) or 1;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbLIGHAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['FNAM'] then begin
- Container.Add('FNAM', True);
- Container.ElementNativeValues['FNAM'] := 1.0;
- end;
-
- if Container.ElementExists['DATA'] then begin
- if SameValue(Container.ElementNativeValues['DATA\Falloff Exponent'], 0.0) then
- Container.ElementNativeValues['DATA\Falloff Exponent'] := 1.0;
- if SameValue(Container.ElementNativeValues['DATA\FOV'], 0.0) then
- Container.ElementNativeValues['DATA\FOV'] := 90.0;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbEFITAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- Element : IwbElement;
- ActorValue: Variant;
- MainRecord: IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- MainRecord := Container.ContainingMainRecord;
- if not Assigned(MainRecord) or MainRecord.IsDeleted then
- Exit;
-
- Element := Container.ElementByPath['..\EFID'];
- if not Assigned(Element) then
- Exit;
- if not Supports(Element.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
- if MainRecord.Signature <> 'MGEF' then
- Exit;
- ActorValue := MainRecord.ElementNativeValues['DATA - Data\Actor Value'];
- if VarIsNull(ActorValue) or VarIsClear(ActorValue) then
- Exit;
- if VarCompareValue(ActorValue, Container.ElementNativeValues['Actor Value']) <> vrEqual then
- Container.ElementNativeValues['Actor Value'] := ActorValue;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbRPLDAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainer;
- a, b: Single;
- NeedsFlip: Boolean;
-begin
- if wbBeginInternalEdit then try
- if Supports(aElement, IwbContainer, Container) then begin
- NeedsFlip := False;
- if Container.ElementCount > 1 then begin
- a := StrToFloat((Container.Elements[0] as IwbContainer).Elements[0].Value);
- b := StrToFloat((Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[0].Value);
- case CompareValue(a, b) of
- EqualsValue: begin
- a := StrToFloat((Container.Elements[0] as IwbContainer).Elements[1].Value);
- b := StrToFloat((Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[1].Value);
- NeedsFlip := CompareValue(a, b) = GreaterThanValue;
- end;
- GreaterThanValue:
- NeedsFlip := True;
- end;
- end;
- if NeedsFlip then
- Container.ReverseElements;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbLLEAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- Entries : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- i : integer;
-begin
- if wbBeginInternalEdit then try
- // zero entries' Chance None if Form Version < 69
- if wbFormVerDecider(nil, nil, aElement, 69) = 1 then
- Exit;
-
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Supports(MainRecord.ElementByName['Leveled List Entries'], IwbContainerElementRef, Entries) then
- Exit;
-
-
- for i := 0 to Pred(Entries.ElementCount) do begin
- if not Supports(Entries.Elements[i], IwbContainerElementRef, Container) then
- Exit;
- Container.ElementNativeValues['LVLO\Chance None'] := 0;
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbPubPackCNAMDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rANAM: IwbRecord;
- ctype: string;
-begin
- Result := 0;
- rANAM := aElement.Container.RecordBySignature[ANAM];
- if Assigned(rANAM) then begin
- ctype := rANAM.NativeValue;
- if ctype = 'Bool' then Result := 1 else
- if ctype = 'Int' then Result := 2 else
- if ctype = 'Float' then Result := 3 else
- if ctype = 'ObjectList' then Result := 3;
- end;
-end;
-
-function wbTypeDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- Element : IwbElement;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Element := Container.ElementByName['Type'];
- if Assigned(Element) then
- Result := Element.NativeValue
- else if wbMoreInfoForDecider then
- wbProgressCallback('"'+Container.Name+'" does not contain an element named Type');
-end;
-
-procedure wbCNTOsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('COCT - Count', aElement);
-end;
-
-procedure wbContainerAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerAfterSet('COCT - Count', 'Items', aElement);
- wbCounterContainerAfterSet('KSIZ - Keyword Count', 'KWDA - Keywords', aElement);
-end;
-
-procedure wbSPLOsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('SPCT - Count', aElement);
-end;
-
-procedure wbKWDAsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('KSIZ - Keyword Count', aElement);
-end;
-
-procedure wbNPCAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerAfterSet('COCT - Count', 'Items', aElement);
- wbCounterContainerAfterSet('SPCT - Count', 'Actor Effects', aElement);
- wbCounterContainerAfterSet('LLCT - Count', 'Leveled List Entries', aElement);
- wbCounterContainerAfterSet('KSIZ - Keyword Count', 'KWDA - Keywords', aElement);
- wbCounterContainerAfterSet('PRKZ - Perk Count', 'Perks', aElement);
-end;
-
-procedure wbRaceAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerAfterSet('SPCT - Count', 'Actor Effects', aElement);
- wbCounterContainerAfterSet('KSIZ - Keyword Count', 'KWDA - Keywords', aElement);
-end;
-
-procedure wbKeywordsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerAfterSet('KSIZ - Keyword Count', 'KWDA - Keywords', aElement);
-end;
-
-procedure wbLVLOsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('LLCT - Count', aElement);
-end;
-
-procedure wbLLEAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerAfterSet('LLCT - Count', 'Leveled List Entries', aElement);
-end;
-
-procedure wbPRKRsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('PRKZ - Perk Count', aElement);
-end;
-
-procedure wbSMQNQuestsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('QNAM - Quest Count', aElement);
-end;
-
-procedure wbCTDAsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('CITC - Condition Count', aElement);
-end;
-
-procedure wbConditionsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerAfterSet('CITC - Condition Count', 'Conditions', aElement);
-end;
-
-procedure wbCounterEffectsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- // if it is really possible to have both counter effects and multiple data, this is going to be tricky.
- wbCounterByPathAfterSet('Magic Effect Data\DATA - Data\Counter effect count', aElement);
-end;
-
-procedure wbMGEFAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbKeywordsAfterSet(aElement, aOldValue, aNewValue);
- wbCounterContainerByPathAfterSet('Magic Effect Data\DATA - Data\Counter effect count', 'Counter Effects', aElement);
-end;
-
-procedure wbTERMDisplayItemsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('BSIZ - Count', aElement);
-end;
-
-procedure wbTERMMenuItemsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('ISIZ - Count', aElement);
-end;
-
-procedure wbSNDRRatesOfFireAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('ITMC - Count', aElement);
-end;
-
-procedure wbNPCActorSoundsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('CS2H - Count', aElement);
-end;
-
-procedure wbMorphPresetsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('MPPC - Count', aElement);
-end;
-
-procedure wbLENSAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('LFSP - Count', aElement);
-end;
-
-
-procedure wbIDLAsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Element : IwbElement;
- Container : IwbContainer;
- SelfAsContainer : IwbContainer;
-begin
- if wbBeginInternalEdit then try
- if not wbCounterAfterSet('IDLC - Animation Count', aElement) then
- if Supports(aElement.Container, IwbContainer, Container) then begin
- Element := Container.ElementByPath['IDLC'];
- if Assigned(Element) and Supports(aElement, IwbContainer, SelfAsContainer) and
- (Element.GetNativeValue<>SelfAsContainer.GetElementCount) then
- Element.SetNativeValue(SelfAsContainer.GetElementCount);
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbAnimationsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Element : IwbElement;
- Elems : IwbElement;
- Container : IwbContainer;
-begin
- if wbBeginInternalEdit then try
- if not wbCounterContainerAfterSet('IDLC - Animation Count', 'IDLA - Animations', aElement) then
- if Supports(aElement, IwbContainer, Container) then begin
- Element := Container.ElementByPath['IDLC\Animation Count'];
- Elems := Container.ElementByName['IDLA - Animations'];
- if Assigned(Element) and not Assigned(Elems) then
- if Element.GetNativeValue<>0 then
- Element.SetNativeValue(0);
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbOffsetDataColsCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbDataContainer;
- Element : IwbElement;
- fResult : Extended;
-begin
- Result := 0;
-
- if Supports(aElement.Container, IwbDataContainer, Container) and (Container.Name = 'OFST - Offset Data') and
- Supports(Container.Container, IwbDataContainer, Container) then begin
- Element := Container.ElementByPath['Object Bounds\NAM0 - Min\X'];
- if Assigned(Element) then begin
- fResult := Element.NativeValue;
- if fResult >= MaxInt then
- Result := 0
- else
- Result := Trunc(fResult);
- Element := Container.ElementByPath['Object Bounds\NAM9 - Max\X'];
- if Assigned(Element) then begin
- fResult := Element.NativeValue;
- if fResult >= MaxInt then
- Result := 1
- else
- Result := Trunc(fResult) - Result + 1;
- end;
- end;
- end;
-end;
-
-procedure wbOMODpropertyAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('Property Count', aElement);
-end;
-
-procedure wbOMODincludeAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('Include Count', aElement);
-end;
-
-procedure wbOMODdataAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterContainerAfterSet('Property Count', 'Properties', aElement);
- wbCounterContainerAfterSet('Include Count', 'Includes', aElement);
-end;
-
-function wbOMODDataIncludeCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
-begin
- if Supports(aElement.Container, IwbContainer, Container) then
- Result := Container.ElementNativeValues['Include Count']
- else
- Result := 0;
-end;
-
-function wbOMODDataPropertyCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
-begin
- if Supports(aElement.Container, IwbContainer, Container) then
- Result := Container.ElementNativeValues['Property Count']
- else
- Result := 0;
-end;
-
-function GetObjectModPropertyEnum(const aElement: IwbElement): IwbEnumDef;
-var
- MainRecord: IwbMainRecord;
- rDATA: IwbContainer;
- Signature: TwbSignature;
- FormType: Cardinal;
-begin
- Result := nil;
-
- MainRecord := aElement.ContainingMainRecord;
-
- if not Assigned(MainRecord) then
- Exit;
-
- Signature := MainRecord.Signature;
-
- if Signature = OMOD then
- if Supports(MainRecord.ElementBySignature['DATA'], IwbContainer, rDATA) then begin
- FormType := rDATA.ElementNativeValues['Form Type'];
- Signature := PwbSignature(@FormType)^;
- end;
-
- if Signature = ARMO then
- Result := wbArmorPropertyEnum
- else if Signature = WEAP then
- Result := wbWeaponPropertyEnum
- else if Signature = NPC_ then
- Result := wbActorPropertyEnum;
-end;
-
-function wbObjectModPropertyToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- PropEnum: IwbEnumDef;
-begin
- Result := '';
-
- PropEnum := GetObjectModPropertyEnum(aElement);
-
- if not Assigned(PropEnum) then
- case aType of
- ctToStr, ctToSortKey, ctToEditValue: Result := IntToStr(aInt);
- end
- else
- case aType of
- ctToStr: Result := PropEnum.ToString(aInt, aElement);
- ctToSortKey: Result := PropEnum.ToSortKey(aInt, aElement);
- ctCheck: Result := PropEnum.Check(aInt, aElement);
- ctToEditValue: Result := PropEnum.ToEditValue(aInt, aElement);
- ctEditType: Result := 'ComboBox';
- ctEditInfo: Result := PropEnum.EditInfo[aInt, aElement];
- end;
-end;
-
-function wbObjectModPropertyToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- PropEnum: IwbEnumDef;
-begin
- PropEnum := GetObjectModPropertyEnum(aElement);
-
- if not Assigned(PropEnum) then
- Result := StrToIntDef(aString, 0)
- else
- Result := PropEnum.FromEditValue(aString, aElement);
-end;
-
-function wbOMODDataFunctionTypeDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- ValueType : Integer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- ValueType := Container.ElementNativeValues['Value Type'];
-
- case ValueType of
- 0: Result := 0;
- 1: Result := 0;
- 2: Result := 1;
- 4: Result := 3;
- 5: Result := 2;
- 6: Result := 3;
- end;
-end;
-
-function wbOMODDataPropertyValue1Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- ValueType : Integer;
- PropName : string;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- ValueType := Container.ElementNativeValues['Value Type'];
- PropName := Container.ElementEditValues['Property'];
-
- case ValueType of
- 0: Result := 1;
- 1: Result := 2;
- 2: Result := 3;
- 4, 6: Result := 4;
- 5: begin
- if PropName = 'SoundLevel' then Result := 6 else
- if PropName = 'StaggerValue' then Result := 7 else
- if PropName = 'HitBehaviour' then Result := 8 else
- Result := 5;
- end;
- end;
-end;
-
-function wbOMODDataPropertyValue2Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- ValueType : Integer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- ValueType := Container.ElementNativeValues['Value Type'];
-
- case ValueType of
- 0: Result := 1;
- 1: Result := 2;
- 2: Result := 3;
- 4: Result := 1;
- 6: Result := 2;
- end;
-end;
-
-procedure wbOBTSCombinationsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('OBTE - Count', aElement);
-end;
-
-procedure wbINNRAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('VNAM - Count', aElement);
-end;
-
-function wbCELLCombinedMeshesCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
-begin
- if Supports(aElement.Container, IwbContainer, Container) then
- Result := Container.ElementNativeValues['Meshes Count']
- else
- Result := 0;
-end;
-
-procedure wbCELLCombinedMeshesAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-begin
- wbCounterAfterSet('Meshes Count', aElement);
-end;
-
-function wbCELLCombinedRefsCounter(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Container : IwbContainer;
-begin
- // the counter is double of entries (each member of struct is counted)
- if Supports(aElement.Container, IwbContainer, Container) then
- Result := Container.ElementNativeValues['References Count'] div 2
- else
- Result := 0;
-end;
-
-procedure wbCELLCombinedRefsAfterSet(const aElement: IwbElement; const aOldValue, aNewValue: Variant);
-var
- Element : IwbElement;
- Container : IwbContainer;
- SelfAsContainer : IwbContainer;
-begin
- // the counter is double of entries (each member of struct is counted)
- if wbBeginInternalEdit then try
- if Supports(aElement.Container, IwbContainer, Container) and
- Supports(aElement, IwbContainer, SelfAsContainer) then begin
- Element := Container.ElementByName['References Count'];
- if Assigned(Element) then try
- if (Element.GetNativeValue <> (SelfAsContainer.GetElementCount * 2)) then
- Element.SetNativeValue(SelfAsContainer.GetElementCount * 2);
- except end;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-function wbCombinedMeshIDToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Cell: IwbMainRecord;
-begin
- Result := IntToHex(aInt, 8);
-
- Cell := aElement.ContainingMainRecord;
- if not Assigned(Cell) then
- Exit;
-
- case aType of
- ctToStr, ctToEditValue: begin
- Result := 'Precombined\' + IntToHex(Cell.FormID and $00FFFFFF, 8) + '_' + Result + '_OC.nif';
- end;
- ctCheck: Result := '';
- end;
-end;
-
-function wbCombinedMeshIDToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- s: string;
- i: Integer;
-begin
- Result := 0;
- // hex number between first and second underscope
- i := Pos('_', aString);
- if i <> 0 then begin
- s := Copy(aString, i + 1, Length(aString) - i);
- i := Pos('_', s);
- if i <> 0 then begin
- s := Copy(s, 1, i - 1);
- if Length(s) = 8 then try
- Result := StrToInt64('$' + s);
- except end;
- end;
- end;
-end;
-
-function wbREFRRecordFlagsDecider(const aElement: IwbElement): Integer;
-var
- MainRecord : IwbMainRecord;
- NameRec : IwbElement;
-begin
- Result := 0;
-
- if not Assigned(aElement) then
- Exit;
-
- MainRecord := aElement.ContainingMainRecord;
-
- if not Assigned(MainRecord) then
- Exit;
-
- NameRec := MainRecord.ElementBySignature[NAME];
- if not Assigned(NameRec) then
- Exit;
-
- if not Supports(NameRec.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- if (MainRecord.Signature = ACTI) or
- (MainRecord.Signature = STAT) or
- (MainRecord.Signature = SCOL) or
- (MainRecord.Signature = TREE)
- then
- Result := 1
- else if
- (MainRecord.Signature = CONT) or
- (MainRecord.Signature = TERM)
- then
- Result := 2
- else if MainRecord.Signature = DOOR then
- Result := 3
- else if MainRecord.Signature = LIGH then
- Result := 4
- else if MainRecord.Signature = MSTT then
- Result := 5
- else if MainRecord.Signature = ADDN then
- Result := 6
- else if
- (MainRecord.Signature = SCRL) or
- (MainRecord.Signature = AMMO) or
- (MainRecord.Signature = ARMO) or
- (MainRecord.Signature = BOOK) or
- (MainRecord.Signature = INGR) or
- (MainRecord.Signature = KEYM) or
- (MainRecord.Signature = MISC) or
- (MainRecord.Signature = FURN) or
- (MainRecord.Signature = WEAP) or
- (MainRecord.Signature = ALCH)
- then
- Result := 7;
-end;
-
-function wbByteColors(const aName: string = 'Color'): IwbStructDef;
-begin
- Result := wbStruct(aName, [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]);
-end;
-
-function wbFloatColors(const aName: string = 'Color'): IwbStructDef;
-begin
- Result := wbStruct(aName, [
- wbFloat('Red', cpNormal, True, 255, 0),
- wbFloat('Green', cpNormal, True, 255, 0),
- wbFloat('Blue', cpNormal, True, 255, 0)
- ]);
-end;
-
-function wbWeatherColors(const aName: string): IwbStructDef;
-begin
- Result := wbStruct(aName, [
- wbByteColors('Sunrise'),
- wbByteColors('Day'),
- wbByteColors('Sunset'),
- wbByteColors('Night'),
- wbByteColors('EarlySunrise'),
- wbByteColors('LateSunrise'),
- wbByteColors('EarlySunset'),
- wbByteColors('LateSunset')
- ], cpNormal, True, nil, 4);
-end;
-
-function wbAmbientColors(const aSignature: TwbSignature; const aName: string = 'Directional Ambient Lighting Colors'): IwbSubRecordDef; overload;
-begin
- Result := wbStruct(aSignature, aName, [
- wbStruct('Directional', [
- wbByteColors('X+'),
- wbByteColors('X-'),
- wbByteColors('Y+'),
- wbByteColors('Y-'),
- wbByteColors('Z+'),
- wbByteColors('Z-')
- ]),
- wbByteColors('Specular'),
- wbFloat('Scale')
- ])
-end;
-
-function wbAmbientColors(const aName: string = 'Directional Ambient Lighting Colors'): IwbStructDef; overload;
-begin
- Result := wbStruct(aName, [
- wbStruct('Directional', [
- wbByteColors('X+'),
- wbByteColors('X-'),
- wbByteColors('Y+'),
- wbByteColors('Y-'),
- wbByteColors('Z+'),
- wbByteColors('Z-')
- ]),
- wbByteColors('Specular'),
- wbFloat('Scale', cpIgnore)
- ]);
-end;
-
-function wbIntToHexStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- case aType of
- ctToStr, ctToSortKey, ctToEditValue: Result := IntToHex(aInt, 8);
- else
- Result := '';
- end;
-end;
-
-function wbStrToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- s: string;
- i: integer;
-begin
- // ignore anything after space or :
- i := Pos(' ', aString);
- if i = 0 then
- i := Pos(':', aString);
-
- if i <> 0 then
- s := Copy(aString, 1, i - 1)
- else
- s := aString;
-
- try
- Result := StrToInt64(s)
- except
- Result := 0;
- end;
-end;
-
-function wbHexStrToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- s: string;
- i: integer;
-begin
- // ignore anything after space or :
- i := Pos(' ', aString);
- if i = 0 then
- i := Pos(':', aString);
-
- if i <> 0 then
- s := Copy(aString, 1, i - 1)
- else
- s := aString;
-
- try
- Result := StrToInt64('$' + s)
- except
- Result := 0;
- end;
-end;
-
-type
- TFaceGenFeature = record
- RaceID : String;
- Female : Boolean;
- Entries : array of record
- Index: Cardinal;
- Name : String;
- end;
- end;
- PFaceGenFeature = ^TFaceGenFeature;
-
-var
- // cache of race specific face morphs
- FaceMorphs: array of TFaceGenFeature;
- // cache of race specific tint layers
- TintLayers: array of TFaceGenFeature;
- // cache of race specific morph groups/presets and values
- MorphValues: array of TFaceGenFeature;
-
-
-function wbMorphValueToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-
- function GetCached(const aRaceID: string; aFemale: boolean): PFaceGenFeature;
- var
- i: integer;
- begin
- Result := nil;
- if Length(MorphValues) <> 0 then
- for i := Low(MorphValues) to High(MorphValues) do
- if (MorphValues[i].Female = aFemale) and (MorphValues[i].RaceID = aRaceID) then begin
- Result := @MorphValues[i];
- Break;
- end;
- end;
-
-var
- Actor, Race : IwbMainRecord;
- Element : IwbElement;
- Container, Entry : IwbContainerElementRef;
- Container2, Entry2: IwbContainerElementRef;
- Female, Female2 : Boolean;
- RaceID, EntryName : string;
- Cache : PFaceGenFeature;
- Index : Cardinal;
- i, j, k : integer;
- slList : TStringList;
-begin
- // defaults
- case aType of
- ctToStr, ctToEditValue: Result := IntToHex64(aInt, 8);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- Actor := aElement.ContainingMainRecord;
- if not Assigned(Actor) then
- Exit;
-
- Female := Actor.ElementEditValues['ACBS\Flags\Female'] = '1';
-
- Element := Actor.ElementBySignature['RNAM'];
- if not Assigned(Element) then
- Exit;
-
- Element := Element.LinksTo;
- if not Supports(Element, IwbMainRecord, Race) then
- Exit;
-
- Race := Race.WinningOverride;
- RaceID := Race.EditorID;
-
- Cache := GetCached(RaceID, Female);
-
- // cache not found, fill with data from RACE
- if not Assigned(Cache) then begin
-
- slList := TStringList.Create;
-
- for i := 0 to 1 do begin
-
- Female2 := i = 1;
- SetLength(MorphValues, Succ(Length(MorphValues)));
- Cache := @MorphValues[Pred(Length(MorphValues))];
- Cache.RaceID := RaceID;
- Cache.Female := Female2;
-
- slList.Clear;
-
- if not Female2 then
- Element := Race.ElementByName['Male Morph Groups']
- else
- Element := Race.ElementByName['Female Morph Groups'];
-
- // iterate over morph groups
- if Supports(Element, IwbContainerElementRef, Container) then
- for j := 0 to Pred(Container.ElementCount) do begin
- if not Supports(Container.Elements[j], IwbContainerElementRef, Entry) then
- Break;
-
- // group name
- EntryName := Entry.ElementEditValues['MPGN'];
-
- // iterate over morph group presets
- if not Supports(Entry.ElementByName['Morph Presets'], IwbContainerElementRef, Container2) then
- Continue;
-
- for k := 0 to Pred(Container2.ElementCount) do
- if Supports(Container2.Elements[k], IwbContainerElementRef, Entry2) then
- slList.AddObject(
- EntryName + ' - ' + Entry2.ElementEditValues['MPPN'],
- TObject(Cardinal(Entry2.ElementNativeValues['MPPI']))
- );
- end;
-
- // append morph values, same for both sexes
- if Supports(Race.ElementByName['Morph Values'], IwbContainerElementRef, Container) then
- for j := 0 to Pred(Container.ElementCount) do
- if Supports(Container.Elements[j], IwbContainerElementRef, Entry) then
- slList.AddObject(
- Entry.ElementEditValues['MSM0'] + '/' + Entry.ElementEditValues['MSM1'],
- TObject(Cardinal(Entry.ElementNativeValues['MSID']))
- );
-
- SetLength(Cache.Entries, slList.Count);
-
- for j := 0 to Pred(slList.Count) do begin
- Cache.Entries[j].Index := Cardinal(slList.Objects[j]);
- Cache.Entries[j].Name := slList[j];
- end;
-
- end;
-
- slList.Free;
-
- Cache := GetCached(RaceID, Female);
- end;
-
- if not Assigned(Cache) then
- Exit;
-
- EntryName := '';
- Index := Cardinal(aInt);
- if Length(Cache.Entries) <> 0 then
- for i := Low(Cache.Entries) to High(Cache.Entries) do
- if Cache.Entries[i].Index = Index then begin
- EntryName := Cache.Entries[i].Name;
- Break;
- end;
-
- case aType of
- ctToStr: begin
- if EntryName <> '' then
- Result := IntToHex64(aInt, 8) + ' ' + EntryName
- else
- Result := IntToHex64(aInt, 8) + ' ';
- end;
- ctCheck: begin
- if EntryName = '' then
- Result := ''
- else
- Result := '';
- end;
- ctEditType: Result := 'ComboBox';
- ctEditInfo: begin
- Result := '';
- if Length(Cache.Entries) <> 0 then
- for i := Low(Cache.Entries) to High(Cache.Entries) do begin
- if Result <> '' then Result := Result + ',';
- Result := Result + '"' + IntToHex(Cache.Entries[i].Index, 8) + ' ' + Cache.Entries[i].Name + '"';
- end;
- end;
- end;
-end;
-
-
-
-function wbFaceMorphToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-
- function GetCached(const aRaceID: string; aFemale: boolean): PFaceGenFeature;
- var
- i: integer;
- begin
- Result := nil;
- if Length(FaceMorphs) <> 0 then
- for i := Low(FaceMorphs) to High(FaceMorphs) do
- if (FaceMorphs[i].Female = aFemale) and (FaceMorphs[i].RaceID = aRaceID) then begin
- Result := @FaceMorphs[i];
- Break;
- end;
- end;
-
-var
- Actor, Race : IwbMainRecord;
- Element : IwbElement;
- Container, Entry : IwbContainerElementRef;
- Female, Female2 : Boolean;
- RaceID, EntryName : string;
- Cache : PFaceGenFeature;
- Index : Cardinal;
- i, j : integer;
-begin
- // defaults
- case aType of
- ctToStr, ctToEditValue: Result := IntToHex64(aInt, 8);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- Actor := aElement.ContainingMainRecord;
- if not Assigned(Actor) then
- Exit;
-
- Female := Actor.ElementEditValues['ACBS\Flags\Female'] = '1';
-
- Element := Actor.ElementBySignature['RNAM'];
- if not Assigned(Element) then
- Exit;
-
- Element := Element.LinksTo;
- if not Supports(Element, IwbMainRecord, Race) then
- Exit;
-
- Race := Race.WinningOverride;
- RaceID := Race.EditorID;
-
- Cache := GetCached(RaceID, Female);
-
- // cache not found, fill with data from RACE
- if not Assigned(Cache) then begin
-
- for i := 0 to 1 do begin
-
- Female2 := i = 1;
- SetLength(FaceMorphs, Succ(Length(FaceMorphs)));
- Cache := @FaceMorphs[Pred(Length(FaceMorphs))];
- Cache.RaceID := RaceID;
- Cache.Female := Female2;
-
- if not Female2 then
- Element := Race.ElementByName['Male Face Morphs']
- else
- Element := Race.ElementByName['Female Face Morphs'];
-
- if not Supports(Element, IwbContainerElementRef, Container) then
- Continue;
-
- SetLength(Cache.Entries, Container.ElementCount);
-
- for j := 0 to Pred(Container.ElementCount) do begin
- if not Supports(Container.Elements[j], IwbContainerElementRef, Entry) then
- Break;
- Cache.Entries[j].Index := Entry.ElementNativeValues['FMRI'];
- Cache.Entries[j].Name := Entry.ElementEditValues['FMRN'];
- end;
- end;
-
- Cache := GetCached(RaceID, Female);
- end;
-
- if not Assigned(Cache) then
- Exit;
-
- EntryName := '';
- Index := Cardinal(aInt);
- if Length(Cache.Entries) <> 0 then
- for i := Low(Cache.Entries) to High(Cache.Entries) do
- if Cache.Entries[i].Index = Index then begin
- EntryName := Cache.Entries[i].Name;
- Break;
- end;
-
- case aType of
- ctToStr: begin
- if EntryName <> '' then
- Result := IntToHex64(aInt, 8) + ' ' + EntryName
- else
- Result := IntToHex64(aInt, 8) + ' ';
- end;
- ctCheck: begin
- if EntryName = '' then
- Result := ''
- else
- Result := '';
- end;
- ctEditType: Result := 'ComboBox';
- ctEditInfo: begin
- Result := '';
- if Length(Cache.Entries) <> 0 then
- for i := Low(Cache.Entries) to High(Cache.Entries) do begin
- if Result <> '' then Result := Result + ',';
- Result := Result + '"' + IntToHex(Cache.Entries[i].Index, 8) + ' ' + Cache.Entries[i].Name + '"';
- end;
- end;
- end;
-end;
-
-function wbTintLayerToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-
- function GetCached(const aRaceID: string; aFemale: boolean): PFaceGenFeature;
- var
- i: integer;
- begin
- Result := nil;
- if Length(TintLayers) <> 0 then
- for i := Low(TintLayers) to High(TintLayers) do
- if (TintLayers[i].Female = aFemale) and (TintLayers[i].RaceID = aRaceID) then begin
- Result := @TintLayers[i];
- Break;
- end;
- end;
-
-var
- Actor, Race : IwbMainRecord;
- Element : IwbElement;
- Container, Entry : IwbContainerElementRef;
- Container2, Entry2: IwbContainerElementRef;
- Female, Female2 : Boolean;
- RaceID, EntryName : string;
- Cache : PFaceGenFeature;
- Index : Cardinal;
- i, j, k : integer;
- slList : TStringList;
-begin
- // defaults
- case aType of
- ctToStr, ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- Actor := aElement.ContainingMainRecord;
- if not Assigned(Actor) then
- Exit;
-
- Female := Actor.ElementEditValues['ACBS\Flags\Female'] = '1';
-
- Element := Actor.ElementBySignature['RNAM'];
- if not Assigned(Element) then
- Exit;
-
- Element := Element.LinksTo;
- if not Supports(Element, IwbMainRecord, Race) then
- Exit;
-
- Race := Race.WinningOverride;
- RaceID := Race.EditorID;
-
- Cache := GetCached(RaceID, Female);
-
- // cache not found, fill with data from RACE
- if not Assigned(Cache) then begin
-
- slList := TStringList.Create;
-
- for i := 0 to 1 do begin
-
- Female2 := i = 1;
- SetLength(TintLayers, Succ(Length(TintLayers)));
- Cache := @TintLayers[Pred(Length(TintLayers))];
- Cache.RaceID := RaceID;
- Cache.Female := Female2;
-
- if not Female2 then
- Element := Race.ElementByName['Male Tint Layers']
- else
- Element := Race.ElementByName['Female Tint Layers'];
-
- if not Supports(Element, IwbContainerElementRef, Container) then
- Continue;
-
- slList.Clear;
-
- // iterate over tint groups
- for j := 0 to Pred(Container.ElementCount) do
- if Supports(Container.Elements[j], IwbContainerElementRef, Entry) then
- // iterate over tint group options
- if Supports(Entry.ElementByName['Options'], IwbContainerElementRef, Container2) then
- for k := 0 to Pred(Container2.ElementCount) do
- if Supports(Container2.Elements[k], IwbContainerElementRef, Entry2) then
- slList.AddObject(
- Entry.ElementEditValues['TTGP'] + ' - ' + Entry2.ElementEditValues['TTGP'],
- TObject(Cardinal(Entry2.ElementNativeValues['TETI\Index']))
- );
-
- SetLength(Cache.Entries, slList.Count);
-
- for j := 0 to Pred(slList.Count) do begin
- Cache.Entries[j].Index := Cardinal(slList.Objects[j]);
- Cache.Entries[j].Name := slList[j];
- end;
- end;
-
- slList.Free;
-
- Cache := GetCached(RaceID, Female);
- end;
-
- if not Assigned(Cache) then
- Exit;
-
- EntryName := '';
- Index := Cardinal(aInt);
- if Length(Cache.Entries) <> 0 then
- for i := Low(Cache.Entries) to High(Cache.Entries) do
- if Cache.Entries[i].Index = Index then begin
- EntryName := Cache.Entries[i].Name;
- Break;
- end;
-
- case aType of
- ctToStr: begin
- if EntryName <> '' then
- Result := IntToStr(aInt) + ' ' + EntryName
- else
- Result := IntToStr(aInt) + ' ';
- end;
- ctCheck: begin
- if EntryName = '' then
- Result := ''
- else
- Result := '';
- end;
- ctEditType: Result := 'ComboBox';
- ctEditInfo: begin
- Result := '';
- if Length(Cache.Entries) <> 0 then
- for i := Low(Cache.Entries) to High(Cache.Entries) do begin
- if Result <> '' then Result := Result + ',';
- Result := Result + '"' + IntToStr(Cache.Entries[i].Index) + ' ' + Cache.Entries[i].Name + '"';
- end;
- end;
- end;
-end;
-
-
-var
- wbRecordFlagsFlags : IwbFlagsDef;
-
-procedure DefineFO4a;
-
-begin
- wbNull := wbByteArray('Unused', -255);
- wbBoolEnum := wbEnum(['False', 'True']);
- wbLLCT := wbInteger(LLCT, 'Count', itU8, nil, cpBenign);
- wbCITC := wbInteger(CITC, 'Condition Count', itU32, nil, cpBenign);
- wbLVLD := wbInteger(LVLD, 'Chance None', itU8, nil, cpNormal, True);
-
- wbSPCT := wbInteger(SPCT, 'Count', itU32, nil, cpBenign);
- wbSPLO := wbFormIDCk(SPLO, 'Actor Effect', [SPEL, LVSP]);
- wbSPLOs := wbRArrayS('Actor Effects', wbSPLO, cpNormal, False, nil, wbSPLOsAfterSet, nil{wbActorTemplateUseActorEffectList});
-
- wbKSIZ := wbInteger(KSIZ, 'Keyword Count', itU32, nil, cpBenign);
- wbKWDAs := wbArrayS(KWDA, 'Keywords', wbFormIDCk('Keyword', [KYWD, NULL]), 0, cpNormal, False, nil, wbKWDAsAfterSet);
- wbReqKWDAs := wbArrayS(KWDA, 'Keywords', wbFormIDCk('Keyword', [KYWD, NULL]), 0, cpNormal, True, nil, wbKWDAsAfterSet);
-
- wbKeywords := wbRStruct('Keywords', [
- wbKSIZ,
- wbReqKWDAs
- ], []);
-
- //wbActorValue := wbInteger('Actor Value', itS32, wbActorValueEnum);
- wbActorValue := wbFormIDCkNoReach('Actor Value', [AVIF, NULL]);
-
- wbCOED := wbStructExSK(COED, [2], [0, 1], 'Extra Data', [
- {00} wbFormIDCkNoReach('Owner', [NPC_, FACT, NULL]),
- {04} wbUnion('Global Variable / Required Rank', wbCOEDOwnerDecider, [
- wbByteArray('Unused', 4, cpIgnore),
- wbFormIDCk('Global Variable', [GLOB, NULL]),
- wbInteger('Required Rank', itS32)
- ]),
- {08} wbFloat('Item Condition')
- ]);
-
- wbCNTO :=
- wbRStructExSK([0], [1], 'Item', [
- wbStructExSK(CNTO, [0], [1], 'Item', [
- wbFormIDCk('Item', sigBaseObjects),
- wbInteger('Count', itS32)
- ]),
- wbCOED
- ], []);
- wbCOCT := wbInteger(COCT, 'Count', itU32, nil, cpBenign);
- wbCNTOs := wbRArrayS('Items', wbCNTO, cpNormal, False, nil, wbCNTOsAfterSet);
-
- {>>> When NAME is user defined these will be incorrect <<<}
- wbBipedObjectEnum := wbEnum([
- '30 - Hair Top',
- '31 - Hair Long',
- '32 - FaceGen Head',
- '33 - BODY',
- '34 - L Hand',
- '35 - R Hand',
- '36 - [U] Torso',
- '37 - [U] L Arm',
- '38 - [U] R Arm',
- '39 - [U] L Leg',
- '40 - [U] R Leg',
- '41 - [A] Torso',
- '42 - [A] L Arm',
- '43 - [A] R Arm',
- '44 - [A] L Leg',
- '45 - [A] R Leg',
- '46 - Headband',
- '47 - Eyes',
- '48 - Beard',
- '49 - Mouth',
- '50 - Neck',
- '51 - Ring',
- '52 - Scalp',
- '53 - Decapitation',
- '54 - Unnamed',
- '55 - Unnamed',
- '56 - Unnamed',
- '57 - Unnamed',
- '58 - Unnamed',
- '59 - Shield',
- '60 - Pipboy',
- '61 - FX'
- ], [
- -1, 'None'
- ]);
-
- wbBipedObjectFlags := wbFlags([
- {0x00000001} '30 - Hair Top',
- {0x00000002} '31 - Hair Long',
- {0x00000004} '32 - FaceGen Head',
- {0x00000008} '33 - BODY',
- {0x00000010} '34 - L Hand',
- {0x00000020} '35 - R Hand',
- {0x00000040} '36 - [U] Torso',
- {0x00000080} '37 - [U] L Arm',
- {0x00000100} '38 - [U] R Arm',
- {0x00000200} '39 - [U] L Leg',
- {0x00000400} '40 - [U] R Leg',
- {0x00000800} '41 - [A] Torso',
- {0x00001000} '42 - [A] L Arm',
- {0x00002000} '43 - [A] R Arm',
- {0x00004000} '44 - [A] L Leg',
- {0x00008000} '45 - [A] R Leg',
- {0x00010000} '46 - Headband',
- {0x00020000} '47 - Eyes',
- {0x00040000} '48 - Beard',
- {0x00080000} '49 - Mouth',
- {0x00100000} '50 - Neck',
- {0x00200000} '51 - Ring',
- {0x00400000} '52 - Scalp',
- {0x00800000} '53 - Decapitation',
- {0x01000000} '54 - Unnamed',
- {0x02000000} '55 - Unnamed',
- {0x04000000} '56 - Unnamed',
- {0x08000000} '57 - Unnamed',
- {0x10000000} '58 - Unnamed',
- {0x20000000} '59 - Shield',
- {0x40000000} '60 - Pipboy',
- {0x80000000} '61 - FX'
- ], True);
-
- wbFirstPersonFlagsU32 := wbInteger('First Person Flags', itU32, wbBipedObjectFlags);
-
- wbBOD2 := wbStruct(BOD2, 'Biped Body Template', [
- wbFirstPersonFlagsU32
- ], cpNormal, False);
-
- wbMDOB := wbFormID(MDOB, 'Menu Display Object', cpNormal, False);
- wbCNAM := wbStruct(CNAM, 'Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unknown', 1)
- ]);
-
- wbDODT := wbStruct(DODT, 'Decal Data', [
- wbFloat('Min Width'),
- wbFloat('Max Width'),
- wbFloat('Min Height'),
- wbFloat('Max Height'),
- wbFloat('Depth'),
- wbFloat('Shininess'),
- wbStruct('Parallax', [
- wbFloat('Scale'),
- wbInteger('Passes', itU8) {>>> This can't be higher than 30 <<<}
- ]),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'POM Shadows',
- {0x02} 'Alpha - Blending',
- {0x04} 'Alpha - Testing',
- {0x08} 'No Subtextures'
- ], True)),
- wbInteger('Alpha Threshold?', itU16),
- wbByteColors('Color')
- ]);
-
-// wbRecordFlagsFlags := wbFlags([
-// {>>> 0x00000000 ACTI: Collision Geometry (default) <<<}
-// {0x00000001}'ESM',
-// {0x00000002}'Unknown 2',
-// {>>> 0x00000004 ARMO: Not playable <<<}
-// {0x00000004}'NotPlayable',
-// {0x00000008}'Unknown 4',
-// {0x00000010}'Unknown 5',
-// {0x00000020}'Deleted',
-// {>>> 0x00000040 ACTI: Has Tree LOD <<<}
-// {>>> 0x00000040 REGN: Border Region <<<}
-// {>>> 0x00000040 STAT: Has Tree LOD <<<}
-// {>>> 0x00000040 REFR: Hidden From Local Map <<<}
-// {0x00000040}'Constant HiddenFromLocalMap BorderRegion HasTreeLOD',
-// {>>> 0x00000080 TES4: Localized <<<}
-// {>>> 0x00000080 PHZD: Turn Off Fire <<<}
-// {>>> 0x00000080 SHOU: Treat Spells as Powers <<<}
-// {>>> 0x00000080 STAT: Add-on LOD Object <<<}
-// {0x00000080}'Localized IsPerch AddOnLODObject TurnOffFire TreatSpellsAsPowers',
-// {>>> 0x00000100 ACTI: Must Update Anims <<<}
-// {>>> 0x00000100 REFR: Inaccessible <<<}
-// {>>> 0x00000100 REFR for LIGH: Doesn't light water <<<}
-// {0x00000100}'MustUpdateAnims Inaccessible DoesntLightWater',
-// {>>> 0x00000200 ACTI: Local Map - Turns Flag Off, therefore it is Hidden <<<}
-// {>>> 0x00000200 REFR: MotionBlurCastsShadows <<<}
-// {0x00000200}'HiddenFromLocalMap StartsDead MotionBlurCastsShadows',
-// {>>> 0x00000400 LSCR: Displays in Main Menu <<<}
-// {0x00000400}'PersistentReference QuestItem DisplaysInMainMenu',
-// {0x00000800}'InitiallyDisabled',
-// {0x00001000}'Ignored',
-// {0x00002000}'ActorChanged',
-// {0x00004000}'Unknown 15',
-// {>>> 0x00008000 STAT: Has Distant LOD <<<}
-// {0x00008000}'VWD',
-// {>>> 0x00010000 ACTI: Random Animation Start <<<}
-// {>>> 0x00010000 REFR light: Never fades <<<}
-// {0x00010000}'RandomAnimationStart NeverFades',
-// {>>> 0x00020000 ACTI: Dangerous <<<}
-// {>>> 0x00020000 REFR light: Doesn't light landscape <<<}
-// {>>> 0x00020000 SLGM: Can hold NPC's soul <<<}
-// {>>> 0x00020000 STAT: Use High-Detail LOD Texture <<<}
-// {0x00020000}'Dangerous OffLimits DoesntLightLandscape HighDetailLOD CanHoldNPC',
-// {0x00040000}'Compressed',
-// {>>> 0x00080000 STAT: Has Currents <<<}
-// {0x00080000}'CantWait HasCurrents',
-// {>>> 0x00100000 ACTI: Ignore Object Interaction <<<}
-// {0x00100000}'IgnoreObjectInteraction',
-// {0x00200000}'(Used in Memory Changed Form)',
-// {0x00400000}'Unknown 23',
-// {>>> 0x00800000 ACTI: Is Marker <<<}
-// {0x00800000}'IsMarker',
-// {0x01000000}'Unknown 25',
-// {>>> 0x02000000 ACTI: Obstacle <<<}
-// {>>> 0x02000000 REFR: No AI Acquire <<<}
-// {0x02000000}'Obstacle NoAIAcquire',
-// {>>> 0x04000000 ACTI: Filter <<<}
-// {0x04000000}'NavMeshFilter',
-// {>>> 0x08000000 ACTI: Bounding Box <<<}
-// {0x08000000}'NavMeshBoundingBox',
-// {>>> 0x10000000 STAT: Show in World Map <<<}
-// {0x10000000}'MustExitToTalk ShowInWorldMap',
-// {>>> 0x20000000 ACTI: Child Can Use <<<}
-// {>>> 0x20000000 REFR: Don't Havok Settle <<<}
-// {0x20000000}'ChildCanUse DontHavokSettle',
-// {>>> 0x40000000 ACTI: GROUND <<<}
-// {>>> 0x40000000 REFR: NoRespawn <<<}
-// {0x40000000}'NavMeshGround NoRespawn',
-// {>>> 0x80000000 REFR: MultiBound <<<}
-// {0x80000000}'MultiBound'
-// ], [18]);
-
- wbRecordFlagsFlags := wbFlags(wbRecordFlagsFlags, [
- {0x00000001} { 0} 'Unknown 0',
- {0x00000002} { 1} 'Unknown 1',
- {0x00000004} { 2} 'Unknown 2',
- {0x00000008} { 3} 'Unknown 3',
- {0x00000010} { 4} 'Unknown 4',
- {0x00000020} { 4} 'Unknown 5',
- {0x00000040} { 6} 'Unknown 6',
- {0x00000080} { 7} 'Unknown 7',
- {0x00000100} { 8} 'Unknown 8',
- {0x00000200} { 9} 'Unknown 9',
- {0x00000400} {10} 'Unknown 10',
- {0x00000800} {11} 'Unknown 11',
- {0x00001000} {12} 'Unknown 12',
- {0x00002000} {13} 'Unknown 13',
- {0x00004000} {14} 'Unknown 14',
- {0x00008000} {15} 'Unknown 15',
- {0x00010000} {16} 'Unknown 16',
- {0x00020000} {17} 'Unknown 17',
- {0x00040000} {18} 'Unknown 18',
- {0x00080000} {19} 'Unknown 19',
- {0x00100000} {20} 'Unknown 20',
- {0x00200000} {21} 'Unknown 21',
- {0x00400000} {22} 'Unknown 22',
- {0x00800000} {23} 'Unknown 23',
- {0x01000000} {24} 'Unknown 24',
- {0x02000000} {25} 'Unknown 25',
- {0x04000000} {26} 'Unknown 26',
- {0x08000000} {27} 'Unknown 27',
- {0x10000000} {28} 'Unknown 28',
- {0x20000000} {29} 'Unknown 29',
- {0x40000000} {30} 'Unknown 30',
- {0x80000000} {31} 'Unknown 31'
- ]);
-
- wbRecordFlags := wbInteger('Record Flags', itU32, wbFlags(wbRecordFlagsFlags, wbFlagsList([])));
-
- wbMainRecordHeader := wbStruct('Record Header', [
- wbString('Signature', 4, cpCritical),
- wbInteger('Data Size', itU32, nil, cpIgnore),
- wbRecordFlags,
- wbFormID('FormID', cpFormID),
- wbByteArray('Version Control Info 1', 4, cpIgnore),
- wbInteger('Form Version', itU16, nil, cpIgnore),
- wbByteArray('Version Control Info 2', 2, cpIgnore)
- ]);
-
- wbSizeOfMainRecordStruct := 24;
-
- wbIgnoreRecords.Add(XXXX);
-
- wbXRGD := wbByteArray(XRGD, 'Ragdoll Data');
- wbXRGB := wbByteArray(XRGB, 'Ragdoll Biped Data');
-
- wbMusicEnum := wbEnum(['Default', 'Public', 'Dungeon']);
- wbSoundLevelEnum := wbEnum([
- 'Loud',
- 'Normal',
- 'Silent',
- 'Very Loud',
- 'Quiet'
- ]);
-
- wbEntryPointsEnum := wbEnum([
- { 0} 'Mod Breath Timer',
- { 1} 'Mod My Critical Hit Chance',
- { 2} 'Mod My Critical Hit Damage Mult',
- { 3} 'Mod Mine Explode Chance',
- { 4} 'Mod Incoming Limb Damage',
- { 5} 'Mod Book Actor Value Bonus',
- { 6} 'Mod Recovered Health',
- { 7} 'Set Should Attack',
- { 8} 'Mod Buy Prices',
- { 9} 'Add Leveled List On Death',
- {10} 'Set Max Carry Weight',
- {11} 'Mod Addiction Chance',
- {12} 'Mod Addiction Duration',
- {13} 'Mod Positive Chem Duration',
- {14} 'Activate',
- {15} 'Ignore Running During Detection',
- {16} 'Ignore Broken Lock',
- {17} 'Mod Enemy Critical Hit Chance',
- {18} 'Mod Sneak Attack Mult',
- {19} 'Mod Max Placeable Mines',
- {20} 'Mod Bow Zoom',
- {21} 'Mod Recover Arrow Chance',
- {22} 'Mod Exp',
- {23} 'Mod Telekinesis Distance',
- {24} 'Mod Telekinesis Damage Mult',
- {25} 'Mod Telekinesis Damage',
- {26} 'Mod Bashing Damage',
- {27} 'Mod Power Attack Action Points',
- {28} 'Mod Power Attack Damage',
- {29} 'Mod Spell Magnitude',
- {30} 'Mod Spell Duration',
- {31} 'Mod Secondary Value Weight',
- {32} 'Mod Armor Weight',
- {33} 'Mod Incoming Stagger',
- {34} 'Mod Target Stagger',
- {35} 'Mod Weapon Attack Damage',
- {36} 'Mod Incoming Weapon Damage',
- {37} 'Mod Target Damage Resistance',
- {38} 'Mod Spell Cost',
- {39} 'Mod Percent Blocked',
- {40} 'Mod Shield Deflect Arrow Chance',
- {41} 'Mod Incoming Spell Magnitude',
- {42} 'Mod Incoming Spell Duration',
- {43} 'Mod Player Intimidation',
- {44} 'Mod Ricochet Chance',
- {45} 'Mod Ricochet Damage',
- {46} 'Mod Bribe Amount',
- {47} 'Mod Detection Light',
- {48} 'Mod Detection Movement',
- {49} 'Mod Scrap Reward Mult',
- {50} 'Set Sweep Attack',
- {51} 'Apply Combat Hit Spell',
- {52} 'Apply Bashing Spell',
- {53} 'Apply Reanimate Spell',
- {54} 'Set Boolean Graph Variable',
- {55} 'Mod Spell Casting Sound Event',
- {56} 'Mod Pickpocket Chance',
- {57} 'Mod Detection Sneak Skill',
- {58} 'Mod Falling Damage',
- {59} 'Mod Lockpick Sweet Spot',
- {60} 'Mod Sell Prices',
- {61} 'Set Pickpocket Equipped Item',
- {62} 'Set Player Gate Lockpick',
- {63} 'Set Lockpick Starting Arc',
- {64} 'Set Progression Picking',
- {65} 'Set Lockpicks Unbreakable',
- {66} 'Mod Alchemy Effectiveness',
- {67} 'Apply Weapon Swing Spell',
- {68} 'Mod Commanded Actor Limit',
- {69} 'Apply Sneaking Spell',
- {70} 'Mod Player Magic Slowdown',
- {71} 'Mod Ward Magicka Absorption Pct',
- {72} 'Mod Initial Ingredient Effects Learned',
- {73} 'Purify Alchemy Ingredients',
- {74} 'Set Filter Activation',
- {75} 'Set Dual Cast',
- {76} 'Mod Outgoing Explosion Limb Damage',
- {77} 'Mod Enchantment Power',
- {78} 'Mod Soul Pct Captured to Weapon',
- {79} 'Mod VATS Attack Action Points',
- {80} 'Mod Reflect Damage Chance',
- {81} 'Set Activate Label',
- {82} 'Mod Kill Experience',
- {83} 'Mod Poison Dose Count',
- {84} 'Set Apply Placed Item',
- {85} 'Mod Armor Rating',
- {86} 'Mod lockpicking crime chance',
- {87} 'Mod ingredients harvested',
- {88} 'Mod Spell Range (Target Loc.)',
- {89} 'Mod Critical Charge Mult on Ricochet',
- {90} 'Mod lockpicking key reward chance',
- {91} 'Mod Auto Lockpicking Chance',
- {92} 'Mod Auto Hacking Chance',
- {93} 'Mod Typed Weapon Attack Damage',
- {94} 'Mod Typed Incoming Weapon Damage',
- {95} 'Mod Charisma Challenge Chance',
- {96} 'Mod Sprint AP Drain Rate',
- {97} 'Mod Drawn Weapon Weight Speed Effect',
- {98} 'Set Player Gate Hacking',
- {99} 'Mod Player Explosion Damage',
- {100} 'Mod Player Explosion Scale',
- {101} 'Set Rads To Health Mult',
- {102} 'Mod Actor Scope Stability',
- {103} 'Mod Actor Grenade Speed Mult',
- {104} 'Mod Explosion Force',
- {105} 'Mod VATS Penetration Min Visibility',
- {106} 'Mod Rads for Rad Health Max',
- {107} 'Mod VATS Player AP On Kill Chance',
- {108} 'Set VATS Fill Critical Bar On Hit',
- {109} 'Mod VATS Concentrated Fire Chance Bonus',
- {110} 'Mod VATS Critical Count',
- {111} 'Mod VATS Hold Em Steady Bonus',
- {112} 'Mod Typed Spell Magnitude',
- {113} 'Mod Typed Incoming Spell Magnitude',
- {114} 'Set VATS Gun-Fu Num Targets For Crits',
- {115} 'Mod Outgoing Limb Damage',
- {116} 'Mod Restore Action Cost Value',
- {117} 'Mod VATS Reload Action Points',
- {118} 'Mod Incoming Battery Damage',
- {119} 'Mod VATS Critical Charge',
- {120} 'Mod Exp Location',
- {121} 'Mod Exp Speech',
- {122} 'Mod VATS Head Shot Chance',
- {123} 'Mod VATS Hit Chance',
- {124} 'Mod Incoming Explosion Damage',
- {125} 'Mod Ammo Health Mult',
- {126} 'Mod Hacking Guesses',
- {127} 'Mod Terminal Lockout Time',
- {128} 'Set Undetectable',
- {129} 'Invest In Vendor',
- {130} 'Mod Outgoing Limb Bash Damage',
- {131} 'Set Run While Over Encumbered',
- {132} 'Get Component Radar Distance',
- {133} 'Show Grenade Trajectory',
- {134} 'Mod Cone-of-fire Mult',
- {135} 'Mod VATS Concentrated Fire Damage Mult',
- {136} 'Apply Bloody Mess Spell',
- {137} 'Mod VATS Critical Fill Chance On Bank',
- {138} 'Mod VATS Critical Fill Chance On Use',
- {139} 'Set VATS Critical Fill On AP Reward',
- {140} 'Set VATS Critical Fill On Stranger',
- {141} 'Mod Gun Range Mult',
- {142} 'Mod Scope Hold Breath AP Drain Mult',
- {143} 'Set Force Decapitate',
- {144} 'Mod VATS Shoot Explosive Damage Mult',
- {145} 'Mod Scrounger Fill Ammo Chance',
- {146} 'Set Can Explode Pants',
- {147} 'Set VATS Penetration Full Damage',
- {148} 'Mod VATS Gun-Fu 2nd Target Dmg Mult',
- {149} 'Mod VATS Gun-Fu 3rd Target Dmg Mult',
- {150} 'Mod VATS Gun-Fu 4th+ Target Dmg Mult',
- {151} 'Mod VATS Blitz Max Distance',
- {152} 'Set VATS Blitz Max Dmg Mult',
- {153} 'Mod VATS Blitz Dmg Bonus Dist',
- {154} 'Mod Bash Critical Chance',
- {155} 'VATS Apply Paralyzing Palm Spell',
- {156} 'Null Function'
- ]);
-
- wbEquipType := wbFlags([
- {0x00000001} 'Hand To Hand Melee',
- {0x00000002} 'One Hand Sword',
- {0x00000004} 'One Hand Dagger',
- {0x00000008} 'One Hand Axe',
- {0x00000010} 'One Hand Mace',
- {0x00000020} 'Two Hand Sword',
- {0x00000040} 'Two Hand Axe',
- {0x00000080} 'Bow',
- {0x00000100} 'Staff',
- {0x00000200} 'Gun',
- {0x00000400} 'Grenade',
- {0x00000800} 'Mine',
- {0x00001000} 'Spell',
- {0x00002000} 'Shield',
- {0x00004000} 'Torch'
- ], True);
-
- wbEmotionTypeEnum := wbEnum([
- {0} 'Neutral',
- {1} 'Anger',
- {2} 'Disgust',
- {3} 'Fear',
- {4} 'Sad',
- {5} 'Happy',
- {6} 'Surprise',
- {7} 'Puzzled'
- ]);
-
- wbFurnitureAnimTypeEnum := wbEnum([
- {0} '',
- {1} 'Sit',
- {2} 'Lay',
- {3} '',
- {4} 'Lean'
- ]);
-
- wbFurnitureEntryTypeFlags := wbFlags([
- {0x01} 'Front',
- {0x02} 'Behind',
- {0x04} 'Right',
- {0x08} 'Left',
- {0x10} 'Up'
- ]);
-
- wbWardStateEnum := wbEnum([
- 'None',
- 'Absorb',
- 'Break'
- ]);
-
- wbEventFunctionEnum := wbEnum([
- 'GetIsID',
- 'IsInList',
- 'GetValue',
- 'HasKeyword',
- 'GetItemValue'
- ]);
-
- // Event member names and availability are different depending on event type
- // Using generic names for the last 3 of them: Form, Value1, Value2
- wbEventMemberEnum := wbEnum([], [
- $0000, 'None',
- $314F, 'CreatedObject',
- $314C, '(Old)Location',
- $324C, '(New)Location',
- $314B, 'Keyword',
- $3146, 'Form',
- $3156, 'Value1',
- $3256, 'Value2'
- ]);
-
- wbWeaponAnimTypeEnum := wbEnum([
- {0} 'HandToHandMelee',
- {1} 'OneHandSword',
- {2} 'OneHandDagger',
- {3} 'OneHandAxe',
- {4} 'OneHandMace',
- {5} 'TwoHandSword',
- {6} 'TwoHandAxe',
- {7} 'Bow',
- {8} 'Staff',
- {9} 'Crossbow'
- ]);
-
- wbReverbClassEnum := wbEnum([
- 'Default',
- 'Class A',
- 'Class B',
- 'Class C',
- 'Class D',
- 'Class E'
- ]);
-
- wbHitBehaviourEnum := wbEnum([
- 'Normal formula behaviour',
- 'Dismember only',
- 'Explode only',
- 'No dismember/explode'
- ]);
-
- wbEDID := wbString(EDID, 'Editor ID', 0, cpNormal); // not cpBenign according to Arthmoor
- wbFULL := wbLStringKC(FULL, 'Name', 0, cpTranslate);
- wbFULLActor := wbLStringKC(FULL, 'Name', 0, cpTranslate, False, nil{wbActorTemplateUseBaseData});
- wbFULLReq := wbLStringKC(FULL, 'Name', 0, cpTranslate, True);
- wbDESC := wbLStringKC(DESC, 'Description', 0, cpTranslate);
- wbDESCReq := wbLStringKC(DESC, 'Description', 0, cpTranslate, True);
- wbXSCL := wbFloat(XSCL, 'Scale');
-
- wbOBND := wbStruct(OBND, 'Object Bounds', [
- wbInteger('X1', itS16),
- wbInteger('Y1', itS16),
- wbInteger('Z1', itS16),
- wbInteger('X2', itS16),
- wbInteger('Y2', itS16),
- wbInteger('Z2', itS16)
- ]);
-
- wbOBNDReq := wbStruct(OBND, 'Object Bounds', [
- wbInteger('X1', itS16),
- wbInteger('Y1', itS16),
- wbInteger('Z1', itS16),
- wbInteger('X2', itS16),
- wbInteger('Y2', itS16),
- wbInteger('Z2', itS16)
- ], cpNormal, True);
-
- wbPropTypeEnum := wbEnum([
- {00} 'None',
- {01} 'Object',
- {02} 'String',
- {03} 'Int32',
- {04} 'Float',
- {05} 'Bool',
- {06} 'Variable',
- {07} 'Struct',
- {08} '',
- {09} '',
- {10} '',
- {11} 'Array of Object',
- {12} 'Array of String',
- {13} 'Array of Int32',
- {14} 'Array of Float',
- {15} 'Array of Bool',
- {16} 'Array of Variable',
- {17} 'Array of Struct'
- ]);
-
- wbScriptFlags := wbInteger('Flags', itU8, wbEnum([
- {0x00} 'Local',
- {0x01} 'Inherited',
- {0x02} 'Removed',
- {0x03} 'Inherited and Removed'
- ]));
-
- wbScriptPropertyObject := wbUnion('Object Union', wbScriptObjFormatDecider, [
- wbStructSK([1], 'Object v2', [
- wbInteger('Unused', itU16, nil, cpIgnore),
- wbInteger('Alias', itS16, wbScriptObjectAliasToStr, wbStrToAlias),
- wbFormID('FormID')
- ], [2, 1, 0]),
- wbStructSK([1], 'Object v1', [
- wbFormID('FormID'),
- wbInteger('Alias', itS16, wbScriptObjectAliasToStr, wbStrToAlias),
- wbInteger('Unused', itU16, nil, cpIgnore)
- ])
- ]);
-
- wbScriptPropertyStruct :=
- wbArrayS('Struct', wbStructSK([0], 'Member', [
- wbLenString('memberName', 2),
- wbInteger('Type', itU8, wbPropTypeEnum, cpNormal, False, nil, wbScriptPropertyTypeAfterSet),
- wbInteger('Flags', itU8, wbEnum([
- {0x00} '',
- {0x01} 'Edited',
- {0x02} '',
- {0x03} 'Removed'
- ])),
- wbUnion('Value', wbScriptPropertyStructMemberDecider, [
- {00} wbNull,
- {01} wbScriptPropertyObject,
- {02} wbLenString('String', 2),
- {03} wbInteger('Int32', itS32),
- {04} wbFloat('Float'),
- {05} wbInteger('Bool', itU8, wbBoolEnum),
- {11} wbArray('Array of Object', wbScriptPropertyObject, -1),
- {12} wbArray('Array of String', wbLenString('Element', 2), -1),
- {13} wbArray('Array of Int32', wbInteger('Element', itS32), -1),
- {14} wbArray('Array of Float', wbFloat('Element'), -1),
- {15} wbArray('Array of Bool', wbInteger('Element', itU8, wbBoolEnum), -1)
- ])
- ]), -1, cpNormal, False);
-
- wbScriptProperties :=
- wbArrayS('Properties', wbStructSK([0], 'Property', [
- wbLenString('propertyName', 2),
- wbInteger('Type', itU8, wbPropTypeEnum, cpNormal, False, nil, wbScriptPropertyTypeAfterSet),
- wbInteger('Flags', itU8, wbEnum([
- {0x00} '',
- {0x01} 'Edited',
- {0x02} '',
- {0x03} 'Removed'
- ])),
- wbUnion('Value', wbScriptPropertyDecider, [
- {00} wbNull,
- {01} wbScriptPropertyObject,
- {02} wbLenString('String', 2),
- {03} wbInteger('Int32', itS32),
- {04} wbFloat('Float'),
- {05} wbInteger('Bool', itU8, wbBoolEnum),
- {06} wbScriptPropertyStruct, // Variable. No idea if possible or how to decode, leaving like that for the moment
- {07} wbScriptPropertyStruct,
- {11} wbArray('Array of Object', wbScriptPropertyObject, -1),
- {12} wbArray('Array of String', wbLenString('Element', 2), -1),
- {13} wbArray('Array of Int32', wbInteger('Element', itS32), -1),
- {14} wbArray('Array of Float', wbFloat('Element'), -1),
- {15} wbArray('Array of Bool', wbInteger('Element', itU8, wbBoolEnum), -1),
- {17} wbArray('Array of Struct', wbScriptPropertyStruct, -1)
- ])
- ]), -2, cpNormal, False, nil, nil, nil, False);
-
- wbScriptEntry := wbStructSK([0], 'Script', [
- wbLenString('scriptName', 2),
- wbScriptFlags,
- wbScriptProperties
- ]);
-
- wbScriptFragmentsInfo := wbStruct('Script Fragments', [
- wbInteger('Unknown', itS8),
- wbInteger('Flags', itU8, wbFlags([
- {1} 'OnBegin',
- {2} 'OnEnd'
- ])),
- wbScriptEntry,
- wbArray('Fragments', // Do NOT sort, ordered OnBegin, OnEnd
- wbStruct('Fragment', [
- wbInteger('Unknown', itS8),
- wbLenString('scriptName', 2),
- wbLenString('fragmentName', 2)
- ]), [], wbScriptFragmentsInfoCounter)
- ]);
-
- wbScriptFragmentsPack := wbStruct('Script Fragments', [
- wbInteger('Unknown', itS8),
- wbInteger('Flags', itU8, wbFlags([
- {1} 'OnBegin',
- {2} 'OnEnd',
- {4} 'OnChange'
- ])),
- wbScriptEntry,
- wbArray('Fragments', // Do NOT sort, ordered OnBegin, OnEnd, OnChange
- wbStruct('Fragment', [
- wbInteger('Unknown', itS8),
- wbLenString('scriptName', 2),
- wbLenString('fragmentName', 2)
- ]), [], wbScriptFragmentsPackCounter)
- ]);
-
- wbScriptFragmentsQuest := wbStruct('Script Fragments', [
- wbInteger('Unknown', itS8),
- wbInteger('fragmentCount', itU16),
- wbLenString('scriptName', 2),
- // if scriptName = "" then no Flags and Properties
- wbUnion('Script', wbScriptFragmentsEmptyScriptDecider, [
- wbStruct('Script Data', [
- wbScriptFlags,
- wbScriptProperties
- ]),
-// Quest [000179EF]
-// Quest [000792CA] "Merchant Dialogue System"
-// Quest [00091FE1]
-// MQ101KelloggSequence "Kellogg Sequence in Vault 111" [QUST:000D3997]
-// DialogueGlowingSeaAtom "Children of the Atom Dialogue" [QUST:0012DB31]
-// BoSIdleHandlerQuest [QUST:00157460]
- wbNull
- ]),
- wbArrayS('Fragments',
- wbStructSK([0, 2], 'Fragment', [
- wbInteger('Quest Stage', itU16),
- wbInteger('Unknown', itS16),
- wbInteger('Quest Stage Index', itS32),
- wbInteger('Unknown', itS8),
- wbLenString('scriptName', 2),
- wbLenString('fragmentName', 2)
- ]),
- wbScriptFragmentsQuestCounter)
- ]);
-
- wbScriptFragmentsScen := wbStruct('Script Fragments', [
- wbInteger('Unknown', itS8),
- wbInteger('Flags', itU8, wbFlags([
- {1} 'OnBegin',
- {2} 'OnEnd'
- ])),
- wbScriptEntry,
- wbArray('Fragments', // Do NOT sort, ordered OnBegin, OnEnd
- wbStruct('Fragment', [
- wbInteger('Unknown', itS8),
- wbLenString('scriptName', 2),
- wbLenString('fragmentName', 2)
- ]), [], wbScriptFragmentsSceneCounter),
- wbArray('Phase Fragments',
- wbStructSK([0, 1], 'Phase Fragment', [
- wbInteger('Phase Flag', itU8, wbFlags([
- {1} 'OnStart',
- {2} 'OnCompletion'
- ])),
- wbInteger('Phase Index', itU8),
- wbInteger('Unknown', itS16),
- wbInteger('Unknown', itS8),
- wbInteger('Unknown', itS8),
- wbLenString('scriptName', 2),
- wbLenString('fragmentName', 2)
- ]), -2)
- ]);
-
- wbScriptFragments := wbStruct('Script Fragments', [
- wbInteger('Unknown', itS8),
- wbScriptEntry,
- wbArrayS('Fragments',
- wbStructSK([0], 'Fragment', [
- wbInteger('Fragment Index', itU16),
- wbInteger('Unknown', itS16),
- wbInteger('Unknown', itS8),
- wbLenString('scriptName', 2),
- wbLenString('fragmentName', 2)
- ]), -2)
- ]);
-
- {>>> http://www.uesp.net/wiki/Tes5Mod:Mod_File_Format/VMAD_Field <<<}
-
- wbVMAD := wbStruct(VMAD, 'Virtual Machine Adapter', [
- wbInteger('Version', itS16, nil, cpIgnore),
- wbInteger('Object Format', itS16, nil, cpIgnore),
- wbArrayS('Scripts', wbScriptEntry, -2, cpNormal, False, nil, nil, nil, False)
- ]);
-
- wbVMADFragmentedPERK := wbStruct(VMAD, 'Virtual Machine Adapter', [
- wbInteger('Version', itS16, nil, cpIgnore),
- wbInteger('Object Format', itS16, nil, cpIgnore),
- wbArrayS('Scripts', wbScriptEntry, -2, cpNormal, False, nil, nil, nil, False),
- wbScriptFragments
- ], cpNormal, False, nil, 3);
-
- wbVMADFragmentedPACK := wbStruct(VMAD, 'Virtual Machine Adapter', [
- wbInteger('Version', itS16, nil, cpIgnore),
- wbInteger('Object Format', itS16, nil, cpIgnore),
- wbArrayS('Scripts', wbScriptEntry, -2, cpNormal, False, nil, nil, nil, False),
- wbScriptFragmentsPack
- ], cpNormal, False, nil, 3);
-
- wbVMADFragmentedQUST := wbStruct(VMAD, 'Virtual Machine Adapter', [
- wbInteger('Version', itS16, nil, cpIgnore),
- wbInteger('Object Format', itS16, nil, cpIgnore),
- wbArrayS('Scripts', wbScriptEntry, -2, cpNormal, False, nil, nil, nil, False),
- wbScriptFragmentsQuest,
- wbArrayS('Aliases', wbStructSK([0], 'Alias', [
- wbScriptPropertyObject,
- wbInteger('Version', itS16, nil, cpIgnore),
- wbInteger('Object Format', itS16, nil, cpIgnore),
- wbArrayS('Alias Scripts', wbScriptEntry, -2)
- ]), -2)
- ], cpNormal, False, nil, 3);
-
- wbVMADFragmentedSCEN := wbStruct(VMAD, 'Virtual Machine Adapter', [
- wbInteger('Version', itS16, nil, cpIgnore),
- wbInteger('Object Format', itS16, nil, cpIgnore),
- wbArrayS('Scripts', wbScriptEntry, -2, cpNormal, False, nil, nil, nil, False),
- wbScriptFragmentsScen
- ], cpNormal, False, nil, 3);
-
- wbVMADFragmentedINFO := wbStruct(VMAD, 'Virtual Machine Adapter', [
- wbInteger('Version', itS16, nil, cpIgnore),
- wbInteger('Object Format', itS16, nil, cpIgnore),
- wbArrayS('Scripts', wbScriptEntry, -2, cpNormal, False, nil, nil, nil, False),
- wbScriptFragmentsInfo
- ], cpNormal, False, nil, 3);
-
- wbAttackData := wbRStructSK([1], 'Attack', [
- wbStruct(ATKD, 'Attack Data', [
- wbFloat('Damage Mult'),
- wbFloat('Attack Chance'),
- wbFormIDCk('Attack Spell', [SPEL, NULL]),
- wbInteger('Attack Flags', itU32, wbFlags([
- {0x00000001} 'Ignore Weapon',
- {0x00000002} 'Bash Attack',
- {0x00000004} 'Power Attack',
- {0x00000008} 'Charge Attack',
- {0x00000010} 'Rotating Attack',
- {0x00000020} 'Continuous Attack',
- {0x00000040} 'Unknown 6',
- {0x00000080} 'Unknown 7',
- {0x00000100} 'Unknown 8',
- {0x00000200} 'Unknown 9',
- {0x00000400} 'Unknown 10',
- {0x00000800} 'Unknown 11',
- {0x00001000} 'Unknown 12',
- {0x00002000} 'Unknown 13',
- {0x00004000} 'Unknown 14',
- {0x00008000} 'Unknown 15',
- {0x00010000} 'Unknown 16',
- {0x00020000} 'Unknown 17',
- {0x00040000} 'Unknown 18',
- {0x00080000} 'Unknown 19',
- {0x00100000} 'Unknown 20',
- {0x00200000} 'Unknown 21',
- {0x00400000} 'Unknown 22',
- {0x00800000} 'Unknown 23',
- {0x01000000} 'Unknown 24',
- {0x02000000} 'Unknown 25',
- {0x04000000} 'Unknown 26',
- {0x08000000} 'Unknown 27',
- {0x10000000} 'Unknown 28',
- {0x20000000} 'Unknown 29',
- {0x40000000} 'Unknown 30',
- {0x80000000} 'Override Data'
- ])),
- wbFloat('Attack Angle'),
- wbFloat('Strike Angle'),
- wbFloat('Stagger'),
- wbFloat('Knockdown'),
- wbFloat('Recovery Time'),
- wbFloat('Action Points Mult'),
- wbInteger('Stagger Offset', itS32)
- ]),
- wbString(ATKE, 'Attack Event'),
- wbFormIDCk(ATKW, 'Weapon Slot', [EQUP]),
- wbFormIDCk(ATKS, 'Required Slot', [EQUP]),
- wbString(ATKT, 'Description')
- ], []);
-
- wbLocationEnum := wbEnum([
- {0} 'Near reference', // string dump: '%s' in '%s' radius %u
- {1} 'In cell', // string dump: In cell '%s'
- {2} 'Near package start location', // string dump: Near package start location, radius %u
- {3} 'Near editor location', // string dump: Near editor location, radius %u
- {4} 'Object ID',
- {5} 'Object Type',
- {6} 'Near linked reference', // string dump: Near linked reference, radius %u%s%s
- {7} 'At package location', // string dump: At package location, radius %u
- {8} 'Alias (reference)', // string dump: Alias: %s [item #%u], radius %u
- {9} 'Alias (location)', // string dump: Alias: %s, radius %u
- {10} 'Target', // string dump:
- {11} 'Target (location)', // string dump: Target: %s, radius %u
- {12} 'Near self', // Near Self, radius %u
- {13} 'Near Editor Location Cell',
- {14} 'Alias (ref collection)'
- ]);
-
- wbObjectTypeEnum := wbEnum([
- { 0} ' NONE',
- { 1} 'Activators',
- { 2} 'Armor',
- { 3} 'Books',
- { 4} 'Containers',
- { 5} 'Doors',
- { 6} 'Ingredients',
- { 7} 'Lights',
- { 8} 'Miscellaneous',
- { 9} 'Flora',
- {10} 'Furniture',
- {11} 'Weapons: Any',
- {12} 'Ammo',
- {13} 'Keys',
- {14} 'Alchemy',
- {15} 'Food',
- {16} 'Clothing',
- {17} 'All: Wearable',
- {18} 'Weapons: NONE',
- {19} 'Weapons: Melee',
- {20} 'Weapons: Ranged',
- {21} 'Spells: Any',
- {22} 'Spells: Range Target',
- {23} 'Spells: Range Touch',
- {24} 'Spells: Range Self',
- {25} 'Actors: Any',
- {26} 'Furniture: Beds',
- {27} 'Furniture: Chairs',
- {28} 'Shouts',
- {29} 'Headtrack Markers'
- ]);
-
- wbPLDT := wbStruct(PLDT, 'Location', [
- wbInteger('Type', itS32, wbLocationEnum),
- wbUnion('Location Value', wbTypeDecider, [
- {0} wbFormIDCkNoReach('Reference', sigReferences),
- {1} wbFormIDCkNoReach('Cell', [NULL, CELL]),
- {2} wbByteArray('Near Package Start Location', 4, cpIgnore),
- {3} wbByteArray('Near Editor Location', 4, cpIgnore),
- {4} wbFormIDCkNoReach('Object ID', [NULL, ACTI, DOOR, STAT, MSTT, FURN, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, OMOD, BOOK, NOTE, KEYM, ALCH, INGR, LIGH, FACT, FLST, IDLM, TXST, PROJ]),
- {5} wbInteger('Object Type', itU32, wbObjectTypeEnum),
- {6} wbFormIDCk('Keyword', [NULL, KYWD]),
- {7} wbByteArray('Unused', 4, cpIgnore),
- {8} wbInteger('Ref Alias', itS32, wbPackageLocationAliasToStr, wbStrToAlias),
- {9} wbInteger('Loc Alias', itS32, wbPackageLocationAliasToStr, wbStrToAlias),
- {10} wbInteger('Interrupt Data', itU32),
- {11} wbInteger('Packdata Target', itU32),
- {12} wbByteArray('Unknown', 4, cpIgnore),
- {13} wbByteArray('Unknown', 4),
- {14} wbInteger('Ref Collection Alias', itS32, wbPackageLocationAliasToStr, wbStrToAlias)
- ]),
- wbInteger('Radius', itS32),
- wbInteger('Collection Index', itU32)
- ], cpNormal, False, nil, 3);
-
- wbPLVD := wbStruct(PLVD, 'Location', [
- wbInteger('Type', itS32, wbLocationEnum),
- wbUnion('Location Value', wbTypeDecider, [
- {0} wbFormIDCkNoReach('Reference', sigReferences),
- {1} wbFormIDCkNoReach('Cell', [NULL, CELL]),
- {2} wbByteArray('Near Package Start Location', 4, cpIgnore),
- {3} wbByteArray('Near Editor Location', 4, cpIgnore),
- {4} wbFormIDCkNoReach('Object ID', [NULL, ACTI, DOOR, STAT, MSTT, FURN, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, OMOD, BOOK, NOTE, KEYM, ALCH, INGR, LIGH, FACT, FLST, IDLM, TXST, PROJ]),
- {5} wbInteger('Object Type', itU32, wbObjectTypeEnum),
- {6} wbFormIDCk('Keyword', [NULL, KYWD]),
- {7} wbByteArray('Unused', 4, cpIgnore),
- {8} wbInteger('Ref Alias', itS32, wbPackageLocationAliasToStr, wbStrToAlias),
- {9} wbInteger('Loc Alias', itS32, wbPackageLocationAliasToStr, wbStrToAlias),
- {10} wbInteger('Interrupt Data', itU32),
- {11} wbInteger('Packdata Target', itU32),
- {12} wbByteArray('Unknown', 4, cpIgnore),
- {13} wbByteArray('Unknown', 4),
- {14} wbInteger('Ref Collection Alias', itS32, wbPackageLocationAliasToStr, wbStrToAlias)
- ]),
- wbInteger('Radius', itS32),
- wbInteger('Collection Index', itU32)
- ], cpNormal, False, nil, 3);
-
- wbTargetData := wbStruct('Target Data', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Specific Reference',
- {1} 'Object ID',
- {2} 'Object Type',
- {3} 'Linked Reference',
- {4} 'Ref Alias',
- {5} 'Interrupt Data',
- {6} 'Self',
- {7} 'Keyword',
- {8} 'Unknown 8'
- ]), cpNormal, False, nil, nil, 2),
- wbUnion('Target', wbTypeDecider, [
- {0} wbFormIDCkNoReach('Reference', sigReferences, True),
- {1} wbFormIDCkNoReach('Object ID', [NULL, ACTI, DOOR, STAT, MSTT, FURN, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, OMOD, BOOK, NOTE, KEYM, ALCH, INGR, LIGH, FACT, FLST, IDLM, TXST, PROJ]),
- {2} wbInteger('Object Type', itU32, wbObjectTypeEnum),
- {3} wbFormIDCk('Keyword', [KYWD, NULL]),
- {4} wbInteger('Alias', itS32, wbPackageLocationAliasToStr, wbStrToAlias),
- {5} wbInteger('Interrupt Data', itU32),
- {6} wbByteArray('Unknown', 4, cpIgnore),
- {7} wbFormIDCk('Keyword', [KYWD, NULL]),
- {8} wbByteArray('Unknown', 4, cpIgnore)
- ]),
- wbInteger('Count / Distance', itS32)
- ]);
-
- wbEITM := wbFormIDCk(EITM, 'Object Effect', [ENCH, SPEL]);
-
- wbPosRot :=
- wbStruct('Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ]);
-
- wbDATAPosRot :=
- wbStruct(DATA, 'Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ], cpNormal, True);
-
- wbMODS := wbFormIDCk(MODS, 'Material Swap', [MSWP]);
- wbMO2S := wbFormIDCk(MO2S, 'Material Swap', [MSWP]);
- wbMO3S := wbFormIDCk(MO3S, 'Material Swap', [MSWP]);
- wbMO4S := wbFormIDCk(MO4S, 'Material Swap', [MSWP]);
- wbMO5S := wbFormIDCk(MO5S, 'Material Swap', [MSWP]);
-
- wbMODF := wbUnknown(MODF);
- wbMO2F := wbUnknown(MO2F);
- wbMO3F := wbUnknown(MO3F);
- wbMO4F := wbUnknown(MO4F);
- wbMO5F := wbUnknown(MO5F);
-
- wbMODC := wbFloat(MODC, 'Color Remapping Index');
- wbMO2C := wbFloat(MO2C, 'Color Remapping Index');
- wbMO3C := wbFloat(MO3C, 'Color Remapping Index');
- wbMO4C := wbFloat(MO4C, 'Color Remapping Index');
- wbMO5C := wbFloat(MO5C, 'Color Remapping Index');
-
- wbMODT := wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow);
- wbDMDT := wbByteArray(DMDT, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow);
- {wbMODT := wbStruct(MODT, 'Texture Files Hashes', [
- wbInteger('Number of headers', itU32),
- wbInteger('Textures count', itU32),
- wbByteArray('Unused', 4),
- wbInteger('Unique textures count', itU32),
- wbInteger('Materials count', itU32),
- wbArray('Hashes', wbStruct('Hash', [
- wbByteArray('Flags', 4),
- wbString('Type', 4),
- wbByteArray('Texture hash', 4)
- ]))
- ]);}
-
- wbMODL :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbMODT,
- wbMODS,
- wbMODC,
- wbMODF
- ], [], cpNormal, False, nil, True);
-
- wbMODLActor :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbMODT,
- wbMODS
- ], [], cpNormal, False, nil{wbActorTemplateUseModelAnimation}, True);
-
- wbMODLReq :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename', 0, cpNormal, True),
- wbMODT,
- wbMODS,
- wbMODC,
- wbMODF
- ], [], cpNormal, True, nil, True);
-
- wbDMDS := wbFormIDCk(DMDS, 'Material Swap', [MSWP]);
- wbDMDC := wbFloat(DMDC, 'Color Remapping Index');
-
- wbDEST := wbRStruct('Destructible', [
- wbStruct(DEST, 'Header', [
- wbInteger('Health', itS32),
- wbInteger('DEST Count', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'VATS Targetable',
- 'Large Actor Destroys'
- ])),
- wbByteArray('Unknown', 2)
- ]),
- wbArrayS(DAMC, 'Resistances', wbStructSK([0], 'Resistance', [
- wbFormIDCk('Damage Type', [DMGT]),
- wbInteger('Value', itU32)
- ])),
- wbRArray('Stages',
- wbRStruct('Stage', [
- wbStruct(DSTD, 'Destruction Stage Data', [
- wbInteger('Health %', itU8),
- wbInteger('Index', itU8),
- wbInteger('Model Damage Stage', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'Cap Damage',
- 'Disable',
- 'Destroy',
- 'Ignore External Dmg',
- 'Becomes Dynamic'
- ])),
- wbInteger('Self Damage per Second', itS32),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbFormIDCk('Debris', [DEBR, NULL]),
- wbInteger('Debris Count', itS32)
- ], cpNormal, True),
- wbString(DSTA, 'Sequence Name'),
- wbRStructSK([0], 'Model', [
- wbString(DMDL, 'Model Filename', 0, cpNormal, True),
- wbDMDT,
- wbDMDC,
- wbDMDS
- ], [], cpNormal, False, nil, True),
- wbEmpty(DSTF, 'End Marker', cpNormal, True)
- ], [], cpNormal, False, nil)
- )
- ], [], cpNormal, False, nil);
-
- wbDESTActor := wbRStruct('Destructible', [
- wbStruct(DEST, 'Header', [
- wbInteger('Health', itS32),
- wbInteger('Count', itU8),
- wbInteger('VATS Targetable', itU8, wbBoolEnum),
- wbByteArray('Unknown', 2)
- ]),
- wbRArray('Stages', // Begin Stage Array
- wbRStruct('Stage', [ // Begin Stage RStruct
- wbStruct(DSTD, 'Destruction Stage Data', [ // Begin DSTD
- wbInteger('Health %', itU8),
- wbInteger('Index', itU8),
- wbInteger('Damage Stage', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'Cap Damage',
- 'Disable',
- 'Destroy'
- ])),
- wbInteger('Self Damage per Second', itS32),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbFormIDCk('Debris', [DEBR, NULL]),
- wbInteger('Debris Count', itS32)
- ], cpNormal, True), // End DSTD
- wbRStructSK([0], 'Model', [ // Begin DMDL
- wbString(DMDL, 'Model Filename')
- ], []), // End DMDL
- wbDMDT,
- wbDMDC,
- wbDMDS,
- wbEmpty(DSTF, 'End Marker', cpNormal, True)
- ], []) // Begin Stage RStruct
- ) // End Stage Array
- ], [], cpNormal, False, nil{wbActorTemplateUseModelAnimation});
-
- wbXLOD := wbArray(XLOD, 'Distant LOD Data', wbFloat('Unknown'), 3);
-
- wbXESP := wbStruct(XESP, 'Enable Parent', [
- wbFormIDCk('Reference', sigReferences),
- wbInteger('Flags', itU8, wbFlags([
- 'Set Enable State to Opposite of Parent',
- 'Pop In'
- ])),
- wbByteArray('Unused', 3, cpIgnore)
- ]);
-
- wbPDTO :=
- wbStruct(PDTO, 'Topic Data', [
- wbInteger('Type', itU32, wbEnum([
- 'Topic Ref',
- 'Topic Subtype'
- ])),
- wbUnion('Data', wbTypeDecider, [
- wbFormIDCk('Topic', [DIAL, NULL]),
- wbString('Subtype', 4)
- ])
- ]);
-
- wbPDTOs := wbRArray('Topic', wbPDTO, cpNormal, False, nil);
-
- wbXLCM := wbInteger(XLCM, 'Level Modifier', itS32, wbEnum([
- 'Easy',
- 'Medium',
- 'Hard',
- 'Very Hard'
- ]));
-
- if wbSimpleRecords then begin
- wbMaxHeightDataCELL := wbByteArray(MHDT, 'Max Height Data', 0, cpNormal);
- wbMaxHeightDataWRLD := wbByteArray(MHDT, 'Max Height Data', 0, cpNormal);
- end
- else begin
- wbMaxHeightDataCELL := wbStruct(MHDT, 'Max Height Data', [
- wbFloat('Offset'),
- wbArray('Rows',
- wbByteArray('Columns', 32)
- // way too verbose for no practical use
- //wbStruct('Row', [ wbArray('Columns', wbInteger('Column', itU8), 32) ])
- , 32)
- ]);
- wbMaxHeightDataWRLD := wbStruct(MHDT, 'Max Height Data', [
- wbStruct('Min', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbStruct('Max', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbByteArray('Cell Data', 0)
- // way too verbose for no practical use
- {wbArray('Cell Data', wbStruct('Quad Height', [
- wbInteger('Bottom Left', itU8),
- wbInteger('Bottom Right', itU8),
- wbInteger('Top Left', itU8),
- wbInteger('Top Right', itU8)
- ]))}
- ]);
- end;
-
- if wbSimpleRecords then
- wbOFST := wbByteArray(OFST, 'Offset Data')
- else
- wbOFST := wbArray(OFST, 'Offset Data', wbArray('Rows', wbInteger('Offset', itU32), wbOffsetDataColsCounter), 0);
-
- wbXOWN := wbStruct(XOWN, 'Owner', [
- wbFormIDCkNoReach('Owner', [FACT, ACHR, NPC_]),
- wbByteArray('Unknown', 4),
- wbInteger('Flags', itU8, wbFlags(['No Crime'])),
- wbByteArray('Unknown', 3)
- ]);
- wbXRNK := wbInteger(XRNK, 'Owner Faction Rank', itS32);
-
- if wbSimpleRecords then
- wbNVNM := wbStruct(NVNM, 'Navmesh Geometry', [
- wbInteger('Version', itU32),
- wbByteArray('Magic', 4),
- wbFormIDCk('Parent Worldspace', [WRLD, NULL]),
- wbUnion('Parent', wbNVNMParentDecider, [
- wbStruct('Coordinates', [
- wbInteger('Grid Y', itS16),
- wbInteger('Grid X', itS16)
- ]),
- wbFormIDCk('Parent Cell', [CELL])
- ]),
- wbByteArray('Vertices and Triangles')
- ])
- else
- wbNVNM := wbStruct(NVNM, 'Navmesh Geometry', [
- wbInteger('Version', itU32), // Changes how the struct is loaded, should be 15 in FO4
- wbStruct('Pathing Cell', [
- wbInteger('Magic', itU32), // This looks like a magic number (always $A5E9A03C), loaded with the parents
- wbFormIDCk('Parent Worldspace', [WRLD, NULL]),
- wbUnion('Parent', wbNVNMParentDecider, [ // same as TES5 cell if worldspace is null or Grid X Y
- wbStruct('Coordinates', [
- wbInteger('Grid Y', itS16),
- wbInteger('Grid X', itS16)
- ]),
- wbFormIDCk('Parent Cell', [CELL])
- ])
- ]),
- wbArray('Vertices', wbStruct('Vertex', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]), -1),
- wbArray('Triangles',
- wbStruct('Triangle', [
- wbInteger('Vertex 0', itS16),
- wbInteger('Vertex 1', itS16),
- wbInteger('Vertex 2', itS16),
- wbInteger('Edge 0-1', itS16),
- wbInteger('Edge 1-2', itS16),
- wbInteger('Edge 2-0', itS16),
- wbFloat('Height'), // this and next if form ver > 57
- wbInteger('Unknown', itU8, wbFlags([])), // flags
- wbInteger('Unknown', itU32) // encoding or flags
- ])
- , -1),
- wbArray('Edge Links',
- wbStruct('Edge Link', [
- wbInteger('Unknown', itU32),
- wbFormIDCk('Mesh', [NAVM]), // those last three are a structure
- wbInteger('Triangle', itS16),
- wbInteger('Unknown', itU8) // if form ver > 127
- ])
- , -1),
- wbArray('Door Triangles',
- wbStruct('Door Triangle', [
- wbInteger('Triangle before door', itU16), // I would say itU16
- wbInteger('DTUnknown', itU32), // used as a key to lookup in a map of PathingDoor
- wbUnion('Door', wbDoorTriangleDoorTriangleDecider, [wbNull, wbFormIDCk('Door', [REFR])])
- ])
- , -1),
- wbArray('Unknown 5', // if navmesh version gt 12
- wbStruct('Unknown', [
- wbInteger('Unknown', itU16),
- wbInteger('Unknown', itU16),
- wbInteger('Unknown', itU32 {, wbFlags([]) ? })
- ])
- , -1),
- wbArray('Unknown 6',
- wbStruct('Uknown', [
- wbInteger('Unknown', itU16),
- wbInteger('Unknown', itU16)
- ])
- , -1),
- wbArray('Unknown 7', // if navmesh version gt 11
- wbStruct('Unknown', [
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbInteger('Unknown', itU16),
- wbInteger('Unknown', itU32)
- ])
- , -1),
- wbStruct('Navmesh Grid', [
- wbInteger('Navmesh Grid Size', itU32), // max 12
- wbFloat('Max X Distance'),
- wbFloat('Max Y Distance'),
- wbFloat('Min X'),
- wbFloat('Min Y'),
- wbFloat('Min Z'),
- wbFloat('Max X'),
- wbFloat('Max Y'),
- wbFloat('Max Z'),
- wbArray('NavMesh Grid Arrays', wbArray('NavMeshGridCell', wbInteger('Triangle', itS16), -1)) // There are NavMeshGridSize^2 arrays to load
- ])
- ]);
-
-end;
-
-procedure DefineFO4b;
-begin
-
- wbRecord(ACHR, 'Placed NPC',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000200} 9, 'Starts Dead',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x02000000} 25, 'No AI Acquire',
- {0x20000000} 29, 'Don''t Havok Settle'
- ], True, True)), [
- wbEDID,
- wbVMAD,
- wbFormIDCk(NAME, 'Base', [NPC_], False, cpNormal, True),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- {--- Ragdoll ---}
- wbXRGD,
- wbXRGB,
-
- {--- Patrol Data ---}
- wbRStruct('Patrol Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbPDTOs,
- wbFormIDCk(TNAM, 'Topic', [DIAL, NULL], False, cpNormal)
- ], []),
-
- {--- Leveled Actor ----}
- wbXLCM,
-
- {--- Extra ---}
- wbInteger(XCNT, 'Count', itS32),
- wbFloat(XRDS, 'Radius'),
- wbInteger(XHLT, 'Health %', itU32),
-
- wbRArrayS('Linked References', wbStructSK(XLKR, [0], 'Linked Reference', [
- wbFormIDCk('Keyword/Ref', [KYWD, PLYR, ACHR, REFR, PGRE, PHZD, PMIS, PARW, PBAR, PBEA, PCON, PFLA, NULL]),
- wbFormIDCk('Ref', sigReferences)
- ], cpNormal, False, nil, 1)),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', sigReferences),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbEmpty(XLKT, 'Linked Ref Transient'),
- wbFormIDCk(XRFG, 'Reference Group', [RFGP]),
- wbFormIDCk(XLYR, 'Layer', [LAYR]),
- wbFormIDCk(XMSP, 'Material Swap', [MSWP]),
-
- wbFormIDCk(XLCN, 'Persistent Location', [LCTN]),
- wbFormIDCk(XLRL, 'Location Reference', [LCRT, LCTN, NULL], False, cpBenignIfAdded),
- wbArray(XLRT, 'Location Ref Type', wbFormIDCk('Ref', [LCRT, NULL])),
-
- wbEmpty(XIS2, 'Ignored by Sandbox'),
- wbRArray('Spline Connection', wbStruct(XPLK, 'Link', [
- wbFormIDCk('Ref', [REFR, ACHR]),
- wbUnknown // always 00 00 00 00 so far in DLCWorkshop03.esm
- ])),
- wbFloat(XHTW, 'Head-Tracking Weight'),
- wbFloat(XFVC, 'Favor Cost'),
-
- {--- Enable Parent ---}
- wbXESP,
-
- {--- Ownership ---}
- wbXOWN,
- wbXRNK,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', sigReferences),
-
- {--- Flags ---}
- wbEmpty(XIBS, 'Ignored By Sandbox'),
-
- {--- 3D Data ---}
- wbXSCL,
- wbDATAPosRot,
- wbString(MNAM, 'Comments')
- ], True, wbPlacedAddInfo);
-
- wbVatsValueFunctionEnum :=
- wbEnum([
- { 0} 'Weapon Is',
- { 1} 'Weapon In List',
- { 2} 'Target Is',
- { 3} 'Target In List',
- { 4} 'Target Distance',
- { 5} 'Target Part',
- { 6} 'VATS Action',
- { 7} 'Is Success',
- { 8} 'Is Critical',
- { 9} 'Critical Effect Is',
- {10} 'Critical Effect In List',
- {11} 'Is Fatal',
- {12} 'Explode Part',
- {13} 'Dismember Part',
- {14} 'Cripple Part',
- {15} 'Weapon Type Is',
- {16} 'Is Stranger',
- {17} 'Is Paralyzing Palm',
- {18} 'Projectile Type Is',
- {19} 'Delivery Type Is',
- {20} 'Casting Type Is'
- ]);
-
- wbActorValueEnum :=
- wbEnum([
- {00} 'Aggression',
- {01} 'Confidence',
- {02} 'Energy',
- {03} 'Morality',
- {04} 'Mood',
- {05} 'Assistance',
- {06} 'One-Handed',
- {07} 'Two-Handed',
- {08} 'Archery',
- {09} 'Block',
- {10} 'Smithing',
- {11} 'Heavy Armor',
- {12} 'Light Armor',
- {13} 'Pickpocket',
- {14} 'Lockpicking',
- {15} 'Sneak',
- {16} 'Alchemy',
- {17} 'Speech',
- {18} 'Alteration',
- {19} 'Conjuration',
- {20} 'Destruction',
- {21} 'Illusion',
- {22} 'Restoration',
- {23} 'Enchanting',
- {24} 'Health',
- {25} 'Magicka',
- {26} 'Stamina',
- {27} 'Heal Rate',
- {28} 'Magicka Rate',
- {29} 'Stamina Rate',
- {30} 'Speed Mult',
- {31} 'Inventory Weight',
- {32} 'Carry Weight',
- {33} 'Critical Chance',
- {34} 'Melee Damage',
- {35} 'Unarmed Damage',
- {36} 'Mass',
- {37} 'Voice Points',
- {38} 'Voice Rate',
- {39} 'Damage Resist',
- {40} 'Poison Resist',
- {41} 'Resist Fire',
- {42} 'Resist Shock',
- {43} 'Resist Frost',
- {44} 'Resist Magic',
- {45} 'Resist Disease',
- {46} 'Unknown 46',
- {47} 'Unknown 47',
- {48} 'Unknown 48',
- {49} 'Unknown 49',
- {50} 'Unknown 50',
- {51} 'Unknown 51',
- {52} 'Unknown 52',
- {53} 'Paralysis',
- {54} 'Invisibility',
- {55} 'Night Eye',
- {56} 'Detect Life Range',
- {57} 'Water Breathing',
- {58} 'Water Walking',
- {59} 'Unknown 59',
- {60} 'Fame',
- {61} 'Infamy',
- {62} 'Jumping Bonus',
- {63} 'Ward Power',
- {64} 'Right Item Charge',
- {65} 'Armor Perks',
- {66} 'Shield Perks',
- {67} 'Ward Deflection',
- {68} 'Variable01',
- {69} 'Variable02',
- {70} 'Variable03',
- {71} 'Variable04',
- {72} 'Variable05',
- {73} 'Variable06',
- {74} 'Variable07',
- {75} 'Variable08',
- {76} 'Variable09',
- {77} 'Variable10',
- {78} 'Bow Speed Bonus',
- {79} 'Favor Active',
- {80} 'Favors Per Day',
- {81} 'Favors Per Day Timer',
- {82} 'Left Item Charge',
- {83} 'Absorb Chance',
- {84} 'Blindness',
- {85} 'Weapon Speed Mult',
- {86} 'Shout Recovery Mult',
- {87} 'Bow Stagger Bonus',
- {88} 'Telekinesis',
- {89} 'Favor Points Bonus',
- {90} 'Last Bribed Intimidated',
- {91} 'Last Flattered',
- {92} 'Movement Noise Mult',
- {93} 'Bypass Vendor Stolen Check',
- {94} 'Bypass Vendor Keyword Check',
- {95} 'Waiting For Player',
- {96} 'One-Handed Modifier',
- {97} 'Two-Handed Modifier',
- {98} 'Marksman Modifier',
- {99} 'Block Modifier',
- {100} 'Smithing Modifier',
- {101} 'Heavy Armor Modifier',
- {102} 'Light Armor Modifier',
- {103} 'Pickpocket Modifier',
- {104} 'Lockpicking Modifier',
- {105} 'Sneaking Modifier',
- {106} 'Alchemy Modifier',
- {107} 'Speechcraft Modifier',
- {108} 'Alteration Modifier',
- {109} 'Conjuration Modifier',
- {110} 'Destruction Modifier',
- {111} 'Illusion Modifier',
- {112} 'Restoration Modifier',
- {113} 'Enchanting Modifier',
- {114} 'One-Handed Skill Advance',
- {115} 'Two-Handed Skill Advance',
- {116} 'Marksman Skill Advance',
- {117} 'Block Skill Advance',
- {118} 'Smithing Skill Advance',
- {119} 'Heavy Armor Skill Advance',
- {120} 'Light Armor Skill Advance',
- {121} 'Pickpocket Skill Advance',
- {122} 'Lockpicking Skill Advance',
- {123} 'Sneaking Skill Advance',
- {124} 'Alchemy Skill Advance',
- {125} 'Speechcraft Skill Advance',
- {126} 'Alteration Skill Advance',
- {127} 'Conjuration Skill Advance',
- {128} 'Destruction Skill Advance',
- {129} 'Illusion Skill Advance',
- {130} 'Restoration Skill Advance',
- {131} 'Enchanting Skill Advance',
- {132} 'Left Weapon Speed Multiply',
- {133} 'Dragon Souls',
- {134} 'Combat Health Regen Multiply',
- {135} 'One-Handed Power Modifier',
- {136} 'Two-Handed Power Modifier',
- {137} 'Marksman Power Modifier',
- {138} 'Block Power Modifier',
- {139} 'Smithing Power Modifier',
- {140} 'Heavy Armor Power Modifier',
- {141} 'Light Armor Power Modifier',
- {142} 'Pickpocket Power Modifier',
- {143} 'Lockpicking Power Modifier',
- {144} 'Sneaking Power Modifier',
- {145} 'Alchemy Power Modifier',
- {146} 'Speechcraft Power Modifier',
- {147} 'Alteration Power Modifier',
- {148} 'Conjuration Power Modifier',
- {149} 'Destruction Power Modifier',
- {150} 'Illusion Power Modifier',
- {151} 'Restoration Power Modifier',
- {152} 'Enchanting Power Modifier',
- {153} 'Dragon Rend',
- {154} 'Attack Damage Mult',
- {155} 'Heal Rate Mult',
- {156} 'Magicka Rate Mult',
- {157} 'Stamina Rate Mult',
- {158} 'Werewolf Perks',
- {159} 'Vampire Perks',
- {160} 'Grab Actor Offset',
- {161} 'Grabbed',
- {162} 'Unknown 162',
- {163} 'Reflect Damage'
- ], [
- -1, 'None'
- ]);
-
- wbSkillEnum :=
- wbEnum([
- 'Unknown 1',
- 'Unknown 2',
- 'Unknown 3',
- 'Unknown 4',
- 'Unknown 5',
- 'Unknown 6',
- 'One Handed',
- 'Two Handed',
- 'Archery',
- 'Block',
- 'Smithing',
- 'Heavy Armor',
- 'Light Armor',
- 'Pickpocket',
- 'Lockpicking',
- 'Sneak',
- 'Alchemy',
- 'Speech',
- 'Alteration',
- 'Conjuration',
- 'Destruction',
- 'Illusion',
- 'Restoration',
- 'Enchanting'
- ], [
- -1, 'None'
- ]);
-
- wbCastEnum := wbEnum([
- {0} 'Constant Effect',
- {1} 'Fire and Forget',
- {2} 'Concentration',
- {3} 'Scroll'
- ]);
-
- wbTargetEnum := wbEnum([
- {0} 'Self',
- {1} 'Touch',
- {2} 'Aimed',
- {3} 'Target Actor',
- {4} 'Target Location'
- ]);
-
- wbCastingSourceEnum := wbEnum([
- 'Left',
- 'Right',
- 'Voice',
- 'Instant'
- ]);
-
- wbCrimeTypeEnum :=
- wbEnum([
- 'Steal',
- 'Pickpocket',
- 'Trespass',
- 'Attack',
- 'Murder',
- 'Escape Jail',
- 'Werewolf Transformation'
- ], [
- -1, 'None'
- ]);
-
- wbKeywordTypeEnum :=
- wbEnum([
- {00} 'None',
- {01} 'Component Tech Level',
- {02} 'Attach Point',
- {03} 'Component Property',
- {04} 'Instantiation Filter',
- {05} 'Mod Association',
- {06} 'Sound',
- {07} 'Anim Archetype',
- {08} 'Function Call',
- {09} 'Recipe Filter',
- {10} 'Attraction Type',
- {11} 'Dialogue Subtype',
- {12} 'Quest Target',
- {13} 'Anim Flavor',
- {14} 'Anim Gender',
- {15} 'Anim Face',
- {16} 'Quest Group',
- {17} 'Anim Injured',
- {18} 'Dispel Effect'
- ]);
-
- wbETYP := wbFormIDCk(ETYP, 'Equipment Type', [EQUP, NULL]);
- wbETYPReq := wbFormIDCk(ETYP, 'Equipment Type', [EQUP, NULL], False, cpNormal, True);
-
- wbFormTypeEnum := wbEnum([], [
- 0, 'Activator',
- 1, 'Armor',
- 2, 'Book',
- 3, 'Container',
- 4, 'Door',
- 5, 'Ingredient',
- 6, 'Light',
- 7, 'MiscItem',
- 8, 'Static',
- 9, 'Grass',
- 10, 'Tree',
- 12, 'Weapon',
- 13, 'Actor',
- 14, 'LeveledCharacter',
- 15, 'Spell',
- 16, 'Enchantment',
- 17, 'Potion',
- 18, 'LeveledItem',
- 19, 'Key',
- 20, 'Ammo',
- 21, 'Flora',
- 22, 'Furniture',
- 23, 'Sound Marker',
- 24, 'LandTexture',
- 25, 'CombatStyle',
- 26, 'LoadScreen',
- 27, 'LeveledSpell',
- 28, 'AnimObject',
- 29, 'WaterType',
- 30, 'IdleMarker',
- 31, 'EffectShader',
- 32, 'Projectile',
- 33, 'TalkingActivator',
- 34, 'Explosion',
- 35, 'TextureSet',
- 36, 'Debris',
- 37, 'MenuIcon',
- 38, 'FormList',
- 39, 'Perk',
- 40, 'BodyPartData',
- 41, 'AddOnNode',
- 42, 'MovableStatic',
- 43, 'CameraShot',
- 44, 'ImpactData',
- 45, 'ImpactDataSet',
- 46, 'Quest',
- 47, 'Package',
- 48, 'VoiceType',
- 49, 'Class',
- 50, 'Race',
- 51, 'Eyes',
- 52, 'HeadPart',
- 53, 'Faction',
- 54, 'Note',
- 55, 'Weather',
- 56, 'Climate',
- 57, 'ArmorAddon',
- 58, 'Global',
- 59, 'Imagespace',
- 60, 'Imagespace Modifier',
- 61, 'Encounter Zone',
- 62, 'Message',
- 63, 'Constructible Object',
- 64, 'Acoustic Space',
- 65, 'Ragdoll',
- 66, 'Script',
- 67, 'Magic Effect',
- 68, 'Music Type',
- 69, 'Static Collection',
- 70, 'Keyword',
- 71, 'Location',
- 72, 'Location Ref Type',
- 73, 'Footstep',
- 74, 'Footstep Set',
- 75, 'Material Type',
- 76, 'Actor Action',
- 77, 'Music Track',
- 78, 'Word of Power',
- 79, 'Shout',
- 80, 'Relationship',
- 81, 'Equip Slot',
- 82, 'Association Type',
- 83, 'Outfit',
- 84, 'Art Object',
- 85, 'Material Object',
- 87, 'Lighting Template',
- 88, 'Shader Particle Geometry',
- 89, 'Visual Effect',
- 90, 'Apparatus',
- 91, 'Movement Type',
- 92, 'Hazard',
- 93, 'SM Event Node',
- 94, 'Sound Descriptor',
- 95, 'Dual Cast Data',
- 96, 'Sound Category',
- 97, 'Soul Gem',
- 98, 'Sound Output Model',
- 99, 'Collision Layer',
- 100, 'Scroll',
- 101, 'ColorForm',
- 102, 'Reverb Parameters',
- 116, 'Terminal'
- ]);
-
- wbMiscStatEnum := wbEnum([], [
- Int64($1EE71DBC), 'Animals Friended',
- Int64($FCDD5011), 'Animals Killed',
- Int64($366D84CF), 'Armor Improved',
- Int64($8E20D7C9), 'Assaults',
- Int64($B9B50725), 'Backstabs',
- Int64($EA01A954), 'Bobbleheads Collected',
- Int64($6932624D), 'Bright Ideas',
- Int64($7FF0CC3B), 'Brotherhood of Steel Quests Completed',
- Int64($FEA920AA), 'Buildings',
- Int64($1F84743B), 'Caps Found',
- Int64($9360004C), 'Chems Crafted',
- Int64($B2A78B7A), 'Chems Taken',
- Int64($53D9E9B5), 'Chests Looted',
- Int64($1E258BEE), 'Computers Hacked',
- Int64($3DE99B41), 'Cores Ejected',
- Int64($737EAA97), 'Corpses Eaten',
- Int64($40B11EFE), 'Creatures Killed',
- Int64($4C4B8DF3), 'Creatures Killed DLC03',
- Int64($22D5BA38), 'Critical Strikes',
- Int64($3C626A90), 'Days Passed',
- Int64($C5A52FD0), 'Days Survived',
- Int64($45FDBB1C), 'DLC01 Quests Completed',
- Int64($FA7CC7F9), 'DLC03 Locations Discovered',
- Int64($AA444695), 'Dungeons Cleared',
- Int64($F4E8FFD6), 'Fatman Deaths',
- Int64($66DAF3CF), 'Fits of Rage',
- Int64($554E59D5), 'Food',
- Int64($E1EB3490), 'Food Cooked',
- Int64($9311B22B), 'Food Eaten',
- Int64($F947D866), 'Four Leaf Clovers',
- Int64($7C586E7A), 'Fusion Cores Consumed',
- Int64($2826309E), 'Game Difficulty',
- Int64($A5EA7ABC), 'Grand Slams',
- Int64($F5A36770), 'Grim Reaper Sprints',
- Int64($52984AA4), 'Happiness',
- Int64($FA024018), 'Hours Slept',
- Int64($CAD2ECA1), 'Hours Waiting',
- Int64($8CC5DAB6), 'HSAtomicCommand',
- Int64($A2E4C1F2), 'HSAutomatron',
- Int64($20F9993D), 'HSGrognak',
- Int64($8D882844), 'HSJangles',
- Int64($910B02C0), 'HSPipfall',
- Int64($860E0723), 'HSRedMenace',
- Int64($3FFA8658), 'HSZetaInvaders',
- Int64($40CA9C83), 'Institute Quests Completed',
- Int64($7D2E57C0), 'Intimidations',
- Int64($FFE8010B), 'Investments Made',
- Int64($9AF17D9D), 'Items Crafted DLC03',
- Int64($CF48C0B9), 'Items Scrapped',
- Int64($82F190C2), 'Items Stolen',
- Int64($6D8671DD), 'Junk Collected',
- Int64($110B8D2F), 'Legendary Enemies Killed',
- Int64($8A24FDE2), 'Locations Discovered',
- Int64($5829CC2E), 'Locks Picked',
- Int64($7EA26C2D), 'Main Quests Completed',
- Int64($493B803C), 'Mines Disarmed',
- Int64($B1511B82), 'Minuteman Quests Completed',
- Int64($98EE55DC), 'Misc Objectives Completed',
- Int64($0F3315AC), 'Money Shots',
- Int64($5E457DAC), 'Most Caps Carried',
- Int64($D37C6909), 'Murders',
- Int64($B91253A4), 'Mysterious Strabger Visits',
- Int64($1DEEA18A), 'Nuka Cola Flavors Created',
- Int64($9CE72536), 'Nuka World Creatures Killed',
- Int64($EB0D60AC), 'Objects Built',
- Int64($73AD915B), 'Pants Exploded',
- Int64($53706A04), 'Paralyzing Punches',
- Int64($9E78CEB3), 'People',
- Int64($F22A8133), 'People Killed',
- Int64($D3F632FF), 'Plants Harvested',
- Int64($856FA4C1), 'PlayedFutureRetroHolotape',
- Int64($F2BAC234), 'Pockets Picked',
- Int64($AC69D9B9), 'Power',
- Int64($0D7B8B16), 'Quests Completed',
- Int64($0580BB9F), 'RadAway Taken',
- Int64($D2960073), 'Rad-X Taken',
- Int64($FDE20426), 'Railroad Quests Completed',
- Int64($3CBF7E59), 'Ricochets',
- Int64($01E1BC85), 'Robots Disabled',
- Int64($2CA4ECC0), 'Robots Improved',
- Int64($C8BC93BE), 'Robots Killed',
- Int64($98D5710C), 'Sandman Kills',
- Int64($B1AE4792), 'Side Quests Completed',
- Int64($ACE470D7), 'Skill Books Read',
- Int64($B556CC52), 'Sneak Attacks',
- Int64($32D1B38F), 'Speach Successes',
- Int64($5D6B18F1), 'Stimpacks Taken',
- Int64($C5321BC5), 'Supply Lines Created',
- Int64($3869002E), 'Survival Denied',
- Int64($F9DEC209), 'Survival Level-Ups',
- Int64($69AF5B9A), 'Synths Killed',
- Int64($0A872FA3), 'Times Addicted',
- Int64($7AEA9C2B), 'Trespasses',
- Int64($13752285), 'Turrets Killed',
- Int64($0B479511), 'Wasteland Whispers',
- Int64($FCD0CCC3), 'Water',
- Int64($61A5C5A9), 'Weapons Disarmed',
- Int64($1D3BA844), 'Weapons Improved',
- Int64($60A11697), 'Workshops Unlocked'
- ]);
-
- wbAdvanceActionEnum := wbEnum([
- 'Normal Usage',
- 'Power Attack',
- 'Bash',
- 'Lockpick Success',
- 'Lockpick Broken'
- ]);
-
- wbAlignmentEnum :=
- wbEnum([
- 'Good',
- 'Neutral',
- 'Evil',
- 'Very Good',
- 'Very Evil'
- ]);
-
- wbAxisEnum :=
- wbEnum([], [
- 88, 'X',
- 89, 'Y',
- 90, 'Z'
- ]);
-
- wbCriticalStageEnum :=
- wbEnum([
- 'None',
- 'Goo Start',
- 'Goo End',
- 'Disintegrate Start',
- 'Disintegrate End'
- ]);
-
- wbStaggerEnum := wbEnum([
- 'None',
- 'Small',
- 'Medium',
- 'Large',
- 'Extra Large'
- ]);
-
- wbSexEnum := wbEnum(['Male','Female']);
-
- wbEFID := wbFormIDCk(EFID, 'Base Effect', [MGEF]);
-
- wbEFIT :=
- wbStructSK(EFIT, [3, 4], '', [
- wbFloat('Magnitude', cpNormal, True),
- wbInteger('Area', itU32),
- wbInteger('Duration', itU32)
- ], cpNormal, True, nil, -1, wbEFITAfterLoad);
-
- wbCTDA := wbRStruct('Condition', [
- wbStruct(CTDA, '', [
- wbInteger('Type', itU8, wbCtdaTypeToStr, wbCtdaTypeToInt, cpNormal, False, nil, wbCtdaTypeAfterSet),
- wbByteArray('Unused', 3, cpIgnore, False, wbNeverShow),
- wbUnion('Comparison Value', wbCTDACompValueDecider, [
- wbFloat('Comparison Value - Float'),
- wbFormIDCk('Comparison Value - Global', [GLOB])
- ]),
- wbInteger('Function', itU16, wbCTDAFunctionToStr, wbCTDAFunctionToInt),
- wbByteArray('Unused', 2, cpIgnore, False, wbNeverShow),
- wbUnion('Parameter #1', wbCTDAParam1Decider, [
- { unknown }
- wbByteArray('Unknown', 4),
- { 0 ptNone}
- wbByteArray('None', 4, cpIgnore),
- { 1 ptInteger}
- wbInteger('Integer', itS32),
- { 2 ptFloat}
- wbFloat('Float'),
- { 3 ptActor}
- wbFormIDCkNoReach('Actor', [NULL, PLYR, ACHR, REFR]),
- { 4 ptActorBase}
- wbFormIDCkNoReach('Actor Base', [NPC_]),
- { 5 ptActorValue}
- wbActorValue,
- { 6 ptAdvanceAction}
- wbInteger('Player Action', itU32, wbAdvanceActionEnum),
- { 7 ptAlias}
- wbInteger('Alias', itS32, wbConditionAliasToStr, wbStrToAlias),
- { 8 ptAlignment}
- wbInteger('Alignment', itU32, wbAlignmentEnum),
- { 9 ptAssociationType}
- wbFormIDCk('Association Type', [ASTP]),
- {10 ptAxis}
- wbInteger('Axis', itU32, wbAxisEnum),
- {11 ptCastingSource}
- wbInteger('Casting Type', itU32, wbCastingSourceEnum),
- {12 ptCell}
- wbFormIDCkNoReach('Cell', [CELL]),
- {13 ptClass}
- wbFormIDCkNoReach('Class', [CLAS]),
- {14 ptCrimeType}
- wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {15 ptCriticalStage}
- wbInteger('Critical Stage', itU32, wbCriticalStageEnum),
- {16 ptEncounterZone}
- wbFormIDCkNoReach('Encounter Zone', [ECZN]),
- {17 ptEquipType}
- wbFormIDCkNoReach('Equip Type', [EQUP]),
- {18 ptEvent}
- wbInteger('Event', itU32, wbEventFunctionAndMemberToStr, wbEventFunctionAndMemberToInt),
- {19 ptEventData}
- wbFormID('Event Data'),
- {20 ptFaction}
- wbFormIDCkNoReach('Faction', [FACT]),
- {21 ptFormList}
- wbFormIDCkNoReach('Form List', [FLST]),
- {22 ptFormType}
- wbInteger('Form Type', itU32, wbFormTypeEnum),
- {23 ptFurniture}
- wbFormIDCkNoReach('Furniture', [FURN, FLST]),
- {24 ptFurnitureAnim}
- wbInteger('Furniture Anim', itU32, wbFurnitureAnimTypeEnum),
- {25 ptFurnitureEntry}
- wbInteger('Furniture Entry', itU32, wbEnum([], [$010000, 'Front', $020000, 'Behind', $040000, 'Right', $80000, 'Left', $100000, 'Up'])),
- {26 ptGlobal}
- wbFormIDCkNoReach('Global', [GLOB]),
- {27 ptIdleForm}
- wbFormIDCkNoReach('Idle', [IDLE]),
- {28 ptInventoryObject}
- wbFormIDCkNoReach('Inventory Object', sigBaseObjects),
- {29 ptKeyword}
- wbFormIDCkNoReach('Keyword', [KYWD, FLST, NULL]),
- {30 ptLocation}
- wbFormIDCkNoReach('Location', [LCTN]),
- {31 ptMagicEffect}
- wbFormIDCkNoReach('Base Effect', [MGEF]),
- {32 ptMagicItem}
- wbFormIDCkNoReach('Effect Item', [SPEL, ENCH, ALCH, INGR, SCRL]),
- {33 ptMiscStat}
- wbInteger('Misc Stat', itU32, wbMiscStatEnum),
- {34 ptObjectReference}
- wbFormIDCkNoReach('Object Reference', sigReferences),
- {35 ptOwner}
- wbFormIDCkNoReach('Owner', [NULL, FACT, NPC_]),
- {36 ptPackage}
- wbFormIDCkNoReach('Package', [PACK]),
- {37 ptPackdata}
- wbInteger('Packdata ID', itU32),
- {38 ptPerk}
- wbFormIDCkNoReach('Perk', [PERK]),
- {39 ptQuest}
- wbFormIDCkNoReach('Quest', [QUST]),
- {40 ptQuestStage}
- wbInteger('Quest Stage', itU32, wbCTDAParam2QuestStageToStr, wbCTDAParam2QuestStageToInt),
- {41 ptRace}
- wbFormIDCkNoReach('Race', [RACE]),
- {42 ptReferencableObject}
- wbFormIDCkNoReach('Referenceable Object', sigBaseObjects),
- {43 ptRefType}
- wbFormIDCkNoReach('Location Ref Type', [LCRT]),
- {44 ptRegion}
- wbFormIDCkNoReach('Region', [REGN]),
- {45 ptScene}
- wbFormIDCk('Scene', [NULL, SCEN]),
- {46 ptSex}
- wbInteger('Sex', itU32, wbSexEnum),
- {47 ptShout}
- wbFormIDCkNoReach('Shout', [SHOU]),
- {48 ptVariableName}
- wbByteArray('Variable Name (unused)', 4, cpIgnore),
- {49 ptVATSValueFunction}
- wbInteger('VATS Value Function', itU32, wbVATSValueFunctionEnum),
- {50 ptVATSValueParam}
- wbInteger('VATS Value Param (unused)', itU32),
- {51 ptVoiceType}
- wbFormIDCkNoReach('Voice Type', [VTYP, FLST]),
- {52 ptWardState}
- wbInteger('Ward State', itU32, wbWardStateEnum),
- {53 ptWeather}
- wbFormIDCkNoReach('Weather', [WTHR]),
- {54 ptWorldspace}
- wbFormIDCkNoReach('Worldspace', [WRLD, FLST]),
- {55 ptDamageType}
- wbFormIDCkNoReach('Damage Type', [DMGT, FLST])
- ]),
-
- wbUnion('Parameter #2', wbCTDAParam2Decider, [
- { unknown }
- wbByteArray('Unknown', 4),
- { 0 ptNone}
- wbByteArray('None', 4, cpIgnore),
- { 1 ptInteger}
- wbInteger('Integer', itS32),
- { 2 ptFloat}
- wbFloat('Float'),
- { 3 ptActor}
- wbFormIDCkNoReach('Actor', [NULL, PLYR, ACHR, REFR]),
- { 4 ptActorBase}
- wbFormIDCkNoReach('Actor Base', [NPC_]),
- { 5 ptActorValue}
- wbActorValue,
- { 6 ptAdvanceAction}
- wbInteger('Player Action', itU32, wbAdvanceActionEnum),
- { 7 ptAlias}
- wbInteger('Alias', itS32, wbConditionAliasToStr, wbStrToAlias),
- { 8 ptAlignment}
- wbInteger('Alignment', itU32, wbAlignmentEnum),
- { 9 ptAssociationType}
- wbFormIDCk('Association Type', [ASTP]),
- {10 ptAxis}
- wbInteger('Axis', itU32, wbAxisEnum),
- {11 ptCastingSource}
- wbInteger('Casting Type', itU32, wbCastingSourceEnum),
- {12 ptCell}
- wbFormIDCkNoReach('Cell', [CELL]),
- {13 ptClass}
- wbFormIDCkNoReach('Class', [CLAS]),
- {14 ptCrimeType}
- wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {15 ptCriticalStage}
- wbInteger('Critical Stage', itU32, wbCriticalStageEnum),
- {16 ptEncounterZone}
- wbFormIDCkNoReach('Encounter Zone', [ECZN]),
- {17 ptEquipType}
- wbFormIDCkNoReach('Equip Type', [EQUP]),
- {18 ptEvent}
- wbInteger('Event', itU32, wbEventFunctionAndMemberToStr, wbEventFunctionAndMemberToInt),
- {19 ptEventData}
- wbFormID('Event Data'),
- {20 ptFaction}
- wbFormIDCkNoReach('Faction', [FACT]),
- {21 ptFormList}
- wbFormIDCkNoReach('Form List', [FLST]),
- {22 ptFormType}
- wbInteger('Form Type', itU32, wbFormTypeEnum),
- {23 ptFurniture}
- wbFormIDCkNoReach('Furniture', [FURN, FLST]),
- {24 ptFurnitureAnim}
- wbInteger('Furniture Anim', itU32, wbFurnitureAnimTypeEnum),
- {25 ptFurnitureEntry}
- wbInteger('Furniture Entry', itU32, wbEnum([], [$010000, 'Front', $020000, 'Behind', $040000, 'Right', $80000, 'Left', $100000, 'Up'])),
- {26 ptGlobal}
- wbFormIDCkNoReach('Global', [GLOB]),
- {27 ptIdleForm}
- wbFormIDCkNoReach('Idle', [IDLE]),
- {28 ptInventoryObject}
- wbFormIDCkNoReach('Inventory Object', sigBaseObjects),
- {29 ptKeyword}
- wbFormIDCkNoReach('Keyword', [KYWD, FLST, NULL]),
- {30 ptLocation}
- wbFormIDCkNoReach('Location', [LCTN]),
- {31 ptMagicEffect}
- wbFormIDCkNoReach('Base Effect', [MGEF]),
- {32 ptMagicItem}
- wbFormIDCkNoReach('Effect Item', [SPEL, ENCH, ALCH, INGR, SCRL]),
- {33 ptMiscStat}
- wbInteger('Misc Stat', itU32, wbMiscStatEnum),
- {34 ptObjectReference}
- wbFormIDCkNoReach('Object Reference', sigReferences),
- {35 ptOwner}
- wbFormIDCkNoReach('Owner', [NULL, FACT, NPC_]),
- {36 ptPackage}
- wbFormIDCkNoReach('Package', [PACK]),
- {37 ptPackdata}
- wbInteger('Packdata ID', itU32),
- {38 ptPerk}
- wbFormIDCkNoReach('Perk', [PERK]),
- {39 ptQuest}
- wbFormIDCkNoReach('Quest', [QUST]),
- {40 ptQuestStage}
- wbInteger('Quest Stage', itU32, wbCTDAParam2QuestStageToStr, wbCTDAParam2QuestStageToInt),
- {41 ptRace}
- wbFormIDCkNoReach('Race', [RACE]),
- {42 ptReferencableObject}
- wbFormIDCkNoReach('Referenceable Object', sigBaseObjects),
- {43 ptRefType}
- wbFormIDCkNoReach('Location Ref Type', [LCRT]),
- {44 ptRegion}
- wbFormIDCkNoReach('Region', [REGN]),
- {45 ptScene}
- wbFormIDCk('Scene', [NULL, SCEN]),
- {46 ptSex}
- wbInteger('Sex', itU32, wbSexEnum),
- {47 ptShout}
- wbFormIDCkNoReach('Shout', [SHOU]),
- {48 ptVariableName}
- wbByteArray('Variable Name (unused)', 4, cpIgnore),
- {49 ptVATSValueFunction}
- wbInteger('VATS Value Function', itU32, wbVATSValueFunctionEnum),
- {50 ptVATSValueParam}
- wbUnion('VATS Value Param', wbCTDAParam2VATSValueParamDecider, [
- { 0} wbFormIDCkNoReach('Weapon', [WEAP]),
- { 1} wbFormIDCkNoReach('Weapon List', [FLST], [WEAP]),
- { 2} wbFormIDCkNoReach('Target', [NPC_]),
- { 3} wbFormIDCkNoReach('Target List', [FLST], [NPC_]),
- { 4} wbByteArray('Unknown', 4, cpIgnore),
- { 5} wbInteger('Target Part', itS32, wbActorValueEnum),
- { 6} wbInteger('VATS Action', itU32, wbEnum([
- 'Unarmed Attack',
- 'One Hand Melee Attack',
- 'Two Hand Melee Attack',
- 'Magic Attack',
- 'Ranged Attack',
- 'Reload',
- 'Crouch',
- 'Stand',
- 'Switch Weapon',
- 'Toggle Weapon Drawn',
- 'Heal',
- 'Player Death'
- ])),
- { 7} wbByteArray('Unknown', 4, cpIgnore),
- { 8} wbByteArray('Unknown', 4, cpIgnore),
- { 9} wbFormIDCkNoReach('Critical Effect', [SPEL]),
- {10} wbFormIDCkNoReach('Critical Effect List', [FLST], [SPEL]),
- {11} wbByteArray('Unknown', 4, cpIgnore),
- {12} wbByteArray('Unknown', 4, cpIgnore),
- {13} wbByteArray('Unknown', 4, cpIgnore),
- {14} wbByteArray('Unknown', 4, cpIgnore),
- {15} wbInteger('Weapon Type', itU32, wbWeaponAnimTypeEnum),
- {16} wbByteArray('Unknown', 4, cpIgnore),
- {17} wbByteArray('Unknown', 4, cpIgnore),
- {18} wbInteger('Projectile Type', itU32, wbEnum([
- 'Missile',
- 'Lobber',
- 'Beam',
- 'Flame',
- 'Cone',
- 'Barrier',
- 'Arrow'
- ])),
- {19} wbInteger('Delivery Type', itU32, wbTargetEnum),
- {20} wbInteger('Casting Type', itU32, wbCastEnum)
- ]),
- {51 ptVoiceType}
- wbFormIDCkNoReach('Voice Type', [VTYP, FLST]),
- {52 ptWardState}
- wbInteger('Ward State', itU32, wbWardStateEnum),
- {53 ptWeather}
- wbFormIDCkNoReach('Weather', [WTHR]),
- {54 ptWorldspace}
- wbFormIDCkNoReach('Worldspace', [WRLD, FLST]),
- {55 ptDamageType}
- wbFormIDCkNoReach('Damage Type', [DMGT, FLST])
- ]),
- wbInteger('Run On', itU32, wbEnum([
- { 0} 'Subject',
- { 1} 'Target',
- { 2} 'Reference',
- { 3} 'Combat Target',
- { 4} 'Linked Reference',
- { 5} 'Quest Alias',
- { 6} 'Package Data',
- { 7} 'Event Data',
- { 9} 'Command Target',
- {10} 'Event Camera Ref',
- {11} 'My Killer'
- ]), cpNormal, False, nil, wbCTDARunOnAfterSet),
- wbUnion('Reference', wbCTDAReferenceDecider, [
- wbInteger('Unused', itU32, nil, cpIgnore),
- wbFormIDCkNoReach('Reference', sigReferences, False)
- ]),
- wbInteger('Parameter #3', itS32, nil, cpNormal, False, nil, nil, -1)
- ], cpNormal, False{, nil, 0, wbCTDAAfterLoad}),
- wbString(CIS1, 'Parameter #1'),
- wbString(CIS2, 'Parameter #2')
- ], [], cpNormal);
-
- wbCTDAs := wbRArray('Conditions', wbCTDA, cpNormal, False);
- wbCTDAsCount := wbRArray('Conditions', wbCTDA, cpNormal, False, nil, wbCTDAsAfterSet);
- wbCTDAsReq := wbRArray('Conditions', wbCTDA, cpNormal, True);
- wbCTDAsReqCount := wbRArray('Conditions', wbCTDA, cpNormal, True, nil, wbCTDAsAfterSet);
-
- wbICON := wbString(ICON, 'Inventory Image');
- wbMICO := wbString(MICO, 'Message Icon');
- wbPTRN := wbFormIDCk(PTRN, 'Preview Transform', [TRNS]);
- wbNTRM := wbFormIDCk(NTRM, 'Native Terminal', [TERM]);
- wbYNAM := wbFormIDCk(YNAM, 'Sound - Pick Up', [SNDR]);
- wbZNAM := wbFormIDCk(ZNAM, 'Sound - Put Down', [SNDR]);
- wbCUSD := wbFormIDCk(CUSD, 'Sound - Crafting', [SNDR]);
- wbINRD := wbFormIDCk(INRD, 'Instance Naming', [INNR]);
- wbPRPS := wbArrayS(PRPS, 'Properties', wbStructSK([0], 'Property', [
- wbActorValue,
- wbFloat('Value')
- ]));
- wbFLTR := wbString(FLTR, 'Filter');
- wbAPPR := wbArray(APPR, 'Attach Parent Slots', wbFormIDCk('Keyword', [KYWD]));
- wbFTYP := wbFormIDCk(FTYP, 'Forced Loc Ref Type', [LCRT]);
- wbATTX := wbLString(ATTX, 'Activate Text Override', 0, cpTranslate);
-
- wbMNAMFurnitureMarker := wbInteger(MNAM, 'Active Markers / Flags', itU32, wbFlags([
- {0x00000001} 'Interaction Point 0',
- {0x00000002} 'Interaction Point 1',
- {0x00000004} 'Interaction Point 2',
- {0x00000008} 'Interaction Point 3',
- {0x00000010} 'Interaction Point 4',
- {0x00000020} 'Interaction Point 5',
- {0x00000040} 'Interaction Point 6',
- {0x00000080} 'Interaction Point 7',
- {0x00000100} 'Interaction Point 8',
- {0x00000200} 'Interaction Point 9',
- {0x00000400} 'Interaction Point 10',
- {0x00000800} 'Interaction Point 11',
- {0x00001000} 'Interaction Point 12',
- {0x00002000} 'Interaction Point 13',
- {0x00004000} 'Interaction Point 14',
- {0x00008000} 'Interaction Point 15',
- {0x00010000} 'Interaction Point 16',
- {0x00020000} 'Interaction Point 17',
- {0x00040000} 'Interaction Point 18',
- {0x00080000} 'Interaction Point 19',
- {0x00100000} 'Interaction Point 20',
- {0x00200000} 'Interaction Point 21',
- {0x00400000} 'Allow Awake Sound',
- {0x00800000} 'Enter With Weapon Drawn',
- {0x01000000} 'Play Anim When Full',
- {0x02000000} 'Disables Activation',
- {0x04000000} 'Is Perch',
- {0x08000000} 'Must Exit to Talk',
- {0x10000000} 'Use Static Avoid Node',
- {0x20000000} 'Unknown 29',
- {0x40000000} 'Has Model?',
- {0x80000000} 'Unknown 31'
- ]));
-
- wbSNAMMarkerParams :=
- wbArray(SNAM, 'Marker Paramaters', wbStruct('Marker', [
- wbFloat('Offset X'),
- wbFloat('Offset Y'),
- wbFloat('Offset Z'),
- wbFloat('Rotation Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFormIDCk('Keyword', [KYWD, NULL]),
- wbInteger('Entry Types', itU8, wbFlags([
- 'Front',
- 'Rear',
- 'Right',
- 'Left',
- 'Other',
- 'Unused 5',
- 'Unused 6',
- 'Unused 7'
- ])),
- wbByteArray('Unknown', 3)
- ], cpNormal, False, nil, 4));
-
- wbArmorPropertyEnum := wbEnum([
- { 0} 'Enchantments',
- { 1} 'BashImpactDataSet',
- { 2} 'BlockMaterial',
- { 3} 'Keywords',
- { 4} 'Weight',
- { 5} 'Value',
- { 6} 'Rating',
- { 7} 'AddonIndex',
- { 8} 'BodyPart',
- { 9} 'DamageTypeValue',
- {10} 'ActorValues',
- {11} 'Health',
- {12} 'ColorRemappingIndex',
- {13} 'MaterialSwaps'
- ]);
-
- wbActorPropertyEnum := wbEnum([
- { 0} 'Keywords',
- { 1} 'ForcedInventory',
- { 2} 'XPOffset',
- { 3} 'Enchantments',
- { 4} 'ColorRemappingIndex',
- { 5} 'MaterialSwaps'
- ]);
-
- wbWeaponPropertyEnum := wbEnum([
- { 0} 'Speed',
- { 1} 'Reach',
- { 2} 'MinRange',
- { 3} 'MaxRange',
- { 4} 'AttackDelaySec',
- { 5} 'Unknown 5',
- { 6} 'OutOfRangeDamageMult',
- { 7} 'SecondaryDamage',
- { 8} 'CriticalChargeBonus',
- { 9} 'HitBehaviour',
- {10} 'Rank',
- {11} 'Unknown 11',
- {12} 'AmmoCapacity',
- {13} 'Unknown 13',
- {14} 'Unknown 14',
- {15} 'Type',
- {16} 'IsPlayerOnly',
- {17} 'NPCsUseAmmo',
- {18} 'HasChargingReload',
- {19} 'IsMinorCrime',
- {20} 'IsFixedRange',
- {21} 'HasEffectOnDeath',
- {22} 'HasAlternateRumble',
- {23} 'IsNonHostile',
- {24} 'IgnoreResist',
- {25} 'IsAutomatic',
- {26} 'CantDrop',
- {27} 'IsNonPlayable',
- {28} 'AttackDamage',
- {29} 'Value',
- {30} 'Weight',
- {31} 'Keywords',
- {32} 'AimModel',
- {33} 'AimModelMinConeDegrees',
- {34} 'AimModelMaxConeDegrees',
- {35} 'AimModelConeIncreasePerShot',
- {36} 'AimModelConeDecreasePerSec',
- {37} 'AimModelConeDecreaseDelayMs',
- {38} 'AimModelConeSneakMultiplier',
- {39} 'AimModelRecoilDiminishSpringForce',
- {40} 'AimModelRecoilDiminishSightsMult',
- {41} 'AimModelRecoilMaxDegPerShot',
- {42} 'AimModelRecoilMinDegPerShot',
- {43} 'AimModelRecoilHipMult',
- {44} 'AimModelRecoilShotsForRunaway',
- {45} 'AimModelRecoilArcDeg',
- {46} 'AimModelRecoilArcRotateDeg',
- {47} 'AimModelConeIronSightsMultiplier',
- {48} 'HasScope',
- {49} 'ZoomDataFOVMult',
- {50} 'FireSeconds',
- {51} 'NumProjectiles',
- {52} 'AttackSound',
- {53} 'AttackSound2D',
- {54} 'AttackLoop',
- {55} 'AttackFailSound',
- {56} 'IdleSound',
- {57} 'EquipSound',
- {58} 'UnEquipSound',
- {59} 'SoundLevel',
- {50} 'ImpactDataSet',
- {61} 'Ammo',
- {62} 'CritEffect',
- {63} 'BashImpactDataSet',
- {64} 'BlockMaterial',
- {65} 'Enchantments',
- {66} 'AimModelBaseStability',
- {67} 'ZoomData',
- {68} 'ZoomDataOverlay',
- {69} 'ZoomDataImageSpace',
- {70} 'ZoomDataCameraOffsetX',
- {71} 'ZoomDataCameraOffsetY',
- {72} 'ZoomDataCameraOffsetZ',
- {73} 'EquipSlot',
- {74} 'SoundLevelMult',
- {75} 'NPCAmmoList',
- {76} 'ReloadSpeed',
- {77} 'DamageTypeValues',
- {78} 'AccuracyBonus',
- {79} 'AttackActionPointCost',
- {80} 'OverrideProjectile',
- {81} 'HasBoltAction',
- {82} 'StaggerValue',
- {83} 'SightedTransitionSeconds',
- {84} 'FullPowerSeconds',
- {85} 'HoldInputToPower',
- {86} 'HasRepeatableSingleFire',
- {87} 'MinPowerPerShot',
- {88} 'ColorRemappingIndex',
- {89} 'MaterialSwaps',
- {90} 'CriticalDamageMult',
- {91} 'FastEquipSound',
- {92} 'DisableShells',
- {93} 'HasChargingAttack',
- {94} 'ActorValues'
- ]);
-
- wbObjectModProperties :=
- wbArrayS('Properties', wbStructSK([4], 'Property', [
- wbInteger('Value Type', itU8, wbEnum([
- {0} 'Int',
- {1} 'Float',
- {2} 'Bool',
- {3} 'Unknown 3',
- {4} 'FormID,Int',
- {5} 'Enum',
- {6} 'FormID,Float'
- ])),
- wbByteArray('Unused', 3, cpIgnore),
- wbUnion('Function Type', wbOMODDataFunctionTypeDecider, [
- { Float } wbInteger('Function Type', itU8, wbEnum(['SET', 'MUL+ADD', 'ADD'])),
- { Bool } wbInteger('Function Type', itU8, wbEnum(['SET', 'AND', 'OR'])),
- { Enum } wbInteger('Function Type', itU8, wbEnum(['SET'])),
- { FormID } wbInteger('Function Type', itU8, wbEnum(['SET', 'REM', 'ADD']))
- ]),
- wbByteArray('Unused', 3, cpIgnore),
- wbInteger('Property', itU16, wbObjectModPropertyToStr, wbObjectModPropertyToInt),
- wbByteArray('Unused', 2, cpIgnore),
- wbUnion('Value 1', wbOMODDataPropertyValue1Decider, [
- { 0} wbByteArray('Value 1 - Unknown', 4),
- { 1} wbInteger('Value 1 - Int', itU32),
- { 2} wbFloat('Value 1 - Float'),
- { 3} wbInteger('Value 1 - Bool', itU32, wbBoolEnum),
- { 4} wbFormID('Value 1 - FormID'),
- { 5} wbInteger('Value 1 - Enum', itU32),
- { 6} wbInteger('Sound Level', itU32, wbSoundLevelEnum),
- { 7} wbInteger('Stagger Value', itU32, wbStaggerEnum),
- { 8} wbInteger('Hit Behaviour', itU32, wbHitBehaviourEnum)
- ]),
- wbUnion('Value 2', wbOMODDataPropertyValue2Decider, [
- wbByteArray('Unused', 4, cpIgnore),
- wbInteger('Value 2 - Int', itU32),
- wbFloat('Value 2 - Float'),
- wbInteger('Value 2 - Bool', itU32, wbBoolEnum)
- ]),
- wbFloat('Step')
- ]), wbOMODDataPropertyCounter, cpNormal, False, nil, wbOMODpropertyAfterSet);
-
- wbOBTSReq := wbStruct(OBTS, 'Object Mod Template Item', [
- wbInteger('Include Count', itU32), // fixed name for wbOMOD* handlers
- wbInteger('Property Count', itU32), // fixed name for wbOMOD* handlers
- wbInteger('Level Min', itU8),
- wbByteArray('Unused', 1),
- wbInteger('Level Max', itU8),
- wbByteArray('Unused', 1),
- wbInteger('ID', itS16),
- wbInteger('Default', itU8, wbBoolEnum),
- wbArray('Keywords', wbFormIDCk('Keyword', [KYWD, NULL]), -4),
- wbInteger('Min Level For Ranks', itU8),
- wbInteger('Alt Levels Per Tier', itU8),
- wbArray('Includes', wbStruct('Include', [
- wbFormIDCk('Mod', [OMOD]),
- wbInteger('Attach Point Index', itU8),
- wbInteger('Optional', itU8, wbBoolEnum),
- wbInteger('Don''t Use All', itU8, wbBoolEnum)
- ]), wbOMODDataIncludeCounter, cpNormal, False, nil, wbOMODincludeAfterSet),
- wbObjectModProperties
- ], cpNormal, True);
-
- wbObjectTemplate := wbRStruct('Object Template', [
- wbInteger(OBTE, 'Count', itU32, nil, cpBenign),
- wbRArray('Combinations',
- wbRStruct('Combination', [
- wbEmpty(OBTF, 'Editor Only'),
- wbFULL,
- wbOBTSReq
- ], [], cpNormal, False, nil, True),
- cpNormal, False, nil, wbOBTSCombinationsAfterSet),
- wbEmpty(STOP, 'Marker', cpNormal, True)
- ], []);
-
- wbBSMPSequence := wbRStructs('Bone Data', 'Data', [
- wbInteger(BSMP, 'Gender', itU32, wbEnum(['Male', 'Female'])),
- // should not be sorted!!!
- wbRArray('Bones',
- wbRStruct('Bone', [
- wbString(BSMB, 'Name'),
- wbArray(BSMS, 'Values', wbFloat('Value')),
- wbUnknown(BMMP)
- ], [])
- )
- ], []);
-
- wbEffectsReq :=
- wbRStructs('Effects', 'Effect', [
- wbEFID,
- wbEFIT,
- wbCTDAs
- ], [], cpNormal, True);
-
- wbRecord(ACTI, 'Activator',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000002} 2, 'Never Fades',
- {0x00000004} 4, 'Non Occluder',
- {0x00000040} 6, 'Unknown 6',
- {0x00000080} 7, 'Heading Marker',
- {0x00000100} 8, 'Must Update Anims',
- {0x00000200} 9, 'Hidden From Local Map',
- {0x00000400} 10, 'Headtrack Marker',
- {0x00000800} 11, 'Used as Platform',
- {0x00001000} 13, 'Pack-In Use Only',
- {0x00008000} 15, 'Has Distant LOD',
- {0x00010000} 16, 'Random Anim Start',
- {0x00020000} 17, 'Dangerous',
- {0x00100000} 20, 'Ignore Object Interaction',
- {0x00800000} 23, 'Is Marker',
- {0x02000000} 25, 'Obstacle',
- {0x04000000} 26, 'NavMesh Generation - Filter',
- {0x08000000} 27, 'NavMesh Generation - Bounding Box',
- {0x20000000} 29, 'Child Can Use',
- {0x40000000} 30, 'NavMesh Generation - Ground'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFormIDCk(STCP, 'Sound', [STAG]),
- wbFULL,
- wbMODL,
- wbDEST,
- wbKSIZ,
- wbKWDAs,
- wbPRPS,
- wbNTRM,
- wbFTYP,
- wbStruct(PNAM, 'Marker Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbInteger('Unused', itU8)
- ]),
- wbFormIDCk(SNAM, 'Sound - Looping', [SNDR]),
- wbFormIDCk(VNAM, 'Sound - Activation', [SNDR]),
- wbFormIDCk(WNAM, 'Water Type', [WATR]),
- wbATTX,
- wbInteger(FNAM, 'Flags', itU16, wbFlags([
- 'No Displacement',
- 'Ignored by Sandbox',
- 'Unknown 2',
- 'Unknown 3',
- 'Is a Radio'
- ])),
- wbFormIDCk(KNAM, 'Interaction Keyword', [KYWD]),
- wbStruct(RADR, 'Radio Receiver', [
- wbFormIDCk('Sound Model', [SOPM, NULL]),
- wbFloat('Frequency'),
- wbFloat('Volume'),
- wbInteger('Starts Active', itU8, wbBoolEnum),
- wbInteger('No Signal Static', itU8, wbBoolEnum)
- ], cpNormal, False, nil, 4),
- wbCITC,
- wbCTDAs,
- wbNVNM
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
- wbRecord(TACT, 'Talking Activator',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000200} 9, 'Hidden From Local Map',
- {0x00010000} 16, 'Random Anim Start',
- {0x00020000} 17, 'Radio Station'
- ]), [17]), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbDEST,
- wbKSIZ,
- wbKWDAs,
- wbUnknown(PNAM, cpIgnore, True),
- wbFormIDCk(SNAM, 'Looping Sound', [SNDR]),
- wbUnknown(FNAM, cpIgnore, True),
- wbFormIDCk(VNAM, 'Voice Type', [VTYP])
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
- wbRecord(ALCH, 'Ingestible',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x20000000} 29, 'Medicine'
- ])), [
- wbEDID,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbKSIZ,
- wbKWDAs,
- wbMODL,
- wbICON,
- wbMICO,
- wbYNAM,
- wbZNAM,
- wbETYP,
- wbCUSD,
- wbDEST,
- wbDESC,
- wbFloat(DATA, 'Weight', cpNormal, True),
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Value', itS32),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'No Auto-Calc',
- {0x00000002} 'Food Item',
- {0x00000004} 'Unknown 3',
- {0x00000008} 'Unknown 4',
- {0x00000010} 'Unknown 5',
- {0x00000020} 'Unknown 6',
- {0x00000040} 'Unknown 7',
- {0x00000080} 'Unknown 8',
- {0x00000100} 'Unknown 9',
- {0x00000200} 'Unknown 10',
- {0x00000400} 'Unknown 11',
- {0x00000800} 'Unknown 12',
- {0x00001000} 'Unknown 13',
- {0x00002000} 'Unknown 14',
- {0x00004000} 'Unknown 15',
- {0x00008000} 'Unknown 16',
- {0x00010000} 'Medicine',
- {0x00020000} 'Poison'
- ])),
- wbFormID('Addiction'),
- wbFloat('Addiction Chance'),
- wbFormIDCk('Sound - Consume', [SNDR, NULL])
- ], cpNormal, True),
- wbLString(DNAM, 'Addiction Name', 0, cpTranslate),
- wbEffectsReq
- ], False, nil, cpNormal, False, wbRemoveEmptyKWDA, wbKeywordsAfterSet);
-
- wbRecord(AMMO, 'Ammunition',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Non-Playable'
- ])), [
- wbEDID,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbDESC,
- wbKSIZ,
- wbKWDAs,
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True, nil, 1),
- wbStruct(DNAM, '', [
- wbFormIDCk('Projectile', [PROJ, NULL]),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Ignores Normal Weapon Resistance',
- {0x02} 'Non-Playable',
- {0x04} 'Has Count Based 3D'
- ])),
- wbByteArray('Unused', 3),
- wbFloat('Damage'),
- wbInteger('Health', itU32)
- ], cpNormal, True),
- wbLStringKC(ONAM, 'Short Name', 0, cpTranslate),
- wbString(NAM1, 'Casing Model'),
- wbByteArray(NAM2, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow)
- ], False, nil, cpNormal, False, wbRemoveEmptyKWDA, wbKeywordsAfterSet);
-
- wbRecord(ANIO, 'Animated Object',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000200} 9, 'Unknown 9'
- ]), [9]), [
- wbEDID,
- wbMODL,
- wbString(BNAM, 'Unload Event')
- ]);
-
- wbRecord(ARMO, 'Armor',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Non-Playable',
- {0x00000040} 6, 'Shield',
- {0x00000400} 10, 'Unknown 10',
- {0x00008000} 15, 'Unknown 15'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbEITM,
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow),
- wbMO2S
- ], []),
- wbString(ICON, 'Male Inventory Image'),
- wbString(MICO, 'Male Message Icon'),
- wbRStruct('Female world model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow),
- wbMO4S
- ], []),
- wbString(ICO2, 'Female Inventory Image'),
- wbString(MIC2, 'Female Message Icon'),
- wbBOD2,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbETYP,
- wbFormIDCk(BIDS, 'Block Bash Impact Data Set', [IPDS, NULL]),
- wbFormIDCk(BAMT, 'Alternate Block Material', [MATT, NULL]),
- wbFormIDCk(RNAM, 'Race', [RACE]),
- wbKSIZ,
- wbKWDAs,
- wbDESC,
- wbINRD,
- wbRArray('Models',
- wbRStruct('Model', [
- wbInteger(INDX, 'Addon Index', itU16),
- wbFormIDCk(MODL, 'Armor Addon', [ARMA])
- ], [])
- ),
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight'),
- wbInteger('Health', itU32)
- ], cpNormal, True),
- wbStruct(FNAM, '', [
- wbInteger('Armor Rating', itU16),
- wbInteger('Base Addon Index', itU16),
- wbInteger('Stagger Rating', itU8, wbStaggerEnum),
- wbUnknown
- ]),
- wbArrayS(DAMA, 'Resistances', wbStructSK([0], 'Resistance', [
- wbFormIDCk('Damage Type', [DMGT]),
- wbInteger('Value', itU32)
- ])),
- wbFormIDCk(TNAM, 'Template Armor', [ARMO]),
- wbAPPR,
- wbObjectTemplate
- ], False, nil, cpNormal, False, wbARMOAfterLoad, wbKeywordsAfterSet);
-
- wbRecord(ARMA, 'Armor Addon',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000040} 6, 'No Underarmor Scaling',
- {0x00000200} 9, 'Unknown 9',
- {0x40000000} 30, 'Hi-Res 1st Person Only'
- ])), [
- wbEDID,
- wbBOD2,
- wbFormIDCk(RNAM, 'Race', [RACE]),
- wbStruct(DNAM, 'Data', [
- wbInteger('Male Priority', itU8),
- wbInteger('Female Priority', itU8),
- // essentialy a number of world models for different weights (Enabled = 2 models _0.nif and _1.nif)
- wbInteger('Weight slider - Male', itU8, wbFlags([
- {0x01} 'Unknown 0',
- {0x02} 'Enabled'
- ])),
- wbInteger('Weight slider - Female', itU8, wbFlags([
- {0x01} 'Unknown 0',
- {0x02} 'Enabled'
- ])),
- wbByteArray('Unknown', 2),
- wbInteger('Detection Sound Value', itU8),
- wbByteArray('Unknown', 1),
- wbFloat('Weapon Adjust')
- ], cpNormal, True),
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow),
- wbMO2S,
- wbMO2C,
- wbMO2F
- ], [], cpNormal, False),
- wbRStruct('Female world model', [
- wbString(MOD3, 'Model Filename'),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow),
- wbMO3S,
- wbMO3C,
- wbMO3F
- ], []),
- wbRStruct('Male 1st Person', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow),
- wbMO4S,
- wbMO4C,
- wbMO4F
- ], []),
- wbRStruct('Female 1st Person', [
- wbString(MOD5, 'Model Filename'),
- wbByteArray(MO5T, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow),
- wbMO5S,
- wbMO5C,
- wbMO5F
- ], []),
- wbFormIDCK(NAM0, 'Male Skin Texture', [TXST, NULL]),
- wbFormIDCK(NAM1, 'Female Skin Texture', [TXST, NULL]),
- wbFormIDCK(NAM2, 'Male Skin Texture Swap List', [FLST, NULL]),
- wbFormIDCK(NAM3, 'Female Skin Texture Swap List', [FLST, NULL]),
- wbRArrayS('Additional Races', wbFormIDCK(MODL, 'Race', [RACE, NULL])),
- wbFormIDCk(SNDD, 'Footstep Sound', [FSTS, NULL]),
- wbFormIDCk(ONAM, 'Art Object', [ARTO]),
- wbBSMPSequence
- ], False, nil, cpNormal, False, wbARMAAfterLoad);
-
- wbRecord(BOOK, 'Book', [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbICON,
- wbMICO,
- wbDESCreq,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbKSIZ,
- wbKWDAs,
- wbFormIDCk(FIMD, 'Featured Item Message', [MESG]),
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbStruct(DNAM, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Advance Actor Value',
- {0x02} 'Can''t be Taken',
- {0x04} 'Add Spell',
- {0x08} 'Unknown 3',
- {0x10} 'Add Perk'
- ])),
- wbUnion('Teaches', wbBOOKTeachesDecider, [
- wbByteArray('Unused', 4),
- wbFormIDCk('Actor Value', [AVIF, NULL]),
- wbFormIDCk('Spell', [SPEL, NULL]),
- wbFormIDCk('Perk', [PERK, NULL])
- ]),
- wbStruct('Text Offset' , [
- wbInteger('X', itU32),
- wbInteger('Y', itU32)
- ])
- ], cpNormal, True),
- wbLString(CNAM, 'Description', 0, cpTranslate),
- wbFormIDCk(INAM, 'Inventory Art', [STAT])
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-end;
-
-procedure DefineFO4c;
-
- procedure ReferenceRecord(aSignature: TwbSignature; const aName: string);
- begin
- wbRecord(aSignature, aName,
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000080} 7, 'Turn Off Fire',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x10000000} 28, 'Reflected By Auto Water',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'No Respawn'
- ], True, True)), [
- wbEDID,
- wbVMAD,
- wbFormIDCk(NAME, 'Projectile', [PROJ, HAZD]),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbFloat(XHTW, 'Head-Tracking Weight'),
- wbFloat(XFVC, 'Favor Cost'),
- wbRArrayS('Reflected/Refracted By',
- wbStructSK(XPWR, [0], 'Water', [
- wbFormIDCk('Reference', [REFR]),
- wbInteger('Type', itU32, wbFlags([
- 'Reflection',
- 'Refraction'
- ]))
- ], cpNormal, False, nil, 1)
- ),
- wbRArrayS('Linked References', wbStructSK(XLKR, [0], 'Linked Reference', [
- wbFormIDCk('Keyword/Ref', [KYWD, PLYR, ACHR, REFR, PGRE, PHZD, PMIS, PARW, PBAR, PBEA, PCON, PFLA, NULL]),
- wbFormIDCk('Ref', sigReferences)
- ], cpNormal, False, nil, 1)),
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', sigReferences),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbFormIDCk(XASP, 'Unknown', [REFR]),
- wbUnknown(XATP),
- wbInteger(XAMC, 'Ammo Count', itU32),
- wbEmpty(XLKT, 'Linked Ref Transient'),
- wbFormIDCk(XLYR, 'Layer', [LAYR]),
- wbFormIDCk(XMSP, 'Material Swap', [MSWP]),
- wbFormIDCk(XRFG, 'Reference Group', [RFGP]),
- wbUnknown(XCVR),
- wbXESP,
- wbXOWN,
- wbXRNK,
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
- wbEmpty(XIS2, 'Ignored by Sandbox'),
- wbArray(XLRT, 'Location Ref Type', wbFormIDCk('Ref', [LCRT, NULL])),
- wbFormIDCk(XLRL, 'Location Reference', [LCRT, LCTN, NULL], False, cpBenignIfAdded),
- wbXSCL,
- wbXLOD,
- wbDataPosRot,
- wbString(MNAM, 'Comments')
- ], True, wbPlacedAddInfo);
- end;
-
-begin
-{>>>
- Skrim has its own ref record for every projectile type
- PARW 'Arrow'
- PBEA 'Beam'
- PFLA 'Flame'
- PCON 'Cone' (voice)
- PBAR 'Barrier'
- PGRE 'Traps'
- PHZD 'Hazards'
- I guess all of them have the same structure
-<<<}
- ReferenceRecord(PARW, 'Placed Arrow');
- ReferenceRecord(PBAR, 'Placed Barrier');
- ReferenceRecord(PBEA, 'Placed Beam');
- ReferenceRecord(PCON, 'Placed Cone/Voice');
- ReferenceRecord(PFLA, 'Placed Flame');
- ReferenceRecord(PGRE, 'Placed Projectile');
- ReferenceRecord(PHZD, 'Placed Hazard');
- ReferenceRecord(PMIS, 'Placed Missile');
-
- wbRecord(CELL, 'Cell',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000400} 7, 'No Pre Vis',
- {0x00000400} 10, 'Persistent',
- {0x00020000} 17, 'Off Limits',
- {0x00040000} 18, 'Compressed',
- {0x00080000} 19, 'Can''t Wait'
- ]), [18]), [
- wbEDID,
- wbFULL,
- wbInteger(DATA, 'Flags', itU16, wbFlags([
- {0x0001} 'Is Interior Cell',
- {0x0002} 'Has Water',
- {0x0004} 'Can''t Travel From Here',
- {0x0008} 'No LOD Water',
- {0x0010} 'Unknown 5',
- {0x0020} 'Public Area',
- {0x0040} 'Hand Changed',
- {0x0080} 'Show Sky',
- {0x0100} 'Use Sky Lighting',
- {0x0200} 'Unknown 10',
- {0x0400} 'Unknown 11',
- {0x0800} 'Sunlight Shadows',
- {0x1000} 'Distant LOD only',
- {0x2000} 'Player Followers Can''t Travel Here',
- {0x4000} 'Unknown 15',
- {0x8000} 'Unknown 16'
- ]), cpNormal, True, False, nil, wbCELLDATAAfterSet),
- wbStruct(XCLC, 'Grid', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32),
- wbInteger('Force Hide Land', itU32, wbFlags([
- 'Quad 1',
- 'Quad 2',
- 'Quad 3',
- 'Quad 4'
- ], True))
- ], cpNormal, False, nil, 2),
-
- wbByteArray(VISI, 'PreVis Files Timestamp', 2),
- wbFormIDCk(RVIS, 'In PreVis File Of', [CELL]),
- wbByteArray(PCMB, 'PreCombined Files Timestamp', 2),
-
- wbStruct(XCLL, 'Lighting', [
- wbByteColors('Ambient Color'),
- wbByteColors('Directional Color'),
- wbByteColors('Fog Color Near'),
- wbFloat('Fog Near'),
- wbFloat('Fog Far'),
- wbInteger('Directional Rotation XY', itS32),
- wbInteger('Directional Rotation Z', itS32),
- wbFloat('Directional Fade'),
- wbFloat('Fog Clip Distance'),
- wbFloat('Fog Power'),
- wbAmbientColors,
- wbByteColors('Fog Color Far'),
- wbFloat('Fog Max'),
- wbFloat('Light Fade Begin'),
- wbFloat('Light Fade End'),
- wbInteger('Inherits', itU32, wbFlags([
- {0x00000001} 'Ambient Color',
- {0x00000002} 'Directional Color',
- {0x00000004} 'Fog Color',
- {0x00000008} 'Fog Near',
- {0x00000010} 'Fog Far',
- {0x00000020} 'Directional Rotation',
- {0x00000040} 'Directional Fade',
- {0x00000080} 'Clip Distance',
- {0x00000100} 'Fog Power',
- {0x00000200} 'Fog Max',
- {0x00000400} 'Light Fade Distances'
- ])),
- wbFloat('Near Height Mid'),
- wbFloat('Near Height Range'),
- wbByteColors('Fog Color High Near'),
- wbByteColors('Fog Color High Far'),
- wbFloat('High Density Scale'),
- wbFloat('Fog Near Scale'),
- wbFloat('Fog Far Scale'),
- wbFloat('Fog High Near Scale'),
- wbFloat('Fog High Far Scale'),
- wbFloat('Far Height Mid'),
- wbFloat('Far Height Range')
- ], cpNormal, False, nil, 11),
-
- wbInteger(CNAM, 'Precombined Object Level XY', itU8),
- wbInteger(ZNAM, 'Precombined Object Level Z', itU8),
- wbByteArray(TVDT, 'Unknown', 0, cpNormal),
- wbMaxHeightDataCELL,
- wbFormIDCk(LTMP, 'Lighting Template', [LGTM, NULL], False, cpNormal, True),
-
- {>>> XCLW sometimes has $FF7FFFFF and causes invalid floation point <<<}
- wbFloat(XCLW, 'Water Height', cpNormal, False, 1, -1, nil, nil, 0, wbCELLXCLWGetConflictPriority),
- wbArrayS(XCLR, 'Regions', wbFormIDCk('Region', [REGN])),
- wbFormIDCk(XLCN, 'Location', [LCTN]),
- wbByteArray(XWCN, 'Unknown', 0, cpIgnore), // leftover
- wbStruct(XWCU, 'Water Velocity', [
- wbFloat('X Offset'),
- wbFloat('Y Offset'),
- wbFloat('Z Offset'),
- wbByteArray('Unknown', 4),
- wbFloat('X Angle'),
- wbFloat('Y Angle'),
- wbFloat('Z Angle'),
- wbByteArray('Unknown', 0)
- ]),
- wbFormIDCk(XCWT, 'Water', [WATR]),
-
- {--- Ownership ---}
- wbXOWN,
- wbXRNK,
-
- wbFormIDCk(XILL, 'Lock List', [FLST, NPC_]),
-
- wbStruct(XILW, 'Exterior LOD', [
- wbFormIDCk('Worldspace', [WRLD]),
- wbFloat('Offset X'),
- wbFloat('Offset Y'),
- wbFloat('Offset Z')
- ]),
- wbString(XWEM, 'Water Environment Map'),
- wbFormIDCk(XCCM, 'Sky/Weather from Region', [REGN]),
- wbFormIDCk(XCAS, 'Acoustic Space', [ASPC]),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
- wbFormIDCk(XCMO, 'Music Type', [MUSC]),
- wbFormIDCk(XCIM, 'Image Space', [IMGS]),
- wbFormIDCk(XGDR, 'God Rays', [GDRY]),
-
- // those can be sorted I think, but makes copying records very slow since some cells have over 22000+ entries
- // DLC01Lair01 "The Mechanist's Lair" [CELL:010008A3]
- wbArrayS(XPRI, 'Physics References', wbFormIDCk('Reference', [REFR, PGRE, PHZD, PMIS, PARW, PBAR, PBEA, PCON, PFLA])),
- wbStruct(XCRI, 'Combined References', [
- wbInteger('Meshes Count', itU32),
- wbInteger('References Count', itU32),
- wbArrayS('Meshes', wbInteger('Combined Mesh', itU32, wbCombinedMeshIDToStr, wbCombinedMeshIDToInt), wbCELLCombinedMeshesCounter, cpNormal, False, nil, wbCELLCombinedMeshesAfterSet),
- wbArrayS('References', wbStructSK([1, 0], 'Reference', [
- wbFormIDCk('Reference', [REFR, PGRE, PHZD, PMIS, PARW, PBAR, PBEA, PCON, PFLA]),
- wbInteger('Combined Mesh', itU32, wbCombinedMeshIDToStr, wbCombinedMeshIDToInt)
- ]), wbCELLCombinedRefsCounter, cpNormal, False, nil, wbCELLCombinedRefsAfterSet)
- ])
- ], True, wbCellAddInfo, cpNormal, False{, wbCELLAfterLoad});
-
- wbRecord(CLAS, 'Class', [
- wbEDID,
- wbFULLReq,
- wbDESCReq,
- wbICON,
- wbPRPS,
- wbStruct(DATA, 'Data', [
- wbByteArray('Unknown', 4),
- wbFloat('Bleedout Default')
- ])
- ]);
-
- wbRecord(CLMT, 'Climate', [
- wbEDID,
- wbArrayS(WLST, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR, NULL]),
- wbInteger('Chance', itS32),
- wbFormIDCk('Global', [GLOB, NULL])
- ])),
- wbString(FNAM, 'Sun Texture'),
- wbString(GNAM, 'Sun Glare Texture'),
- wbMODL,
- wbStruct(TNAM, 'Timing', [
- wbStruct('Sunrise', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbStruct('Sunset', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbInteger('Volatility', itU8),
- wbInteger('Moons / Phase Length', itU8, wbClmtMoonsPhaseLength)
- ], cpNormal, True)
- ]);
-
- wbRecord(SPGD, 'Shader Particle Geometry', [
- wbEDID,
- wbStruct(DATA, 'Data', [
- wbFloat('Gravity Velocity'),
- wbByteArray('Unknown', 4),
- wbFloat('Rotation Velocity'),
- wbByteArray('Unknown', 4),
- wbFloat('Particle Size X'),
- wbFloat('Center Offset Min'),
- wbFloat('Particle Size Y'),
- wbByteArray('Unknown', 4),
- wbFloat('Center Offset Min'),
- wbByteArray('Unknown', 4),
- wbFloat('Center Offset Max'),
- wbByteArray('Unknown', 4),
- wbFloat('Initial Rotation'),
- wbByteArray('Unknown', 4),
- wbInteger('# of Subtextures X', itU32),
- wbByteArray('Unknown', 4),
- wbInteger('# of Subtextures Y', itU32),
- wbByteArray('Unknown', 4),
- wbInteger('Type', itU32, wbEnum([
- 'Rain',
- 'Snow'
- ])),
- wbByteArray('Unknown', 4),
- wbInteger('Box Size', itU32),
- wbByteArray('Unknown', 4),
- wbFloat('Particle Density'),
- wbUnknown
- ], cpNormal, True, nil, 10),
- wbString(MNAM, 'Particle Texture')
- ]);
-
- wbRecord(RFCT, 'Visual Effect', [
- wbEDID,
- wbStruct(DATA, 'Effect Data', [
- wbFormIDCK('Effect Art', [ARTO, NULL]),
- wbFormIDCK('Shader', [EFSH, NULL]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Rotate to Face Target',
- {0x00000002} 'Attach to Camera',
- {0x00000004} 'Inherit Rotation'
- ]))
- ], cpNormal, True)
- ]);
-
- wbRecord(CONT, 'Container',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00008000} 15, 'Has Distant LOD',
- {0x00010000} 16, 'Random Anim Start',
- {0x02000000} 25, 'Obstacle',
- {0x04000000} 26, 'NavMesh Generation - Filter',
- {0x08000000} 27, 'NavMesh Generation - Bounding Box',
- {0x40000000} 30, 'NavMesh Generation - Ground'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbCOCT,
- wbCNTOs,
- wbDEST,
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Allow Sounds When Animation',
- {0x02} 'Respawns',
- {0x04} 'Show Owner'
- ])),
- wbFloat('Weight')
- ], cpNormal, True),
- wbKSIZ,
- wbKWDAs,
- wbFTYP,
- wbPRPS,
- wbNTRM,
- wbFormIDCk(SNAM, 'Sound - Open', [SNDR]),
- wbFormIDCk(QNAM, 'Sound - Close', [SNDR]),
- wbFormIDCk(TNAM, 'Sound - Take All', [SNDR]),
- wbFormIDCk(ONAM, 'Filter List', [FLST])
- ], True, nil, cpNormal, False, nil, wbContainerAfterSet);
-
- wbAIDT :=
- wbStruct(AIDT, 'AI Data', [
- {00} wbInteger('Aggression', itU8, wbEnum([
- 'Unaggressive',
- 'Aggressive',
- 'Very Aggressive',
- 'Frenzied'
- ])),
- {01} wbInteger('Confidence', itU8, wbEnum([
- 'Cowardly',
- 'Cautious',
- 'Average',
- 'Brave',
- 'Foolhardy'
- ])),
- {02} wbInteger('Energy Level', itU8),
- {03} wbInteger('Responsibility', itU8, wbEnum([
- 'Any crime',
- 'Violence against enemies',
- 'Property crime only',
- 'No crime'
- ])),
- {04} wbInteger('Mood', itU8, wbEnum([
- 'Neutral',
- 'Angry',
- 'Fear',
- 'Happy',
- 'Sad',
- 'Surprised',
- 'Puzzled',
- 'Disgusted'
- ])),
- wbInteger('Assistance', itU8, wbEnum([
- 'Helps Nobody',
- 'Helps Allies',
- 'Helps Friends and Allies'
- ])),
- wbStruct('Aggro', [
- wbInteger('Aggro Radius Behavior', itU8, wbBoolEnum),
- wbInteger('Unknown', itU8),
- wbInteger('Warn', itU32),
- wbInteger('Warn/Attack', itU32),
- wbInteger('Attack', itU32)
- ]),
- wbByteArray('Unknown', 4)
- ], cpNormal, True, nil{wbActorTemplateUseAIData});
-
- wbRecord(CSTY, 'Combat Style',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00080000} 19, 'Allow Dual Wielding'
- ])), [
- wbEDID,
- wbStruct(CSGD, 'General', [
- wbFloat('Offensive Mult'),
- wbFloat('Defensive Mult'),
- wbFloat('Group Offensive Mult'),
- wbFloat('Equipment Score Mult - Melee'),
- wbFloat('Equipment Score Mult - Magic'),
- wbFloat('Equipment Score Mult - Ranged'),
- wbFloat('Equipment Score Mult - Shout'),
- wbFloat('Equipment Score Mult - Unarmed'),
- wbFloat('Equipment Score Mult - Staff'),
- wbFloat('Avoid Threat Chance'),
- wbFloat('Dodge Threat Chance'),
- wbFloat('Evade Threat Chance')
- ], cpNormal, True),
- wbUnknown(CSMD, cpIgnore),
- wbStruct(CSME, 'Melee', [
- wbFloat('Attack Staggered Mult'),
- wbFloat('Power Attack Staggered Mult'),
- wbFloat('Power Attack Blocking Mult'),
- wbFloat('Bash Mult'),
- wbFloat('Bash Recoil Mult'),
- wbFloat('Bash Attack Mult'),
- wbFloat('Bash Power Attack Mult'),
- wbFloat('Special Attack Mult'),
- wbFloat('Block When Staggered Mult'),
- wbFloat('Attack When Staggered Mult')
- ], cpNormal, True, nil, 9),
- wbFloat(CSRA, 'Ranged Accuracy Mult', cpNormal, True),
- wbStruct(CSCR, 'Close Range', [
- wbFloat('Dueling - Circle Mult'),
- wbFloat('Dueling - Fallback Mult'),
- wbFloat('Flanking - Flank Distance'),
- wbFloat('Flanking - Stalk Time'),
- wbFloat('Charging - Charge Distance'),
- wbFloat('Charging - Throw Probability'),
- wbFloat('Charging - Sprint Fast Probability'),
- wbFloat('Charging - Sideswipe Probability'),
- wbFloat('Charging - Disengane Probability'),
- wbInteger('Charging - Throw Max Targets', itU32),
- wbFloat('Flanking - Flank Variance')
- ], cpNormal, True),
- wbStruct(CSLR, 'Long Range', [
- wbFloat('Strafe Mult'),
- wbFloat('Adjust Range Mult'),
- wbFloat('Crouch Mult'),
- wbFloat('Wait Mult'),
- wbFloat('Range Mult')
- ], cpNormal, True, nil, 3),
- wbFloat(CSCV, 'Cover Search Distance Mult', cpNormal, True),
- wbStruct(CSFL, 'Flight', [
- wbFloat('Hover Chance'),
- wbFloat('Dive Bomb Chance'),
- wbFloat('Ground Attack Chance'),
- wbFloat('Hover Time'),
- wbFloat('Ground Attack Time'),
- wbFloat('Perch Attack Chance'),
- wbFloat('Perch Attack Time'),
- wbFloat('Flying Attack Chance')
- ], cpNormal, True),
- wbInteger(DATA, 'Flags', itU32, wbFlags([
- {0x01} 'Dueling',
- {0x02} 'Flanking',
- {0x04} 'Allow Dual Wielding',
- {0x08} 'Charging',
- {0x10} 'Retarget Any Nearby Melee Target',
- {0x20} 'Unknown 5'
- ]), cpNormal, True)
- ]);
-end;
-
-procedure DefineFO4d;
-begin
- wbRecord(DIAL, 'Dialog Topic', [
- wbEDID,
- wbFULL,
- wbFloat(PNAM, 'Priority', cpNormal, True, 1, -1, nil, nil, 50.0),
- wbFormIDCk(BNAM, 'Branch', [DLBR]),
- wbFormIDCk(QNAM, 'Quest', [QUST], False, cpNormal, False),
- wbFormIDCk(KNAM, 'Keyword', [KYWD]),
- wbStruct(DATA, 'Data', [
- // this should not be named Flags since TwbFile.BuildReachable
- // expects Top-Level flag here from FNV
- wbInteger('Topic Flags', itU8, wbFlags([
- 'Do All Before Repeating',
- 'Unknown 1',
- 'Unknown 2'
- ]), cpNormal, True),
- wbInteger('Category', itU8, wbEnum([
- {0} 'Player',
- {1} 'Command',
- {2} 'Scene',
- {3} 'Combat',
- {4} 'Favor',
- {5} 'Detection',
- {6} 'Service',
- {7} 'Miscellaneous'
- ])),
- wbInteger('Subtype', itU16, wbEnum([
- { 0} 'Custom',
- { 1} 'ForceGreet',
- { 2} 'Rumors',
- { 3} 'Custom',
- { 4} 'Call',
- { 5} 'Follow',
- { 6} 'Move',
- { 7} 'Attack',
- { 8} 'Inspect',
- { 9} 'Retrieve',
- {10} 'Stay',
- {11} 'Release',
- {12} 'ShowRelationships',
- {13} 'Reject',
- {14} 'Heal',
- {15} 'Assign',
- {16} 'Enter',
- {17} 'Custom',
- {18} 'Show',
- {19} 'Agree',
- {20} 'Refuse',
- {21} 'ExitFavorState',
- {22} 'MoralRefusal',
- {23} 'Trade',
- {24} 'PathingRefusal',
- {25} 'Attack',
- {26} 'PowerAttack',
- {27} 'Bash',
- {28} 'Hit',
- {29} 'Flee',
- {30} 'BleedOut',
- {31} 'AvoidThreat',
- {32} 'Death',
- {33} 'Block',
- {34} 'Taunt',
- {35} 'ThrowGrenade',
- {36} 'AllyKilled',
- {37} 'OrderFallback',
- {38} 'OrderMoveUp',
- {39} 'OrderFlank',
- {40} 'OrderTakeCover',
- {41} 'Retreat',
- {42} 'CoverMe',
- {43} 'SuppressiveFire',
- {44} 'CrippledLimb',
- {45} 'PairedAttack',
- {46} 'Steal',
- {47} 'Yield',
- {48} 'AcceptYield',
- {49} 'PickpocketCombat',
- {50} 'Assault',
- {51} 'Murder',
- {52} 'AssaultNC',
- {53} 'MurderNC',
- {54} 'PickpocketNC',
- {55} 'StealFromNC',
- {56} 'TrespassAgainstNC',
- {57} 'Trespass',
- {58} 'UNUSED01',
- {59} 'VoicePowerStartShort',
- {60} 'VoicePowerStartLong',
- {61} 'VoicePowerEndShort',
- {62} 'VoicePowerEndLong',
- {63} 'AlertIdle',
- {64} 'LostIdle',
- {65} 'NormalToAlert',
- {66} 'NormalToCombat',
- {67} 'NormalToLost',
- {68} 'AlertToNormal',
- {69} 'AlertToCombat',
- {70} 'CombatToNormal',
- {71} 'CombatToLost',
- {72} 'LostToNormal',
- {73} 'LostToCombat',
- {74} 'DetectFriendDie',
- {75} 'ServiceRefusal',
- {76} 'Repair',
- {77} 'Travel',
- {78} 'Training',
- {79} 'BarterExit',
- {80} 'RepairExit',
- {81} 'Recharge',
- {82} 'RechargeExit',
- {83} 'TrainingExit',
- {84} 'ObserveCombat',
- {85} 'NoticeCorpse',
- {86} 'TimeToGo',
- {87} 'Goodbye',
- {88} 'Hello',
- {89} 'SwingMeleeWeapon',
- {90} 'ShootBow',
- {91} 'ZKeyObject',
- {92} 'Jump',
- {93} 'KnockOverObject',
- {94} 'DestroyObject',
- {95} 'StandonFurniture',
- {96} 'LockedObject',
- {97} 'PickpocketTopic',
- {98} 'PursueIdleTopic',
- {99} 'SharedInfo',
- {100} 'SceneChoice',
- {101} 'PlayerCastProjectileSpell',
- {102} 'PlayerCastSelfSpell',
- {103} 'PlayerShout',
- {104} 'Idle',
- {105} 'EnterSprintBreath',
- {106} 'EnterBowZoomBreath',
- {107} 'ExitBowZoomBreath',
- {108} 'ActorCollidewithActor',
- {109} 'PlayerinIronSights',
- {110} 'OutofBreath',
- {111} 'CombatGrunt',
- {112} 'LeaveWaterBreath',
- {113} 'ImpatientPostitive',
- {114} 'ImpatientNegative',
- {115} 'ImpatientNeutral',
- {116} 'ImpatientQuestion',
- {117} 'WaitingForPlayerInput',
- {118} 'Greeting',
- {119} 'PlayerActivateDoor',
- {120} 'PlayerActivateTerminals',
- {121} 'PlayerActivateFurniture',
- {122} 'PlayerActivateActivators',
- {123} 'PlayerActivateContainer',
- {124} 'PlayerAquireFeaturedItem'
- ]))
- ]),
- wbString(SNAM, 'Subtype Name', 4),
- wbInteger(TIFC, 'Info Count', itU32, nil, cpBenign)
- ]);
-
- wbRecord(DOOR, 'Door',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000010} 4, 'Non Occluder',
- {0x00008000} 15, 'Has Distant LOD',
- {0x00010000} 16, 'Random Anim Start',
- {0x00800000} 23, 'Is Marker'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbDEST,
- wbKSIZ,
- wbKWDAs,
- wbNTRM,
- wbFormIDCk(SNAM, 'Sound - Open', [SNDR]),
- wbFormIDCk(ANAM, 'Sound - Close', [SNDR]),
- wbFormIDCk(BNAM, 'Sound - Loop', [SNDR]),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- '',
- 'Automatic',
- 'Hidden',
- 'Minimal Use',
- 'Sliding',
- 'Do Not Open in Combat Search',
- 'No "To" Text'
- ]), cpNormal, True),
- wbLStringKC(ONAM, 'Alternate Text - Open', 0, cpTranslate),
- wbLStringKC(CNAM, 'Alternate Text - Close', 0, cpTranslate)
- ]);
-
- wbBlendModeEnum := wbEnum([
- '',
- 'Zero',
- 'One',
- 'Source Color',
- 'Source Inverse Color',
- 'Source Alpha',
- 'Source Inverted Alpha',
- 'Dest Alpha',
- 'Dest Inverted Alpha',
- 'Dest Color',
- 'Dest Inverse Color',
- 'Source Alpha SAT'
- ]);
-
- wbBlendOpEnum := wbEnum([
- '',
- 'Add',
- 'Subtract',
- 'Reverse Subtract',
- 'Minimum',
- 'Maximum'
- ]);
-
- wbZTestFuncEnum := wbEnum([
- '',
- '',
- '',
- 'Equal To',
- '',
- 'Greater Than',
- '',
- 'Greater Than or Equal To'
- ]);
-
- wbRecord(EFSH, 'Effect Shader', [
- wbEDID,
- wbString(ICON, 'Fill Texture'),
- wbString(ICO2, 'Particle Shader Texture'),
- wbString(NAM7, 'Holes Texture'),
- wbString(NAM8, 'Membrane Palette Texture'),
- wbString(NAM9, 'Particle Palette Texture'),
- wbUnknown(DATA), // if form version < 62, ignored otherwise
- // format depends on Form Version (appear with form version 62, changed in form version 106), different for older records starting from the first field
- wbUnion(DNAM, '', wbEFSHFormatDecider, [
- wbStruct('Data', [
- wbInteger('Membrane Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Membrane Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Membrane Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbByteColors('Fill/Texture Effect - Color Key 1'),
- wbFloat('Fill/Texture Effect - Alpha Fade In Time'),
- wbFloat('Fill/Texture Effect - Full Alpha Time'),
- wbFloat('Fill/Texture Effect - Alpha Fade Out Time'),
- wbFloat('Fill/Texture Effect - Presistent Alpha Ratio'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Amplitude'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Frequency'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (U)'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (V)'),
- wbFloat('Edge Effect - Fall Off'),
- wbByteColors('Edge Effect - Color'),
- wbFloat('Edge Effect - Alpha Fade In Time'),
- wbFloat('Edge Effect - Full Alpha Time'),
- wbFloat('Edge Effect - Alpha Fade Out Time'),
- wbFloat('Edge Effect - Persistent Alpha Ratio'),
- wbFloat('Edge Effect - Alpha Pulse Amplitude'),
- wbFloat('Edge Effect - Alpha Pulse Frequency'),
- wbFloat('Fill/Texture Effect - Full Alpha Ratio'),
- wbFloat('Edge Effect - Full Alpha Ratio'),
- wbInteger('Membrane Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbFloat('Holes Animation - Start Time'),
- wbFloat('Holes Animation - End Time'),
- wbFloat('Holes Animation - Start Value'),
- wbFloat('Holes Animation - End Value'),
- wbFormIDCk('Ambient Sound', [SNDR, NULL]),
- wbByteColors('Fill/Texture Effect - Color Key 2'),
- wbByteColors('Fill/Texture Effect - Color Key 3'),
- wbInteger('Unknown', itU8),
- wbStruct('Fill/Texture Effect - Color Key Scale/Time', [
- wbFloat('Color Key 1 - Scale'),
- wbFloat('Color Key 2 - Scale'),
- wbFloat('Color Key 3 - Scale'),
- wbFloat('Color Key 1 - Time'),
- wbFloat('Color Key 2 - Time'),
- wbFloat('Color Key 3 - Time')
- ]),
- wbInteger('Flags', itU32, wbFlags([
- 'No Membrane Shader',
- 'Membrane Grayscale Color',
- 'Membrane Grayscale Alpha',
- 'No Particle Shader',
- 'Edge Effect - Inverse',
- 'Affect Skin Only',
- 'Texture Effect - Ignore Alpha',
- 'Texture Effect - Project UVs',
- 'Ignore Base Geometry Alpha',
- 'Texture Effect - Lighting',
- 'Texture Effect - No Weapons',
- 'Use Alpha Sorting',
- 'Prefer Dismembered Limbs',
- 'Unknown 13',
- 'Unknown 14',
- 'Particle Animated',
- 'Particle Grayscale Color',
- 'Particle Grayscale Alpha',
- 'Unknown 18',
- 'Unknown 19',
- 'Unknown 20',
- 'Unknown 21',
- 'Unknown 22',
- 'Unknown 23',
- 'Use Blood Geometry (Weapons Only)'
- ])),
- wbFloat('Fill/Texture Effect - Texture Scale (U)'),
- wbFloat('Fill/Texture Effect - Texture Scale (V)')
- ]),
- wbStruct('Data (old format)', [
- wbByteArray('Unknown', 1),
- wbInteger('Membrane Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Membrane Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Membrane Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbByteColors('Fill/Texture Effect - Color Key 1'),
- wbFloat('Fill/Texture Effect - Alpha Fade In Time'),
- wbFloat('Fill/Texture Effect - Full Alpha Time'),
- wbFloat('Fill/Texture Effect - Alpha Fade Out Time'),
- wbFloat('Fill/Texture Effect - Presistent Alpha Ratio'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Amplitude'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Frequency'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (U)'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (V)'),
- wbFloat('Edge Effect - Fall Off'),
- wbByteColors('Edge Effect - Color'),
- wbFloat('Edge Effect - Alpha Fade In Time'),
- wbFloat('Edge Effect - Full Alpha Time'),
- wbFloat('Edge Effect - Alpha Fade Out Time'),
- wbFloat('Edge Effect - Persistent Alpha Ratio'),
- wbFloat('Edge Effect - Alpha Pulse Amplitude'),
- wbFloat('Edge Effect - Alpha Pulse Frequency'),
- wbFloat('Fill/Texture Effect - Full Alpha Ratio'),
- wbFloat('Edge Effect - Full Alpha Ratio'),
- wbInteger('Membrane Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Particle Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbInteger('Particle Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbFloat('Particle Shader - Particle Birth Ramp Up Time'),
- wbFloat('Particle Shader - Full Particle Birth Time'),
- wbFloat('Particle Shader - Particle Birth Ramp Down Time'),
- wbFloat('Particle Shader - Full Particle Birth Ratio'),
- wbFloat('Particle Shader - Persistant Particle Count'),
- wbFloat('Particle Shader - Particle Lifetime'),
- wbFloat('Particle Shader - Particle Lifetime +/-'),
- wbFloat('Particle Shader - Initial Speed Along Normal'),
- wbFloat('Particle Shader - Acceleration Along Normal'),
- wbFloat('Particle Shader - Initial Velocity #1'),
- wbFloat('Particle Shader - Initial Velocity #2'),
- wbFloat('Particle Shader - Initial Velocity #3'),
- wbFloat('Particle Shader - Acceleration #1'),
- wbFloat('Particle Shader - Acceleration #2'),
- wbFloat('Particle Shader - Acceleration #3'),
- wbFloat('Particle Shader - Scale Key 1'),
- wbFloat('Particle Shader - Scale Key 2'),
- wbFloat('Particle Shader - Scale Key 1 Time'),
- wbFloat('Particle Shader - Scale Key 2 Time'),
- wbByteColors('Color Key 1 - Color'),
- wbByteColors('Color Key 2 - Color'),
- wbByteColors('Color Key 3 - Color'),
- wbFloat('Color Key 1 - Color Alpha'),
- wbFloat('Color Key 2 - Color Alpha'),
- wbFloat('Color Key 3 - Color Alpha'),
- wbFloat('Color Key 1 - Color Key Time'),
- wbFloat('Color Key 2 - Color Key Time'),
- wbFloat('Color Key 3 - Color Key Time'),
- wbFloat('Particle Shader - Initial Speed Along Normal +/-'),
- wbFloat('Particle Shader - Initial Rotation (deg)'),
- wbFloat('Particle Shader - Initial Rotation (deg) +/-'),
- wbFloat('Particle Shader - Rotation Speed (deg/sec)'),
- wbFloat('Particle Shader - Rotation Speed (deg/sec) +/-'),
- wbFormIDCk('Addon Models', [DEBR, NULL]),
- wbFloat('Holes - Start Time'),
- wbFloat('Holes - End Time'),
- wbFloat('Holes - Start Val'),
- wbFloat('Holes - End Val'),
- wbFloat('Edge Width (alpha units)'),
- wbByteColors('Edge Color'),
- wbFloat('Explosion Wind Speed'),
- wbInteger('Texture Count U', itU32),
- wbInteger('Texture Count V', itU32),
- wbFloat('Addon Models - Fade In Time'),
- wbFloat('Addon Models - Fade Out Time'),
- wbFloat('Addon Models - Scale Start'),
- wbFloat('Addon Models - Scale End'),
- wbFloat('Addon Models - Scale In Time'),
- wbFloat('Addon Models - Scale Out Time'),
- wbFormIDCk('Ambient Sound', [SNDR, NULL]),
- wbByteColors('Fill/Texture Effect - Color Key 2'),
- wbByteColors('Fill/Texture Effect - Color Key 3'),
- wbStruct('Fill/Texture Effect - Color Key Scale/Time', [
- wbFloat('Color Key 1 - Scale'),
- wbFloat('Color Key 2 - Scale'),
- wbFloat('Color Key 3 - Scale'),
- wbFloat('Color Key 1 - Time'),
- wbFloat('Color Key 2 - Time'),
- wbFloat('Color Key 3 - Time')
- ]),
- wbFloat('Color Scale'),
- wbFloat('Birth Position Offset'),
- wbFloat('Birth Position Offset Range +/-'),
- wbStruct('Particle Shader Animated', [
- wbInteger('Start Frame', itU32),
- wbInteger('Start Frame Variation', itU32),
- wbInteger('End Frame', itU32),
- wbInteger('Loop Start Frame', itU32),
- wbInteger('Loop Start Variation', itU32),
- wbInteger('Frame Count', itU32),
- wbInteger('Frame Count Variation', itU32)
- ]),
- wbInteger('Flags', itU32, wbFlags([
- 'No Membrane Shader',
- 'Membrane Grayscale Color',
- 'Membrane Grayscale Alpha',
- 'No Particle Shader',
- 'Edge Effect Inverse',
- 'Affect Skin Only',
- 'Ignore Alpha',
- 'Project UVs',
- 'Ignore Base Geometry Alpha',
- 'Lighting',
- 'No Weapons',
- 'Unknown 11',
- 'Unknown 12',
- 'Unknown 13',
- 'Unknown 14',
- 'Particle Animated',
- 'Particle Grayscale Color',
- 'Particle Grayscale Alpha',
- 'Unknown 18',
- 'Unknown 19',
- 'Unknown 20',
- 'Unknown 21',
- 'Unknown 22',
- 'Unknown 23',
- 'Use Blood Geometry'
- ])),
- wbFloat('Fill/Texture Effect - Texture Scale (U)'),
- wbFloat('Fill/Texture Effect - Texture Scale (V)'),
- wbInteger('Scene Graph Emit Depth Limit (unused)', itU16)
- ])
- ], cpNormal, True),
- wbMODL
- ]);
-
- wbRecord(ENCH, 'Object Effect', [
- wbEDID,
- wbOBNDReq,
- wbFULL,
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Enchantment Cost', itS32),
- wbInteger('Flags', itU32, wbFlags([
- 'No Auto-Calc',
- '',
- 'Extend Duration On Recast'
- ])),
- wbInteger('Cast Type', itU32, wbCastEnum),
- wbInteger('Enchantment Amount', itS32),
- wbInteger('Target Type', itU32, wbTargetEnum),
- wbInteger('Enchant Type', itU32, wbEnum([], [
- $06, 'Enchantment',
- $0C, 'Staff Enchantment'
- ])),
- wbFloat('Charge Time'),
- wbFormIDCk('Base Enchantment', [ENCH, NULL]),
- wbFormIDCk('Worn Restrictions', [FLST, NULL])
- ], cpNormal, True, nil, 8),
- wbEffectsReq
- ]);
-
- {wbRecord(EYES, 'Eyes', [
- wbEDID
- ]);}
-
- wbRecord(FACT, 'Faction', [
- wbEDID,
- wbFULL,
- wbRArrayS('Relations',
- wbStructSK(XNAM, [0], 'Relation', [
- wbFormIDCkNoReach('Faction', [FACT, RACE]),
- wbInteger('Modifier', itS32),
- wbInteger('Group Combat Reaction', itU32, wbEnum([
- {0x00000001} 'Neutral',
- {0x00000002} 'Enemy',
- {0x00000004} 'Ally',
- {0x00000008} 'Friend'
- ]))
- ])),
- wbStruct(DATA, 'Flags', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Hidden From NPC',
- {0x00000002} 'Special Combat',
- {0x00000004} 'Unknown 3',
- {0x00000008} 'Unknown 4',
- {0x00000010} 'Unknown 5',
- {0x00000020} 'Unknown 6',
- {0x00000040} 'Track Crime',
- {0x00000080} 'Ignore Crimes: Murder',
- {0x00000100} 'Ignore Crimes: Assault',
- {0x00000200} 'Ignore Crimes: Stealing',
- {0x00000400} 'Ignore Crimes: Trespass',
- {0x00000800} 'Do Not Report Crimes Against Members',
- {0x00001000} 'Crime Gold - Use Defaults',
- {0x00002000} 'Ignore Crimes: Pickpocket',
- {0x00004000} 'Vendor',
- {0x00008000} 'Can Be Owner',
- {0x00010000} 'Ignore Crimes: Werewolf (unused)'
- ]))
- ], cpNormal, True, nil, 1),
- wbFormIDCk(JAIL, 'Exterior Jail Marker', [REFR]),
- wbFormIDCk(WAIT, 'Follower Wait Marker', [REFR]),
- wbFormIDCk(STOL, 'Stolen Goods Container', [REFR]),
- wbFormIDCk(PLCN, 'Player Inventory Container', [REFR]),
- wbFormIDCk(CRGR, 'Shared Crime Faction List', [FLST]),
- wbFormIDCk(JOUT, 'Jail Outfit', [OTFT]),
- wbStruct(CRVA, 'Crime Values', [
- wbInteger('Arrest', itU8, wbBoolEnum),
- wbInteger('Attack On Sight', itU8, wbBoolEnum),
- wbInteger('Murder', itU16),
- wbInteger('Assault', itU16),
- wbInteger('Trespass', itU16),
- wbInteger('Pickpocket', itU16),
- wbInteger('Unknown', itU16),
- wbFloat('Steal Multiplier'),
- wbInteger('Escape', itU16),
- wbInteger('Werewolf (unused)', itU16)
- ], cpNormal, False, nil, 7),
- wbRStructsSK('Ranks', 'Rank', [0], [
- wbInteger(RNAM, 'Rank#', itU32),
- wbLString(MNAM, 'Male Title', 0, cpTranslate),
- wbLString(FNAM, 'Female Title', 0, cpTranslate),
- wbString(INAM, 'Insignia (unused)')
- ], []),
- wbFormIDCk(VEND, 'Vendor Buy/Sell List', [FLST]),
- wbFormIDCk(VENC, 'Merchant Container', [REFR]),
- wbStruct(VENV, 'Vendor Values', [
- wbInteger('Start Hour', itU16),
- wbInteger('End Hour', itU16),
- wbInteger('Radius', itU16),
- wbByteArray('Unknown 1', 2),
- wbInteger('Buys Stolen Items', itU8, wbBoolEnum),
- wbInteger('Buy/Sell Everything Not In List?', itU8, wbBoolEnum),
- wbInteger('Buys NonStolen Items', itU8, wbBoolEnum),
- wbInteger('Unknown', itU8)
- ]),
- wbPLVD,
- wbCITC,
- wbCTDAsCount
- ], False, nil, cpNormal, False, nil {wbFACTAfterLoad}, wbConditionsAfterSet);
-
- wbRecord(FURN, 'Furniture',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Unknown 2',
- {0x00000010} 4, 'Unknown 4',
- {0x00000080} 7, 'Is Perch',
- {0x00002000} 13, 'Unknown 13',
- {0x00008000} 15, 'Has Distant LOD',
- {0x00010000} 16, 'Random Anim Start',
- {0x00800000} 23, 'Is Marker',
- {0x02000000} 25, 'Power Armor',
- {0x10000000} 28, 'Must Exit To Talk',
- {0x20000000} 29, 'Child Can Use'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbDEST,
- wbKSIZ,
- wbKWDAs,
- wbPRPS,
- wbNTRM,
- wbFTYP,
- wbUnknown(PNAM),
- wbFormIDCk(WNAM, 'Drinking Water Type', [WATR]),
- wbATTX,
- wbInteger(FNAM, 'Flags', itU16, wbFlags([
- {0x0001} 'Unknown 0',
- {0x0002} 'Ignored By Sandbox'
- ])),
- wbCITC,
- wbCTDAsCount,
- wbCOCT,
- wbCNTOs,
- wbMNAMFurnitureMarker,
- wbStruct(WBDT, 'Workbench Data', [
- wbInteger('Bench Type', itU8, wbEnum([
- {0} 'None',
- {1} 'Create Object', // used only for MS11Workbench [FURN:00091FD5]
- {2} 'Weapons', // used for the Weapons (plural) workbench
- {3} 'Enchanting (unused)', // not used
- {4} 'Enchanting Experiment (unused)', // not used
- {5} 'Alchemy', // used for Chemistry and Cooking, so Alchemy is probably okay
- {6} 'Alchemy Experiment (unused)', // not used
- {7} 'Armor', // FO4 calls this the Armor workbench, no mention of Smithing
- {8} 'Power Armor', // used for Power Armor stations
- {9} 'Robot Mod' // used for Robot stations
- ])),
- wbInteger('Uses Skill', itS8, wbSkillEnum)
- ], cpNormal, True, nil, 1),
- wbFormIDCk(NAM1, 'Associated Form', [ARMO, WEAP, PERK, SPEL, HAZD]),
- wbRArray('Markers', wbRStruct('Marker', [
- wbInteger(ENAM, 'Marker Index', itS32),
- wbStruct(NAM0, 'Disabled Entry Points', [
- wbByteArray('Unknown', 2),
- wbInteger('Disabled Points', itU16, wbFurnitureEntryTypeFlags)
- ])
- //wbFormIDCk(FNMK, 'Marker Keyword', [KYWD, NULL])
- ], [])),
- wbRArray('Marker Entry Points', wbStruct(FNPR, 'Marker', [
- wbInteger('Type', itU16, wbFurnitureAnimTypeEnum),
- wbInteger('Entry Points', itU16, wbFurnitureEntryTypeFlags)
- ])),
- wbString(XMRK, 'Marker Model'),
- wbSNAMMarkerParams,
- wbNVNM,
- wbAPPR,
- wbObjectTemplate
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
- wbRecord(GLOB, 'Global',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000040} 6, 'Constant'
- ])), [
- wbEDID,
- wbInteger(FNAM, 'Type', itU8, wbEnum([], [
- 0, 'Unknown 0',
- Ord('s'), 'Short',
- Ord('l'), 'Long',
- Ord('f'), 'Float',
- Ord('b'), 'Boolean'
- ]), cpNormal, True),
- wbFloat(FLTV, 'Value', cpNormal, True)
- ]);
-
- wbRecord(GMST, 'Game Setting', [
- wbString(EDID, 'Editor ID', 0, cpCritical, True, nil, wbGMSTEDIDAfterSet),
- wbUnion(DATA, 'Value', wbGMSTUnionDecider, [
- wbLString('Name', 0, cpTranslate),
- wbInteger('Int', itS32),
- wbFloat('Float'),
- wbInteger('Bool', itU32, wbBoolEnum)
- ], cpNormal, True)
- ]);
-
- wbRecord(KYWD, 'Keyword',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00080000} {15} 15, 'Restricted'
- ])), [
- wbEDID,
- wbCNAM,
- wbString(DNAM, 'Notes'),
- wbInteger(TNAM, 'Type', itU32, wbKeywordTypeEnum),
- wbFormIDCk(DATA, 'Attraction Rule', [AORU]),
- wbFULL,
- wbString(NNAM, 'Display Name') {Legacy record replaced with FULL}
- ]);
-end;
-
-procedure DefineFO4e;
-begin
- wbRecord(LCRT, 'Location Reference Type', [
- wbEDID,
- wbCNAM,
- wbUnknown(TNAM)
- ]);
-
- wbRecord(AACT, 'Action',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00080000} {15} 15, 'Restricted'
- ])), [
- wbEDID,
- wbCNAM,
- wbString(DNAM, 'Notes'),
- wbInteger(TNAM, 'Type', itU32, wbKeywordTypeEnum),
- wbFormIDCk(DATA, 'Attraction Rule', [AORU]),
- wbFULL
- ]);
-
- wbRecord(TXST, 'Texture Set', [
- wbEDID,
- wbOBNDReq,
- wbRStruct('Textures (RGB/A)', [
- wbString(TX00, 'Difuse'),
- wbString(TX01, 'Normal/Gloss'),
- wbString(TX03, 'Glow'),
- wbString(TX04, 'Height'),
- wbString(TX05, 'Environment'),
- wbString(TX02, 'Wrinkles'), {TX05 TX02 TX06 Yes this has to go here}
- wbString(TX06, 'Multilayer'),
- wbString(TX07, 'Smooth Spec')
- ], []),
- wbDODT,
- wbInteger(DNAM, 'Flags', itU16, wbFlags([
- {0x0001} 'No Specular Map',
- {0x0002} 'Facegen Textures',
- {0x0004} 'Has Model Space Normal Map'
- ]), cpNormal, True),
- wbString(MNAM, 'Material')
- ]);
-
- wbRecord(HDPT, 'Head Part',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Non-Playable'
- ])), [
- wbEDID,
- wbFULL,
- wbMODL,
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Playable',
- {0x02} 'Male',
- {0x04} 'Female',
- {0x10} 'Is Extra Part',
- {0x20} 'Use Solid Tint',
- {0x40} 'Uses Body Texture'
- ]), cpNormal, True),
- wbInteger(PNAM, 'Type', itU32, wbEnum([
- 'Misc',
- 'Face',
- 'Eyes',
- 'Hair',
- 'Facial Hair',
- 'Scar',
- 'Eyebrows',
- 'Meatcaps',
- 'Teeth',
- 'Head Rear'
- ])),
- wbRArrayS('Extra Parts',
- wbFormIDCk(HNAM, 'Part', [HDPT])
- ),
- wbRStructs('Parts', 'Part', [
- wbInteger(NAM0, 'Part Type', itU32, wbEnum([
- 'Race Morph',
- 'Tri',
- 'Chargen Morph'
- ])),
- wbString(NAM1, 'Filename', 0, cpTranslate, True)
- ], []),
- wbFormIDCk(TNAM, 'Texture Set', [TXST]),
- wbFormIDCk(CNAM, 'Color', [CLFM]),
- wbFormIDCk(RNAM, 'Valid Races', [FLST]),
- wbCTDAs
- ]);
-
- wbRecord(ASPC, 'Acoustic Space', [
- wbEDID,
- wbOBNDReq,
- wbFormIDCk(SNAM, 'Looping Sound', [SNDR]),
- wbFormIDCk(RDAT, 'Use Sound from Region (Interiors Only)', [REGN]),
- wbFormIDCk(BNAM, 'Environment Type', [REVB]),
- wbInteger(XTRI, 'Is Interior', itU8, wbBoolEnum, cpNormal, True),
- wbInteger(WNAM, 'Weather Attenuation (dB)', itU16, wbDiv(100))
- ]);
-
- wbRecord(MSTT, 'Moveable Static',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000100} 8, 'Must Update Anims',
- {0x00000200} 9, 'Hidden From Local Map',
- {0x00000800} 11, 'Used As Platform',
- {0x00002000} 13, 'Pack-In Use Only',
- {0x00008000} 15, 'Has Distant LOD',
- {0x00010000} 16, 'Random Anim Start',
- {0x00080000} 19, 'Has Currents',
- {0x02000000} 25, 'Obstacle',
- {0x04000000} 26, 'NavMesh Generation - Filter',
- {0x08000000} 27, 'NavMesh Generation - Bounding Box',
- {0x40000000} 30, 'NavMesh Generation - Ground'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbDEST,
- wbKSIZ,
- wbKWDAs,
- wbPRPS,
- wbInteger(DATA, 'On Local Map', itU8, wbBoolEnum, cpNormal, True),
- wbFormIDCk(SNAM, 'Looping Sound', [SNDR])
- ]);
-end;
-
-procedure DefineFO4f;
-begin
- wbRecord(IDLM, 'Idle Marker',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x20000000} 29, 'Child Can Use'
- ])), [
- wbEDID,
- wbOBNDReq,
- wbKSIZ,
- wbKWDAs,
- wbInteger(IDLF, 'Flags', itU8, wbFlags([
- 'Run in Sequence',
- 'Unknown 1',
- 'Do Once',
- 'Unknown 3',
- 'Ignored by Sandbox'
- ]), cpNormal, False),
- wbInteger(IDLC, 'Animation Count', itU8, nil, cpBenign),
- wbFloat(IDLT, 'Idle Timer Setting', cpNormal, False),
- wbArray(IDLA, 'Animations', wbFormIDCk('Animation', [IDLE]), 0, nil, wbIDLAsAfterSet, cpNormal, False),
- wbFormIDCk(QNAM, 'Unknown', [KYWD]),
- wbMODL
- ], False, nil, cpNormal, False, nil, wbAnimationsAfterSet);
-
- wbRecord(PROJ, 'Projectile', [
- wbEDID,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbDEST,
- wbByteArray(DATA, 'Unused', 0, cpIgnore),
- wbStruct(DNAM, 'Data', [
- wbInteger('Flags', itU16, wbFlags([
- {0x00001} 'Hitscan',
- {0x00002} 'Explosion',
- {0x00004} 'Alt. Trigger',
- {0x00008} 'Muzzle Flash',
- {0x00010} 'Unknown 4',
- {0x00020} 'Can Be Disabled',
- {0x00040} 'Can Be Picked Up',
- {0x00080} 'Supersonic',
- {0x00100} 'Pins Limbs',
- {0x00200} 'Pass Through Small Transparent',
- {0x00400} 'Disable Combat Aim Correction',
- {0x00800} 'Penetrates Geometry',
- {0x01000} 'Continuous Update',
- {0x02000} 'Seeks Target'
- ])),
- wbInteger('Type', itU16, wbEnum([], [
- $01, 'Missile',
- $02, 'Lobber',
- $04, 'Beam',
- $08, 'Flame',
- $10, 'Cone',
- $20, 'Barrier',
- $40, 'Arrow'
- ])),
- wbFloat('Gravity'),
- wbFloat('Speed'),
- wbFloat('Range'),
- wbFormIDCk('Light', [LIGH, NULL]),
- wbFormIDCk('Muzzle Flash - Light', [LIGH, NULL]),
- wbFloat('Explosion - Alt. Trigger - Proximity'),
- wbFloat('Explosion - Alt. Trigger - Timer'),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbFormIDCk('Sound', [SNDR, NULL]),
- wbFloat('Muzzle Flash - Duration'),
- wbFloat('Fade Duration'),
- wbFloat('Impact Force'),
- wbFormIDCk('Sound - Countdown', [SNDR, NULL]),
- wbFormIDCk('Sound - Disable', [SNDR, NULL]),
- wbFormIDCk('Default Weapon Source', [WEAP, NULL]),
- wbFloat('Cone Spread'),
- wbFloat('Collision Radius'),
- wbFloat('Lifetime'),
- wbFloat('Relaunch Interval'),
- wbFormIDCk('Decal Data', [TXST, NULL]),
- wbFormIDCk('Collision Layer', [COLL, NULL]),
- wbInteger('Tracer Frequency', itU8),
- wbFormIDCk('VATS Projectile', [PROJ, NULL])
- ]),
- wbRStructSK([0], 'Muzzle Flash Model', [
- wbString(NAM1, 'Model Filename'),
- wbByteArray(NAM2, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow)
- ], [], cpNormal, True),
- wbInteger(VNAM, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True)
- ]);
-
- wbRecord(HAZD, 'Hazard', [
- wbEDID,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbFormIDCk(MNAM, 'Image Space Modifier', [IMAD, NULL]),
- wbStruct(DNAM, 'Data', [
- wbInteger('Limit', itU32),
- wbFloat('Radius'),
- wbFloat('Lifetime'),
- wbFloat('Image Space Radius'),
- wbFloat('Target Interval'),
- wbInteger('Flags', itU32, wbFlags([
- {0x01} 'Affects Player Only',
- {0x02} 'Inherit Duration from Spawn Spell',
- {0x04} 'Align to Impact Normal',
- {0x08} 'Inherit Radius from Spawn Spell',
- {0x10} 'Drop to Ground',
- {0x20} 'Taper Effectiveness by Proximity'
- ])),
- wbFormIDCk('Effect', [SPEL, ENCH, NULL]),
- wbFormIDCk('Light', [LIGH, NULL]),
- wbFormIDCk('Impact Data Set', [IPDS, NULL]),
- wbFormIDCk('Sound', [SNDR, NULL]),
- wbStruct('Taper Effectiveness', [
- wbFloat('Full Effect Radius'),
- wbFloat('Taper Weight'),
- wbFloat('Taper Curse')
- ])
- ])
- ]);
-
- wbSoulGemEnum := wbEnum([
- {0} 'None',
- {1} 'Petty',
- {2} 'Lesser',
- {3} 'Common',
- {4} 'Greater',
- {5} 'Grand'
- ]);
-
- {wbRecord(SLGM, 'Soul Gem', [
- wbEDID
- ]);}
-
- if wbSimpleRecords then begin
-
- wbRecord(NAVI, 'Navigation Mesh Info Map', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbRArray('Navigation Map Infos',
- wbStruct(NVMI, 'Navigation Map Info', [
- wbFormIDCk('Navigation Mesh', [NAVM]),
- wbByteArray('Data', 20),
- wbArray('Merged To', wbFormIDCk('Mesh', [NAVM]), -1),
- wbArray('Preferred Merges', wbFormIDCk('Mesh', [NAVM]), -1),
- wbArray('Linked Doors', wbStruct('Door', [
- wbByteArray('Unknown', 4),
- wbFormIDCk('Door Ref', [REFR])
- ]), -1),
- wbInteger('Is Island', itU8, wbBoolEnum),
- wbUnion('Island', wbNAVIIslandDataDecider, [
- wbNull,
- wbStruct('Island Data', [
- wbByteArray('Unknown', 24),
- wbArray('Triangles', wbByteArray('Triangle', 6), -1),
- wbArray('Vertices', wbByteArray('Vertex', 12), -1)
- ])
- ]),
- wbByteArray('Unknown', 4),
- wbFormIDCk('Parent Worldspace', [WRLD, NULL]),
- wbUnion('Parent', wbNAVIParentDecider, [
- wbStruct('Coordinates', [
- wbInteger('Grid Y', itS16),
- wbInteger('Grid X', itS16)
- ]),
- wbFormIDCk('Parent Cell', [CELL])
- ])
- ])
- ),
- wbStruct(NVPP, 'Preferred Pathing', [
- wbArray('NavMeshes', wbArray('Set', wbFormIDCk('', [NAVM]), -1), -1),
- wbArray('NavMesh Tree?', wbStruct('', [
- wbFormIDCk('NavMesh', [NAVM]),
- wbInteger('Index/Node', itU32)
- ]), -1)
- ]),
- //wbArray(NVSI, 'Unknown', wbFormIDCk('Navigation Mesh', [NAVM]))
- wbUnknown(NVSI)
- ]);
-
- wbRecord(NAVM, 'Navigation Mesh',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00040000} 18, 'Compressed',
- {0x04000000} 26, 'AutoGen',
- {0x80000000} 31, 'Unknown 31'
- ]), [18]), [
- wbEDID,
- wbNVNM,
-// wbStruct(NVNM, 'Geometry', [
-// wbByteArray('Unknown', 8),
-// wbFormIDCk('Parent Worldspace', [WRLD, NULL]),
-// wbUnion('Parent', wbNVNMParentDecider, [
-// wbStruct('Coordinates', [
-// wbInteger('Grid Y', itS16),
-// wbInteger('Grid X', itS16)
-// ]),
-// wbFormIDCk('Parent Cell', [CELL])
-// ]),
-// wbArray('Vertices', wbByteArray('Vertex', 12), -1),
-// wbArray('Triangles', wbByteArray('Triangle', 21), -1),
-// wbArray('Edge Links',
-// wbStruct('Edge Link', [
-// wbByteArray('Unknown', 4),
-// wbFormIDCk('Mesh', [NAVM]),
-// wbInteger('Triangle', itS16),
-// wbInteger('Unknown', itU8)
-// ])
-// , -1),
-// wbArray('Door Triangles',
-// wbStruct('Door Triangle', [
-// wbInteger('Triangle before door', itS16),
-// wbByteArray('Unknown', 4),
-// wbFormIDCk('Door', [REFR])
-// ])
-// , -1),
-// wbUnknown
-// ]),
- wbUnknown(ONAM),
- wbUnknown(NNAM),
- wbUnknown(MNAM)
- ], False, wbNAVMAddInfo);
-
- end else begin
-
- wbRecord(NAVI, 'Navigation Mesh Info Map', [
- wbEDID,
- wbInteger(NVER, 'Version', itU32),
- wbRArray('Navigation Map Infos',
- wbStruct(NVMI, 'Navigation Map Info', [
- wbFormIDCk('Navigation Mesh', [NAVM]),
- wbByteArray('Unknown', 4),
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z'),
- wbInteger('Preferred Merges Flag', itU32),
- wbArray('Merged To', wbFormIDCk('Mesh', [NAVM]), -1),
- wbArray('Preferred Merges', wbFormIDCk('Mesh', [NAVM]), -1),
- wbArray('Linked Doors', wbStruct('Door', [
- wbByteArray('Unknown', 4),
- wbFormIDCk('Door Ref', [REFR])
- ]), -1),
- wbInteger('Is Island', itU8, wbBoolEnum),
- wbUnion('Island', wbNAVIIslandDataDecider, [
- wbNull,
- wbStruct('Island Data', [
- wbFloat('Min X'),
- wbFloat('Min Y'),
- wbFloat('Min Z'),
- wbFloat('Max X'),
- wbFloat('Max Y'),
- wbFloat('Max Z'),
- wbArray('Triangles',
- wbStruct('Triangle', [
- wbArray('Vertices', wbInteger('Vertex', itS16), 3)
- ])
- , -1),
- wbArray('Vertices', wbStruct('Vertex', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]), -1)
- ])
- ]),
- wbByteArray('Unknown', 4),
- wbFormIDCk('Parent Worldspace', [WRLD, NULL]),
- wbUnion('Parent', wbNAVIParentDecider, [
- wbStruct('Coordinates', [
- wbInteger('Grid Y', itS16),
- wbInteger('Grid X', itS16)
- ]),
- wbFormIDCk('Parent Cell', [CELL])
- ])
- ])
- ),
- wbStruct(NVPP, 'Preferred Pathing', [
- wbArray('NavMeshes', wbArray('Set', wbFormIDCk('', [NAVM]), -1), -1),
- wbArray('NavMesh Tree?', wbStruct('', [
- wbFormIDCk('NavMesh', [NAVM]),
- wbInteger('Index/Node', itU32)
- ]), -1)
- ]),
- wbArray(NVSI, 'Unknown', wbFormIDCk('Navigation Mesh', [NAVM]))
- ]);
-
- wbRecord(NAVM, 'Navigation Mesh',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00040000} 18, 'Compressed',
- {0x04000000} 26, 'AutoGen'
- ]), [18]), [
- wbEDID,
- wbNVNM,
-// wbStruct(NVNM, 'Geometry', [
-// wbInteger('Unknown', itU32),
-// wbByteArray('Unknown', 4),
-// wbFormIDCk('Parent Worldspace', [WRLD, NULL]),
-// wbUnion('Parent', wbNVNMParentDecider, [
-// wbStruct('Coordinates', [
-// wbInteger('Grid Y', itS16),
-// wbInteger('Grid X', itS16)
-// ]),
-// wbFormIDCk('Parent Cell', [CELL])
-// ]),
-// wbArray('Vertices', wbStruct('Vertex', [
-// wbFloat('X'),
-// wbFloat('Y'),
-// wbFloat('Z')
-// ]), -1),
-// wbArray('Triangles',
-// wbStruct('Triangle', [
-// wbInteger('Vertex 0', itS16),
-// wbInteger('Vertex 1', itS16),
-// wbInteger('Vertex 2', itS16),
-// wbInteger('Edge 0-1', itS16),
-// wbInteger('Edge 1-2', itS16),
-// wbInteger('Edge 2-0', itS16),
-// wbFloat('Height'),
-// wbByteArray('Unknown', 5)
-// ])
-// , -1),
-// wbArray('Edge Links',
-// wbStruct('Edge Link', [
-// wbByteArray('Unknown', 4),
-// wbFormIDCk('Mesh', [NAVM]),
-// wbInteger('Triangle', itS16),
-// wbInteger('Unknown', itU8)
-// ])
-// , -1),
-// wbArray('Door Triangles',
-// wbStruct('Door Triangle', [
-// wbInteger('Triangle before door', itS16),
-// wbByteArray('Unknown', 4),
-// wbFormIDCk('Door', [REFR])
-// ])
-// , -1),
-// wbUnknown
-// ]),
- wbFormID(ONAM),
- wbArray(NNAM, 'Unknown', wbInteger('Unknown', itU16)),
- wbUnion(MNAM, 'Unknown', wbSubrecordSizeDecider, [wbNull,
- wbStruct('Unknown', [
- wbFormID('Unknown'),
- wbInteger('Unknown', itU16),
- wbInteger('Unused', itU16),
- wbUnknown
- ])
- ])
- ], False, wbNAVMAddInfo);
-
- end;
-
-end;
-
-procedure DefineFO4g;
-begin
-
- wbRecord(EXPL, 'Explosion', [
- wbEDID,
- wbOBNDReq,
- wbFULL,
- wbMODL,
- wbEITM,
- wbFormIDCk(MNAM, 'Image Space Modifier', [IMAD]),
- wbStruct(DATA, 'Data', [
- wbFormIDCk('Light', [LIGH, NULL]),
- wbFormIDCk('Sound 1', [SNDR, NULL]),
- wbFormIDCk('Sound 2', [SNDR, NULL]),
- wbFormIDCk('Impact Data Set', [IPDS, NULL]),
- wbFormID('Placed Object'),
- wbFormIDCk('Spawn Projectile', [PROJ, NULL]),
- wbFloat('Force'),
- wbFloat('Damage'),
- wbFloat('Inner Radius'),
- wbFloat('Outer Radius'),
- wbFloat('IS Radius'),
- wbUnion('Vertical Offset Mult', wbDeciderFormVersion99, [
- wbByteArray('Unknown', 4),
- wbFloat('Vertical Offset Mult')
- ]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Unknown 0',
- {0x00000002} 'Always Uses World Orientation',
- {0x00000004} 'Knock Down - Always',
- {0x00000008} 'Knock Down - By Formula',
- {0x00000010} 'Ignore LOS Check',
- {0x00000020} 'Push Explosion Source Ref Only',
- {0x00000040} 'Ignore Image Space Swap',
- {0x00000080} 'Chain',
- {0x00000100} 'No Controller Vibration',
- {0x00000200} 'Placed Object Persists',
- {0x00000400} 'Skip Underwater Tests'
- ])),
- wbInteger('Sound Level', itU32, wbSoundLevelEnum),
- wbFloat('Placed Object AutoFade Delay'),
- wbInteger('Stagger', itU32, wbEnum([
- 'None',
- 'Small',
- 'Medium',
- 'Large',
- 'Extra Large'
- ])),
- wbStruct('Spawn', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z'),
- wbFloat('Spread Degrees'),
- wbInteger('Count', itU32)
- ])
- ], cpNormal, True, nil, 13)
- ]);
-
- wbRecord(DEBR, 'Debris', [
- wbEDID,
- wbRStructs('Models', 'Model', [
- wbStruct(DATA, 'Data', [
- wbInteger('Percentage', itU8),
- wbString('Model Filename'),
- wbInteger('Flags', itU8, wbFlags([
- 'Has Collision Data'
- ]))
- ], cpNormal, True),
- wbMODT
- ], [], cpNormal, True)
- ]);
-
- wbRecord(IMGS, 'Image Space', [
- wbEDID,
- wbByteArray(ENAM, 'Unused', 0, cpIgnore),
- wbStruct(HNAM, 'HDR', [
- wbFloat('Eye Adapt Speed'),
- wbFloat('Tonemap E'),
- wbFloat('Bloom Threshold'),
- wbFloat('Bloom Scale'),
- wbFloat('Auto Exposure Max'),
- wbFloat('Auto Exposure Min'),
- wbFloat('Sunlight Scale'),
- wbFloat('Sky Scale'),
- wbFloat('Middle Gray')
- ], cpNormal, True),
- wbStruct(CNAM, 'Cinematic', [
- wbFloat('Saturation'),
- wbFloat('Brightness'),
- wbFloat('Contrast')
- ], cpNormal, True),
- wbStruct(TNAM, 'Tint', [
- wbFloat('Amount'),
- wbFloatColors('Color')
- ], cpNormal, True),
- wbStruct(DNAM, 'Depth of Field', [
- wbFloat('Strength'),
- wbFloat('Distance'),
- wbFloat('Range'),
- wbByteArray('Unused', 2, cpIgnore),
- wbInteger('Sky / Blur Radius', itU16, wbEnum([], [
- 16384, 'Radius 0',
- 16672, 'Radius 1',
- 16784, 'Radius 2',
- 16848, 'Radius 3',
- 16904, 'Radius 4',
- 16936, 'Radius 5',
- 16968, 'Radius 6',
- 17000, 'Radius 7',
- 16576, 'No Sky, Radius 0',
- 16736, 'No Sky, Radius 1',
- 16816, 'No Sky, Radius 2',
- 16880, 'No Sky, Radius 3',
- 16920, 'No Sky, Radius 4',
- 16952, 'No Sky, Radius 5',
- 16984, 'No Sky, Radius 6',
- 17016, 'No Sky, Radius 7'
- ])),
- wbFloat('Vignette Radius'),
- wbFloat('Vignette Strength')
- ], cpNormal, True, nil, 5),
- wbString(TX00, 'LUT')
- ]);
-
- wbTimeInterpolator := wbStruct('Data', [
- wbFloat('Time'),
- wbFloat('Value')
- ]);
-
- wbColorInterpolator := wbStruct('Data', [
- wbFloat('Time'),
- wbFloat('Red', cpNormal, False, 255, 0),
- wbFloat('Green', cpNormal, False, 255, 0),
- wbFloat('Blue', cpNormal, False, 255, 0),
- wbFloat('Alpha', cpNormal, False, 255, 0)
- ]);
-
- wbRecord(IMAD, 'Image Space Adapter', [
- wbEDID,
- wbStruct(DNAM, 'Data Count', [
- wbInteger('Flags', itU32, wbFlags(['Animatable'])),
- wbFloat('Duration'),
- wbStruct('HDR', [
- wbInteger('Eye Adapt Speed Mult', itU32),
- wbInteger('Eye Adapt Speed Add', itU32),
- wbInteger('Bloom Blur Radius Mult', itU32),
- wbInteger('Bloom Blur Radius Add', itU32),
- wbInteger('Bloom Threshold Mult', itU32),
- wbInteger('Bloom Threshold Add', itU32),
- wbInteger('Bloom Scale Mult', itU32),
- wbInteger('Bloom Scale Add', itU32),
- wbInteger('Target Lum Min Mult', itU32),
- wbInteger('Target Lum Min Add', itU32),
- wbInteger('Target Lum Max Mult', itU32),
- wbInteger('Target Lum Max Add', itU32),
- wbInteger('Sunlight Scale Mult', itU32),
- wbInteger('Sunlight Scale Add', itU32),
- wbInteger('Sky Scale Mult', itU32),
- wbInteger('Sky Scale Add', itU32)
- ]),
- wbInteger('Unknown08 Mult', itU32),
- wbInteger('Unknown48 Add', itU32),
- wbInteger('Unknown09 Mult', itU32),
- wbInteger('Unknown49 Add', itU32),
- wbInteger('Unknown0A Mult', itU32),
- wbInteger('Unknown4A Add', itU32),
- wbInteger('Unknown0B Mult', itU32),
- wbInteger('Unknown4B Add', itU32),
- wbInteger('Unknown0C Mult', itU32),
- wbInteger('Unknown4C Add', itU32),
- wbInteger('Unknown0D Mult', itU32),
- wbInteger('Unknown4D Add', itU32),
- wbInteger('Unknown0E Mult', itU32),
- wbInteger('Unknown4E Add', itU32),
- wbInteger('Unknown0F Mult', itU32),
- wbInteger('Unknown4F Add', itU32),
- wbInteger('Unknown10 Mult', itU32),
- wbInteger('Unknown50 Add', itU32),
- wbStruct('Cinematic', [
- wbInteger('Saturation Mult', itU32),
- wbInteger('Saturation Add', itU32),
- wbInteger('Brightness Mult', itU32),
- wbInteger('Brightness Add', itU32),
- wbInteger('Contrast Mult', itU32),
- wbInteger('Contrast Add', itU32)
- ]),
- wbInteger('Unknown14 Mult', itU32),
- wbInteger('Unknown54 Add', itU32),
- wbInteger('Tint Color', itU32),
- wbInteger('Blur Radius', itU32),
- wbInteger('Double Vision Strength', itU32),
- wbInteger('Radial Blur Strength', itU32),
- wbInteger('Radial Blur Ramp Up', itU32),
- wbInteger('Radial Blur Start', itU32),
- wbInteger('Radial Blur Flags', itU32, wbFlags(['Use Target'])),
- wbFloat('Radial Blur Center X'),
- wbFloat('Radial Blur Center Y'),
- wbInteger('DoF Strength', itU32),
- wbInteger('DoF Distance', itU32),
- wbInteger('DoF Range', itU32),
- wbInteger('DoF Flags', itU32, wbFlags([
- {0x00000001} 'Use Target',
- {0x00000002} 'Unknown 2',
- {0x00000004} 'Unknown 3',
- {0x00000008} 'Unknown 4',
- {0x00000010} 'Unknown 5',
- {0x00000020} 'Unknown 6',
- {0x00000040} 'Unknown 7',
- {0x00000080} 'Unknown 8',
- {0x00000100} 'Mode - Front',
- {0x00000200} 'Mode - Back',
- {0x00000400} 'No Sky',
- {0x00000800} 'Blur Radius Bit 2',
- {0x00001000} 'Blur Radius Bit 1',
- {0x00002000} 'Blur Radius Bit 0'
- ])),
- wbInteger('Radial Blur Ramp Down', itU32),
- wbInteger('Radial Blur Down Start', itU32),
- wbInteger('Fade Color', itU32),
- wbInteger('Motion Blur Strength', itU32),
- wbUnknown
- ]),
- wbArray(BNAM, 'Blur Radius', wbTimeInterpolator),
- wbArray(VNAM, 'Double Vision Strength', wbTimeInterpolator),
- wbArray(TNAM, 'Tint Color', wbColorInterpolator),
- wbArray(NAM3, 'Fade Color', wbColorInterpolator),
- wbRStruct('Radial Blur', [
- wbArray(RNAM, 'Strength', wbTimeInterpolator),
- wbArray(SNAM, 'RampUp', wbTimeInterpolator),
- wbArray(UNAM, 'Start', wbTimeInterpolator),
- wbArray(NAM1, 'RampDown', wbTimeInterpolator),
- wbArray(NAM2, 'DownStart', wbTimeInterpolator)
- ], []),
- wbRStruct('Depth of Field', [
- wbArray(WNAM, 'Strength', wbTimeInterpolator),
- wbArray(XNAM, 'Distance', wbTimeInterpolator),
- wbArray(YNAM, 'Range', wbTimeInterpolator),
- wbArray(NAM5, 'Vignette Radius', wbTimeInterpolator),
- wbArray(NAM6, 'Vignette Strength', wbTimeInterpolator)
- ], []),
- wbArray(NAM4, 'Motion Blur Strength', wbTimeInterpolator),
- wbRStruct('HDR', [
- wbArray(_00_IAD, 'Eye Adapt Speed Mult', wbTimeInterpolator),
- wbArray(_40_IAD, 'Eye Adapt Speed Add', wbTimeInterpolator),
- wbArray(_01_IAD, 'Bloom Blur Radius Mult', wbTimeInterpolator),
- wbArray(_41_IAD, 'Bloom Blur Radius Add', wbTimeInterpolator),
- wbArray(_02_IAD, 'Bloom Threshold Mult', wbTimeInterpolator),
- wbArray(_42_IAD, 'Bloom Threshold Add', wbTimeInterpolator),
- wbArray(_03_IAD, 'Bloom Scale Mult', wbTimeInterpolator),
- wbArray(_43_IAD, 'Bloom Scale Add', wbTimeInterpolator),
- wbArray(_04_IAD, 'Target Lum Min Mult', wbTimeInterpolator),
- wbArray(_44_IAD, 'Target Lum Min Add', wbTimeInterpolator),
- wbArray(_05_IAD, 'Target Lum Max Mult', wbTimeInterpolator),
- wbArray(_45_IAD, 'Target Lum Max Add', wbTimeInterpolator),
- wbArray(_06_IAD, 'Sunlight Scale Mult', wbTimeInterpolator),
- wbArray(_46_IAD, 'Sunlight Scale Add', wbTimeInterpolator),
- wbArray(_07_IAD, 'Sky Scale Mult', wbTimeInterpolator),
- wbArray(_47_IAD, 'Sky Scale Add', wbTimeInterpolator)
- ], []),
- wbUnknown(_08_IAD),
- wbUnknown(_48_IAD),
- wbUnknown(_09_IAD),
- wbUnknown(_49_IAD),
- wbUnknown(_0A_IAD),
- wbUnknown(_4A_IAD),
- wbUnknown(_0B_IAD),
- wbUnknown(_4B_IAD),
- wbUnknown(_0C_IAD),
- wbUnknown(_4C_IAD),
- wbUnknown(_0D_IAD),
- wbUnknown(_4D_IAD),
- wbUnknown(_0E_IAD),
- wbUnknown(_4E_IAD),
- wbUnknown(_0F_IAD),
- wbUnknown(_4F_IAD),
- wbUnknown(_10_IAD),
- wbUnknown(_50_IAD),
- wbRStruct('Cinematic', [
- wbArray(_11_IAD, 'Saturation Mult', wbTimeInterpolator),
- wbArray(_51_IAD, 'Saturation Add', wbTimeInterpolator),
- wbArray(_12_IAD, 'Brightness Mult', wbTimeInterpolator),
- wbArray(_52_IAD, 'Brightness Add', wbTimeInterpolator),
- wbArray(_13_IAD, 'Contrast Mult', wbTimeInterpolator),
- wbArray(_53_IAD, 'Contrast Add', wbTimeInterpolator)
- ], []),
- wbUnknown(_14_IAD),
- wbUnknown(_54_IAD)
- ]);
-
- wbRecord(FLST, 'FormID List', [
- wbString(EDID, 'Editor ID', 0, cpBenign, True, nil, wbFLSTEDIDAfterSet),
- wbFULL,
- wbRArrayS('FormIDs', wbFormID(LNAM, 'FormID'), cpNormal, False, nil, nil, nil, wbFLSTLNAMIsSorted)
- ]);
-
- wbRecord(PERK, 'Perk',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Non-Playable'
- ])), [
- wbEDID,
- wbVMADFragmentedPERK,
- wbFULL,
- wbDESCReq,
- wbString(ICON, 'Image'),
- wbCTDAs,
- wbStruct(DATA, 'Data', [
- wbInteger('Trait', itU8, wbBoolEnum),
- wbInteger('Level', itU8),
- wbInteger('Num Ranks', itU8),
- wbInteger('Playable', itU8, wbBoolEnum),
- wbInteger('Hidden', itU8, wbBoolEnum)
- ], cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SNDR]),
- wbFormIDCK(NNAM, 'Next Perk', [PERK, NULL]),
- wbString(FNAM, 'SWF'),
-
- wbRStructsSK('Effects', 'Effect', [0, 1], [
- wbStructSK(PRKE, [1, 2, 0], 'Header', [
- wbInteger('Type', itU8, wbEnum([
- 'Quest + Stage',
- 'Ability',
- 'Entry Point'
- ]), cpNormal, False, nil, wbPERKPRKETypeAfterSet),
- wbInteger('Rank', itU8),
- wbInteger('Priority', itU8)
- ]),
- wbUnion(DATA, 'Effect Data', wbPerkDATADecider, [
- wbStructSK([0, 1], 'Quest + Stage', [
- wbFormIDCk('Quest', [QUST]),
- wbInteger('Quest Stage', itU16, wbPerkDATAQuestStageToStr, wbCTDAParam2QuestStageToInt),
- wbByteArray('Unused', 2)
- ]),
- wbFormIDCk('Ability', [SPEL]),
- wbStructSK([0, 1], 'Entry Point', [
- wbInteger('Entry Point', itU8, wbEntryPointsEnum, cpNormal, True, nil{, wbPERKEntryPointAfterSet}),
- wbInteger('Function', itU8, wbEnum([
- {0} 'Unknown 0',
- {1} 'Set Value', // EPFT=1
- {2} 'Add Value', // EPFT=1
- {3} 'Multiply Value', // EPFT=1
- {4} 'Add Range To Value', // EPFT=2
- {5} 'Add Actor Value Mult', // EPFT=2
- {6} 'Absolute Value', // no params
- {7} 'Negative Absolute Value', // no params
- {8} 'Add Leveled List', // EPFT=3
- {9} 'Add Activate Choice', // EPFT=4
- {10} 'Select Spell', // EPFT=5
- {11} 'Select Text', // EPFT=6
- {12} 'Set to Actor Value Mult', // EPFT=2
- {13} 'Multiply Actor Value Mult', // EPFT=2
- {14} 'Multiply 1 + Actor Value Mult', // EPFT=2
- {15} 'Set Text' // EPFT=7
- ])),
- wbInteger('Perk Condition Tab Count', itU8, nil, cpIgnore)
- ])
- ], cpNormal, True),
-
- wbRStructsSK('Perk Conditions', 'Perk Condition', [0], [
- wbInteger(PRKC, 'Run On (Tab Index)', itS8{, wbPRKCToStr, wbPRKCToInt}),
- wbCTDAsReq
- ], [], cpNormal, False{, nil, nil, wbPERKPRKCDontShow}),
-
- wbRStruct('Function Parameters', [
- wbInteger(EPFT, 'Type', itU8, wbEnum([
- {0} 'None',
- {1} 'Float',
- {2} 'Float/AV,Float',
- {3} 'LVLI',
- {4} 'SPEL,lstring,flags',
- {5} 'SPEL',
- {6} 'string',
- {7} 'lstring',
- {8} 'AVIF'
- ])),
- // case(EPFT) of
- // 1: EPFD=float
- // 2: EPFD=float,float
- // 3: EPFD=LVLI
- // 4: EPFD=SPEL, EPF2=lstring, EPF3=int32 flags
- // 5: EPFD=SPEL
- // 6: EPFD=string
- // 7: EPFD=lstring
-
- wbInteger(EPFB, 'Perk Entry ID (unique)', itU16),
- wbLString(EPF2, 'Button Label', 0, cpTranslate),
- wbStruct(EPF3, 'Script Flags', [
- wbInteger('Script Flags', itU8, wbFlags([
- 'Run Immediately',
- 'Replace Default'
- ])),
- wbByteArray('Unknown', 1)
- ]),
- wbUnion(EPFD, 'Data', wbEPFDDecider, [
- {0} wbByteArray('Unknown'),
- {1} wbFloat('Float'),
- {2} wbStruct('Float, Float', [
- wbFloat('Float 1'),
- wbFloat('Float 2')
- ]),
- {3} wbFormIDCk('Leveled Item', [LVLI]),
- {4} wbFormIDCk('Spell', [SPEL]),
- {5} wbFormIDCk('Spell', [SPEL]),
- {6} wbString('Text', 0, cpTranslate),
- {7} wbLString('Text', 0, cpTranslate),
- {8} wbStruct('Actor Value, Float', [
- wbActorValue, // wbInteger('Actor Value', itU32, wbEPFDActorValueToStr, wbEPFDActorValueToInt),
- wbFloat('Float')
- ])
- ], cpNormal, False{, wbEPFDDontShow})
- ], [], cpNormal, False{, wbPERKPRKCDontShow}),
- wbEmpty(PRKF, 'End Marker', cpIgnore, True)
- ], [])
- ]);
-
- wbRecord(BPTD, 'Body Part Data', [
- wbEDID,
- wbMODL,
- wbRArrayS('Body Parts',
- wbRStructSK([1], 'Body Part', [
- wbLString(BPTN, 'Part Name', 0, cpTranslate), // optional
- wbString(BPNN, 'Part Node', 0, cpNormal, True),
- wbString(BPNT, 'VATS Target', 0, cpNormal, True),
- wbStruct(BPND, '', [
- wbFloat('Damage Mult'),
- wbFormIDCk('Explodable - Debris', [DEBR, NULL]),
- wbFormIDCk('Explodable - Explosion', [EXPL, NULL]),
- wbFloat('Explodable - Debris Scale'),
- wbFormIDCk('Severable - Debris', [DEBR, NULL]),
- wbFormIDCk('Severable - Explosion', [EXPL, NULL]),
- wbFloat('Severable - Debris Scale'),
- wbFloat('Cut - Min'),
- wbFloat('Cut - Max'),
- wbFloat('Cut - Radius'),
- wbFloat('Gore Effects - Local Rotate X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Gore Effects - Local Rotate Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Cut - Tesselation'),
- wbFormIDCk('Severable - Impact DataSet', [IPDS, NULL]),
- wbFormIDCk('Explodable - Impact DataSet', [IPDS, NULL]),
- wbFloat('Explodable - Limb Replacement Scale'),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Severable',
- {0x02} 'Hit Reaction',
- {0x04} 'Hit Reaction - Default',
- {0x08} 'Explodable',
- {0x10} 'Cut - Meat Cap Sever',
- {0x20} 'On Cripple',
- {0x40} 'Explodable - Absolute Chance',
- {0x80} 'Show Cripple Geometry'
- ])),
- wbInteger('Part Type', itU8, wbEnum([
- { 0} 'Torso',
- { 1} 'Head1',
- { 2} 'Eye',
- { 3} 'LookAt',
- { 4} 'Fly Grab',
- { 5} 'Head2',
- { 6} 'LeftArm1',
- { 7} 'LeftArm2',
- { 8} 'RightArm1',
- { 9} 'RightArm2',
- {10} 'LeftLeg1',
- {11} 'LeftLeg2',
- {12} 'LeftLeg3',
- {13} 'RightLeg1',
- {14} 'RightLeg2',
- {15} 'RightLeg3',
- {16} 'Brain',
- {17} 'Weapon',
- {18} 'Root',
- {19} 'COM',
- {20} 'Pelvis',
- {21} 'Camera',
- {22} 'Offset Root',
- {23} 'Left Foot',
- {24} 'Right Foot',
- {25} 'Face Target Source'
- ])),
- wbInteger('Health Percent', itU8),
- wbFormIDCk('Actor Value', [AVIF, NULL]),
- wbInteger('To Hit Chance', itU8),
- wbInteger('Explodable - Explosion Chance %', itU8),
- wbInteger('Non-Lethal Dismemberment Chance', itU8),
- wbInteger('Severable - Debris Count', itU8),
- wbInteger('Explodable - Debris Count', itU8),
- wbInteger('Severable - Decal Count', itU8),
- wbInteger('Explodable - Decal Count', itU8),
- wbInteger('Geometry Segment Index', itU8),
- wbFormIDCk('On Cripple - Art Object', [ARTO, NULL]),
- wbFormIDCk('On Cripple - Debris', [DEBR, NULL]),
- wbFormIDCk('On Cripple - Explosion', [EXPL, NULL]),
- wbFormIDCk('On Cripple - Impact DataSet', [IPDS, NULL]),
- wbFloat('On Cripple - Debris Scale'),
- wbInteger('On Cripple - Debris Count', itU8),
- wbInteger('On Cripple - Decal Count', itU8)
- ], cpNormal, True),
- wbString(NAM1, 'Limb Replacement Model', 0, cpNormal, True),
- wbString(NAM4, 'Gore Effects - Target Bone', 0, cpNormal, True),
- wbByteArray(NAM5, 'Texture Files Hashes', 0, cpNormal),
- wbString(ENAM, 'Hit Reaction - Start'),
- wbString(FNAM, 'Hit Reaction - End'),
- wbFormIDCk(BNAM, 'Gore Effects - Dismember Blood Art', [ARTO]),
- wbFormIDCk(INAM, 'Gore Effects - Blood Impact Material Type', [MATT]),
- wbFormIDCk(JNAM, 'On Cripple - Blood Impact Material Type', [MATT]),
- wbFormIDCk(CNAM, 'Meat Cap TextureSet', [TXST]),
- wbFormIDCk(NAM2, 'Collar TextureSet', [TXST]),
- wbString(DNAM, 'Twist Variable Prefix')
- ], [], cpNormal, False, nil, True)
- )
- ]);
-
- wbRecord(ADDN, 'Addon Node', [
- wbEDID,
- wbOBNDReq,
- wbMODL,
- wbInteger(DATA, 'Node Index', itS32, nil, cpNormal, True),
- wbFormIDCk(SNAM, 'Sound', [SNDR]),
- wbFormIDCk(LNAM, 'Light', [LIGH]),
- wbStruct(DNAM, 'Data', [
- wbInteger('Master Particle System Cap', itU16),
- wbInteger('Flags', itU16, wbEnum([
- 'No Master Particle System',
- 'Master Particle System',
- 'Always Loaded',
- 'Master Particle System and Always Loaded'
- ]))
- ], cpNormal, True)
- ]);
-end;
-
-procedure DefineFO4h;
-begin
- wbRecord(AVIF, 'Actor Value Information', [
- wbEDID,
- wbFULL,
- wbDESCReq,
- wbLString(ANAM, 'Abbreviation', 0, cpTranslate),
- wbFloat(NAM0, 'Default Value'), // Prior to form version 81, it was either 0.0, 1.0 or 100.0, so scale or multiplier ?
- wbInteger(AVFL, 'Flags', itU32, wbFlags([ // 32 bits Flags, it used to impact NAM0 loading (bits 10, 11, 12) (even though it loads later :) )
- 'Unknown 1',
- 'Unknown 2',
- 'Unknown 3',
- 'Unknown 4',
- 'Unknown 5',
- 'Unknown 6',
- 'Unknown 7',
- 'Unknown 8',
- 'Unknown 9',
- 'Unknown 10',
- 'Unknown 11',
- 'Unknown 12',
- 'Unknown 13',
- 'Unknown 14',
- 'Unknown 15',
- 'Unknown 16',
- 'Unknown 17',
- 'Unknown 18',
- 'Unknown 19',
- 'Unknown 20',
- 'Minimum 1',
- 'Maximum 10',
- 'Maximum 100',
- 'Multiply By 100',
- 'Percentage',
- 'Unknown 26',
- 'Damage Is Positive',
- 'God Mode Immune',
- 'Unknown 29',
- 'Unknown 30',
- 'Unknown 31',
- 'Hardcoded'
- ])),
- wbInteger(NAM1, 'Type', itU32, wbEnum([
- 'Derived Attribute',
- 'Special (Attribute)',
- 'Skill',
- 'AI Attribute',
- 'Resistance',
- 'Condition',
- 'Charge',
- 'Int Value',
- 'Variable',
- 'Resource'
- ]))
- ]); // S.P.E.C.I.A.L start at index 5, so FormID 0x2bc+5 to 0x2bc+11, RadResistIngestion at index 0x29
-
- wbRecord(CAMS, 'Camera Shot', [
- wbEDID,
- wbMODL,
- wbCTDAs,
- wbStruct(DATA, 'Data', [
- wbInteger('Action', itU32, wbEnum([
- {0} 'Shoot',
- {1} 'Fly',
- {2} 'Hit',
- {3} 'Zoom'
- ])),
- wbInteger('Location', itU32, wbEnum([
- {0} 'Attacker',
- {1} 'Projectile',
- {2} 'Target',
- {3} 'Lead Actor'
- ])),
- wbInteger('Target', itU32, wbEnum([
- {0} 'Attacker',
- {1} 'Projectile',
- {2} 'Target',
- {3} 'Lead Actor'
- ])),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Position Follows Location',
- {0x00000002} 'Rotation Follows Target',
- {0x00000004} 'Don''t Follow Bone',
- {0x00000008} 'First Person Camera',
- {0x00000010} 'No Tracer',
- {0x00000020} 'Start At Time Zero',
- {0x00000040} 'Don''t Reset Location Spring',
- {0x00000080} 'Don''t Reset Target Spring'
- ])),
- wbStruct('Time Multipliers', [
- wbFloat('Player'),
- wbFloat('Target'),
- wbFloat('Global')
- ]),
- wbFloat('Max Time'),
- wbFloat('Min Time'),
- wbFloat('Target % Between Actors'),
- wbFloat('Near Target Distance'),
- wbFloat('Location Spring'),
- wbFloat('Target Spring'),
- wbStruct('Rotation Offset', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ])
- ], cpNormal, True, nil, 9),
- wbFormIDCk(MNAM, 'Image Space Modifier', [IMAD])
- ]);
-
- wbRecord(CPTH, 'Camera Path', [
- wbEDID,
- wbCTDAs,
- wbArray(ANAM, 'Related Camera Paths', wbFormIDCk('Related Camera Path', [CPTH, NULL]), ['Parent', 'Previous Sibling'], cpNormal, True),
- wbInteger(DATA, 'Camera Zoom / Flags', itU8, wbFlags([
- {0x01} 'Disable',
- {0x02} 'Shot List',
- {0x04} 'Dynamic Camera Times',
- {0x08} 'Unknown 3',
- {0x10} 'Unknown 4',
- {0x20} 'Unknown 5',
- {0x40} 'Randomize Paths',
- {0x80} 'Not Must Have Camera Shots'
- ]), cpNormal, True),
- wbRArray('Camera Shots', wbFormIDCk(SNAM, 'Camera Shot', [CAMS]))
- ]);
-
- wbRecord(VTYP, 'Voice Type', [
- wbEDID,
- wbInteger(DNAM, 'Flags', itU8, wbFlags([
- 'Allow Default Dialog',
- 'Female'
- ]), cpNormal, True)
- ]);
-
- wbRecord(MATT, 'Material Type', [
- wbEDID,
- wbFormIDCk(PNAM, 'Material Parent', [MATT, NULL]),
- wbString(MNAM, 'Material Name'),
- wbStruct(CNAM, 'Havok Display Color', [
- wbFloat('Red', cpNormal, True, 255, 0),
- wbFloat('Green', cpNormal, True, 255, 0),
- wbFloat('Blue', cpNormal, True, 255, 0)
- ]),
- wbFloat(BNAM, 'Buoyancy'),
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- 'Stair Material',
- 'Arrows Stick',
- 'Can Tunnel'
- ], False)),
- wbFormIDCk(HNAM, 'Havok Impact Data Set', [IPDS]),
- wbString(ANAM, 'Breakable FX'),
- wbMODT
- ]);
-
- wbRecord(IPCT, 'Impact', [
- wbEDID,
- wbMODL,
- wbStruct(DATA, '', [
- wbFloat('Effect - Duration'),
- wbInteger('Effect - Orientation', itU32, wbEnum([
- 'Surface Normal',
- 'Projectile Vector',
- 'Projectile Reflection'
- ])),
- wbFloat('Angle Threshold'),
- wbFloat('Placement Radius'),
- wbInteger('Sound Level', itU32, wbSoundLevelEnum),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'No Decal Data'
- ])),
- wbInteger('Impact Result', itU8, wbEnum([
- {0} 'Default',
- {1} 'Destroy',
- {2} 'Bounce',
- {3} 'Impale',
- {4} 'Stick'
- ])),
- wbByteArray('Unknown', 2)
- ], cpNormal, True),
- wbDODT,
- wbFormIDCk(DNAM, 'Texture Set', [TXST]),
- wbFormIDCk(ENAM, 'Secondary Texture Set', [TXST]),
- wbFormIDCk(SNAM, 'Sound 1', [SNDR]),
- wbFormIDCk(NAM1, 'Sound 2', [SNDR]),
- wbFormIDCk(NAM3, 'Footstep Explosion', [EXPL]),
- wbFormIDCk(NAM2, 'Hazard', [HAZD]),
- wbFloat(FNAM, 'Footstep Particle Max Dist')
- ]);
-
- wbRecord(IPDS, 'Impact Data Set', [
- wbEDID,
- wbRArrayS('Data', wbStructSK(PNAM, [0], '', [
- wbFormIDCk('Material', [MATT]),
- wbFormIDCk('Impact', [IPCT])
- ]))
- ]);
-
- wbRecord(ECZN, 'Encounter Zone', [
- wbEDID,
- wbStruct(DATA, '', [
- wbFormIDCkNoReach('Owner', [NPC_, FACT, NULL]),
- wbFormIDCk('Location', [LCTN, NULL]),
- wbInteger('Rank', itS8),
- wbInteger('Min Level', itS8),
- wbInteger('Flags', itU8, wbFlags([
- 'Never Resets',
- 'Match PC Below Minimum Level',
- 'Disable Combat Boundary',
- 'Workshop'
- ])),
- wbInteger('Max Level', itS8)
- ], cpNormal, True)
- ]);
-
- wbRecord(LCTN, 'Location', [
- wbEDID,
-
- wbArray(ACPR, 'Actor Cell Persistent Reference', wbStruct('', [
- wbFormIDCk('Actor', sigReferences, False, cpBenign),
- wbFormIDCk('Location', [WRLD, CELL], False, cpBenign),
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ])),
- wbArray(LCPR, 'Location Cell Persistent Reference', wbStruct('', [
- wbFormIDCk('Actor', sigReferences, False, cpBenign),
- wbFormIDCk('Location', [WRLD, CELL], False, cpBenign),
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ])),
- wbArray(RCPR, 'Reference Cell Persistent Reference', wbFormIDCk('Ref', [ACHR, REFR], False, cpBenign)),
-
- wbArray(ACUN, 'Actor Cell Unique', wbStruct('', [
- wbFormIDCk('Actor', [NPC_], False, cpBenign),
- wbFormIDCk('Ref', [ACHR], False, cpBenign),
- wbFormIDCk('Location', [LCTN, NULL], False, cpBenign)
- ])),
- wbArray(LCUN, 'Location Cell Unique', wbStruct('', [
- wbFormIDCk('Actor', [NPC_], False, cpBenign),
- wbFormIDCk('Ref', [ACHR], False, cpBenign),
- wbFormIDCk('Location', [LCTN, NULL], False, cpBenign)
- ])),
- wbArray(RCUN, 'Reference Cell Unique', wbFormIDCk('Actor', [NPC_], False, cpBenign)),
-
- wbArray(ACSR, 'Actor Cell Static Reference', wbStruct('', [
- wbFormIDCk('Loc Ref Type', [LCRT], False, cpBenign),
- wbFormIDCk('Marker', sigReferences, False, cpBenign),
- wbFormIDCk('Location', [WRLD, CELL], False, cpBenign),
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ])),
- wbArray(LCSR, 'Location Cell Static Reference', wbStruct('', [
- wbFormIDCk('Loc Ref Type', [LCRT], False, cpBenign),
- wbFormIDCk('Marker', sigReferences, False, cpBenign),
- wbFormIDCk('Location', [WRLD, CELL], False, cpBenign),
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ])),
- wbArray(RCSR, 'Reference Cell Static Reference', wbFormIDCk('Ref', [ACHR, REFR], False, cpBenign)),
-
- wbRArray('Actor Cell Encounter Cell',
- wbStruct(ACEC, 'Unknown', [
- wbFormIDCk('Location', [WRLD, CELL], False, cpBenign),
- wbArray('Coordinates', wbStruct('', [
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ]))
- ])
- ),
- wbRArray('Location Cell Encounter Cell',
- wbStruct(LCEC, 'Unknown', [
- wbFormIDCk('Location', [WRLD, CELL], False, cpBenign),
- wbArray('Coordinates', wbStruct('', [
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ]))
- ])
- ),
- wbRArray('Reference Cell Encounter Cell',
- wbStruct(RCEC, 'Unknown', [
- wbFormIDCk('Location', [WRLD, CELL], False, cpBenign),
- wbArray('Coordinates', wbStruct('', [
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ]))
- ])
- ),
-
- wbArray(ACID, 'Actor Cell Marker Reference', wbFormIDCk('Ref', sigReferences, False, cpBenign)),
- wbArray(LCID, 'Location Cell Marker Reference', wbFormIDCk('Ref', sigReferences, False, cpBenign)),
-
- wbArray(ACEP, 'Actor Cell Enable Point', wbStruct('', [
- wbFormIDCk('Actor', sigReferences, False, cpBenign),
- wbFormIDCk('Ref', sigReferences, False, cpBenign),
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ])),
- wbArray(LCEP, 'Location Cell Enable Point', wbStruct('', [
- wbFormIDCk('Actor', sigReferences, False, cpBenign),
- wbFormIDCk('Ref', sigReferences, False, cpBenign),
- wbInteger('Grid Y', itS16, nil, cpBenign),
- wbInteger('Grid X', itS16, nil, cpBenign)
- ])),
-
- wbFULL,
- wbKSIZ,
- wbKWDAs,
- wbFormIDCk(PNAM, 'Parent Location', [LCTN, NULL]),
- wbFormIDCk(NAM1, 'Music', [MUSC, NULL]),
- wbFormIDCk(FNAM, 'Unreported Crime Faction', [FACT]),
- wbFormIDCk(MNAM, 'World Location Marker Ref', [REFR, ACHR]),
- wbFloat(RNAM, 'World Location Radius'),
- //wbFormIDCk(NAM0, 'Horse Marker Ref', [REFR]),
- wbFloat(ANAM, 'Unknown'),
- wbCNAM
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
-end;
-
-{this is required to prevent XE6 compiler error}
-type
- TVarRecs = array of TVarRec;
-
-function CombineVarRecs(const a, b : array of const)
- : TVarRecs;
-begin
- SetLength(Result, Length(a) + Length(b));
- if Length(a) > 0 then
- Move(a[0], Result[0], SizeOf(TVarRec) * Length(a));
- if Length(b) > 0 then
- Move(b[0], Result[Length(a)], SizeOf(TVarRec) * Length(b));
-end;
-
-function MakeVarRecs(const a : array of const)
- : TVarRecs;
-begin
- SetLength(Result, Length(a));
- if Length(a) > 0 then
- Move(a[0], Result[0], SizeOf(TVarRec) * Length(a));
-end;
-
-
-procedure DefineFO4i;
-var
- a, b, c : TVarRecs;
-begin
- wbRecord(MESG, 'Message', [
- wbEDID,
- wbDESCReq,
- wbFULL,
- wbFormIDCk(INAM, 'Icon (unused)', [NULL], False, cpIgnore, True), // leftover
- wbFormIDCk(QNAM, 'Owner Quest', [QUST]),
- wbInteger(DNAM, 'Flags', itU32, wbFlags([
- 'Message Box',
- 'Delay Initial Display'
- ]), cpNormal, True, False, nil, wbMESGDNAMAfterSet),
- wbInteger(TNAM, 'Display Time', itU32, nil, cpNormal, False, False, wbMESGTNAMDontShow),
- wbString(SNAM, 'SWF'),
- wbLString(NNAM, 'Short Title', 0, cpTranslate),
- wbRStructs('Menu Buttons', 'Menu Button', [
- wbLString(ITXT, 'Button Text', 0, cpTranslate),
- wbCTDAs
- ], [])
- ], False, nil, cpNormal, False, wbMESGAfterLoad);
-
- a := MakeVarRecs([
- 0, 'None',
- Sig2Int('AAAC'), 'Action Activate',
- Sig2Int('AAB1'), 'Action Bleedout Start',
- Sig2Int('AAB2'), 'Action Bleedout Stop',
- Sig2Int('AABA'), 'Action Block Anticipate',
- Sig2Int('AABH'), 'Action Block Hit',
- Sig2Int('AABI'), 'Action Bumped Into',
- Sig2Int('AADA'), 'Action Dual Attack',
- Sig2Int('AADE'), 'Action Death',
- Sig2Int('AADL'), 'Action Dual Release',
- Sig2Int('AADR'), 'Action Draw',
- Sig2Int('AADW'), 'Action Death Wait',
- Sig2Int('AAF1'), 'Action Fly Start',
- Sig2Int('AAF2'), 'Action Fly Stop',
- Sig2Int('AAFA'), 'Action Fall',
- Sig2Int('AAFQ'), 'Action Force Equip',
- Sig2Int('AAGU'), 'Action Get Up',
- Sig2Int('AAH1'), 'Action Hover Start',
- Sig2Int('AAH2'), 'Action Hover Stop',
- Sig2Int('AAID'), 'Action Idle',
- Sig2Int('AAIS'), 'Action Idle Stop',
- Sig2Int('AAJP'), 'Action Jump',
- Sig2Int('AALA'), 'Action Left Attack',
- Sig2Int('AALD'), 'Action Left Ready',
- Sig2Int('AALI'), 'Action Left Interrupt',
- Sig2Int('AALK'), 'Action Look',
- Sig2Int('AALM'), 'Action Large Movement Delta',
- Sig2Int('AALN'), 'Action Land',
- Sig2Int('AALR'), 'Action Left Release',
- Sig2Int('AALS'), 'Action Left Sync Attack',
- Sig2Int('AAMT'), 'Action Mantle',
- Sig2Int('AAOE'), 'Action AoE Attack',
- Sig2Int('AAPA'), 'Action Right Power Attack',
- Sig2Int('AAPE'), 'Action Path End',
- Sig2Int('AAPS'), 'Action Path Start',
- Sig2Int('AAR2'), 'Action Large Recoil',
- Sig2Int('AARA'), 'Action Right Attack',
- Sig2Int('AARC'), 'Action Recoil',
- Sig2Int('AARD'), 'Action Right Ready',
- Sig2Int('AARI'), 'Action Right Interrupt',
- Sig2Int('AARR'), 'Action Right Release',
- Sig2Int('AARS'), 'Action Right Sync Attack',
- Sig2Int('AAS1'), 'Action Stagger Start',
- Sig2Int('AASC'), 'Action Shield Change',
- Sig2Int('AASH'), 'Action Sheath',
- Sig2Int('AASN'), 'Action Sneak',
- Sig2Int('AASP'), 'Action Sprint Stop',
- Sig2Int('AASS'), 'Action Summoned Start',
- Sig2Int('AAST'), 'Action Sprint Start',
- Sig2Int('AASW'), 'Action Swim State Change',
- Sig2Int('AAVC'), 'Action Voice',
- Sig2Int('AAVD'), 'Action Voice Ready',
- Sig2Int('AAVI'), 'Action Voice Interrupt',
- Sig2Int('AAVR'), 'Action Voice Release',
- Sig2Int('AAWH'), 'Action Ward Hit',
- Sig2Int('ABLA'), 'Action Begin Looping Activate',
- Sig2Int('ABOL'), 'Action Bolt Charge',
- Sig2Int('ABSE'), 'Art Object Absorb Effect',
- Sig2Int('ACHI'), 'Action Hide',
- Sig2Int('ACSS'), 'Action Cover Sprint Start',
- Sig2Int('ACTN'), 'Action Tunnel',
- Sig2Int('ACWR'), 'Action Cower',
- Sig2Int('ADGE'), 'Action Dodge',
- Sig2Int('ADPA'), 'Action Dual Power Attack',
- Sig2Int('AECL'), 'Action Enter Cover',
- Sig2Int('AELA'), 'Action End Looping Activate',
- Sig2Int('AENC'), 'Action Enter Combat',
- Sig2Int('AENI'), 'Action Dialogue Enter',
- Sig2Int('AEVD'), 'Action Evade',
- Sig2Int('AEXC'), 'Action Exit Cover',
- Sig2Int('AEXI'), 'Action Dialogue Exit',
- Sig2Int('AEXT'), 'Action Exit Combat',
- Sig2Int('AFCH'), 'Action Fire Charge',
- Sig2Int('AFCO'), 'Action Fire Charge Hold',
- Sig2Int('AFEM'), 'Action Fire Empty',
- Sig2Int('AFIA'), 'Action Fire Auto',
- Sig2Int('AFIS'), 'Action Fire Single',
- Sig2Int('AFLT'), 'Action Flip-Throw',
- Sig2Int('AFNP'), 'Keyword Activator Furniture No Player',
- Sig2Int('AGAL'), 'Action Gun Alert',
- Sig2Int('AGCS'), 'Action Gun Charge Start',
- Sig2Int('AGDN'), 'Action Gun Down',
- Sig2Int('AGRX'), 'Action Gun Relaxed',
- Sig2Int('AGRY'), 'Action Gun Ready',
- Sig2Int('AIDW'), 'Action Idle Warn',
- Sig2Int('AIEN'), 'Action Interaction Enter',
- Sig2Int('AIEQ'), 'Action Interaction Exit Quick',
- Sig2Int('AIEX'), 'Action Interaction Exit',
- Sig2Int('AILN'), 'Action Dialogue Listen Negative',
- Sig2Int('AILp'), 'Action Dialogue Listen Positive',
- Sig2Int('AILQ'), 'Action Dialogue Listen Question',
- Sig2Int('AINT'), 'Action Intimidate',
- Sig2Int('AIVC'), 'Verlet Cape',
- Sig2Int('AIXA'), 'Action Interaction Exit Alternate',
- Sig2Int('AKDN'), 'Action Knockdown',
- Sig2Int('ALIC'), 'Action Limb Critical',
- Sig2Int('ALIK'), 'Alcohol Item keyword',
- Sig2Int('ALPA'), 'Action Left Power Attack',
- Sig2Int('ALTI'), 'Action Dialogue Listen',
- Sig2Int('AMBK'), 'Action Move Backward',
- Sig2Int('AMEL'), 'Action Melee',
- Sig2Int('AMFD'), 'Action Move Forward',
- Sig2Int('AMLT'), 'Action Move Left',
- Sig2Int('AMRT'), 'Action Move Right',
- Sig2Int('AMSP'), 'Action Move Stop',
- Sig2Int('AMST'), 'Action Move Start',
- Sig2Int('ANML'), 'Keyword Animal',
- Sig2Int('ANSC'), 'Action NonSupport Contact',
- Sig2Int('AODA'), 'Keyword Armor Material Daedric',
- Sig2Int('AODB'), 'Keyword Armor Material Dragonbone',
- Sig2Int('AODP'), 'Keyword Armor Material Dragonplate',
- Sig2Int('AODS'), 'Keyword Armor Material Dragonscale',
- Sig2Int('AODW'), 'Keyword Armor Material Dwarven',
- Sig2Int('AOEB'), 'Keyword Armor Material Ebony',
- Sig2Int('AOEL'), 'Keyword Armor Material Elven',
- Sig2Int('AOES'), 'Keyword Armor Material ElvenSplinted',
- Sig2Int('AOFE'), 'Keyword Armor Material Iron',
- Sig2Int('AOFL'), 'Keyword Armor Material FullLeather',
- Sig2Int('AOGL'), 'Keyword Armor Material Glass',
- Sig2Int('AOHI'), 'Keyword Armor Material Hide',
- Sig2Int('AOIB'), 'Keyword Armor Material IronBanded',
- Sig2Int('AOIH'), 'Keyword Armor Material ImperialHeavy',
- Sig2Int('AOIM'), 'Keyword Armor Material Imperial',
- Sig2Int('AOIR'), 'Keyword Armor Material ImperialReinforced',
- Sig2Int('AOOR'), 'Keyword Armor Material Orcish',
- Sig2Int('AOSC'), 'Keyword Armor Material Scaled',
- Sig2Int('AOSD'), 'Keyword Armor Material Studded',
- Sig2Int('AOSK'), 'Keyword Armor Material Stormcloak',
- Sig2Int('AOSP'), 'Keyword Armor Material SteelPlate',
- Sig2Int('AOST'), 'Keyword Armor Material Steel',
- Sig2Int('APIC'), 'Action Pipboy Close',
- Sig2Int('APID'), 'Action Pipboy Data',
- Sig2Int('APII'), 'Action Pipboy Inventory',
- Sig2Int('APIM'), 'Action Pipboy Map',
- Sig2Int('APIN'), 'Action Pipboy Inspect',
- Sig2Int('APIP'), 'Action Pipboy',
- Sig2Int('APIS'), 'Action Pipboy Stats',
- Sig2Int('APIT'), 'Action Pipboy Tab',
- Sig2Int('APIZ'), 'Action Pipboy Zoom',
- Sig2Int('APLH'), 'Action Pipboy Load Holotape',
- Sig2Int('APLN'), 'Action Dialogue Listen Neutral',
- Sig2Int('APNC'), 'Action Panic',
- Sig2Int('APPS'), 'Action Pipboy Select',
- Sig2Int('APR0'), 'Action Pipboy Radio Off',
- Sig2Int('APR1'), 'Action Pipboy Radio On',
- Sig2Int('APSH'), 'Allow Player Shout',
- Sig2Int('APTP'), 'Action Pipboy Tab Previous',
- Sig2Int('AREL'), 'Action Reload',
- Sig2Int('ARGI'), 'Action Ragdoll Instant',
- Sig2Int('ARTL'), 'Armor Material List',
- Sig2Int('ASFL'), 'Action Shuffle',
- Sig2Int('ASID'), 'Action Idle Stop Instant',
- Sig2Int('ASIR'), 'Action Sighted Release',
- Sig2Int('ASIT'), 'Action Sighted',
- Sig2Int('ATHR'), 'Action Throw',
- Sig2Int('ATKI'), 'Action Dialogue Talking',
- Sig2Int('ATLE'), 'Action Turn Left',
- Sig2Int('ATRI'), 'Action Turn Right',
- Sig2Int('ATSP'), 'Action Turn Stop',
- Sig2Int('AVVP'), 'Vampire Available Perks',
- Sig2Int('AVWP'), 'Unused',
- Sig2Int('AWWS'), 'Action Waterwalk Start',
- Sig2Int('AWWW'), 'Bunny Faction',
- Sig2Int('BAPO'), 'Base Potion',
- Sig2Int('BAPS'), 'Base Poison',
- Sig2Int('BEEP'), 'Keyword Robot',
- Sig2Int('BENA'), 'Base Armor Enchantment',
- Sig2Int('BENW'), 'Base Weapon Enchantment',
- Sig2Int('BTMS'), 'Battle Music',
- Sig2Int('CACA'), 'Commanded Actor Ability',
- Sig2Int('CHIK'), 'Chem Item keyword',
- Sig2Int('CLIK'), 'Clothes Item keyword',
- Sig2Int('CMPX'), 'Complex Scene Object',
- Sig2Int('CNMK'), 'Keyword nullptr Mod',
- Sig2Int('COEX'), 'Keyword Conditional Explosion',
- Sig2Int('COOK'), 'Keyword Cooking Pot',
- Sig2Int('CSTY'), 'Combat Style',
- Sig2Int('CWNE'), 'Keyword Civil War Neutral',
- Sig2Int('CWOK'), 'Keyword Civil War Owner',
- Sig2Int('DAED'), 'Keyword Daedra',
- Sig2Int('DBHF'), 'Dark Brotherhood Faction',
- Sig2Int('DCMS'), 'Dungeon Cleared Music',
- Sig2Int('DCZM'), 'Dragon Crash Zone Marker',
- Sig2Int('DDSC'), 'Dialogue Voice Category',
- Sig2Int('DEIS'), 'Drug Wears Off Image Space',
- Sig2Int('DFTS'), 'Footstep Set',
- Sig2Int('DGFL'), 'DialogueFollower Quest',
- Sig2Int('DIEN'), 'Keyword Disallow Enchanting',
- Sig2Int('DLMT'), 'Landscape Material',
- Sig2Int('DLZM'), 'Dragon Land Zone Marker',
- Sig2Int('DMFL'), 'Default Movement Type: Fly',
- Sig2Int('DMSN'), 'Default Movement Type: Sneak',
- Sig2Int('DMSW'), 'Default Movement Type: Swim',
- Sig2Int('DMWL'), 'Default Movement Type: Default',
- Sig2Int('DOP2'), 'Dialogue Output Model 3D',
- Sig2Int('DOP3'), 'Dialogue Output Model 2D',
- Sig2Int('DRAK'), 'Keyword Dragon',
- Sig2Int('DTMS'), 'Death Music',
- Sig2Int('EACA'), 'Every Actor Ability',
- Sig2Int('EPDF'), 'Eat Package Default Food',
- Sig2Int('FFFP'), 'Keyword Furniture Forces 1st Person',
- Sig2Int('FFTP'), 'Keyword Furniture Forces 3rd Person',
- Sig2Int('FOIK'), 'Food Item Keyword',
- Sig2Int('FORG'), 'Keyword Forge',
- Sig2Int('FTEL'), 'Male Face Texture Set: Eyes',
- Sig2Int('FTGF'), 'Fighters'' Guild Faction',
- Sig2Int('FTHD'), 'Male Face Texture Set: Head',
- Sig2Int('FTHF'), 'Female Face Texture Set: Head',
- Sig2Int('FTMF'), 'Female Face Texture Set: Mouth',
- Sig2Int('FTML'), 'Favor travel marker location',
- Sig2Int('FTMO'), 'Male Face Texture Set: Mouth',
- Sig2Int('FTNP'), 'Furniture Test NPC',
- Sig2Int('FTRF'), 'Female Face Texture Set: Eyes'
- ]);
-
- b := MakeVarRecs([
- Sig2Int('GCK1'), 'Keyword Generic Craftable Keyword 01',
- Sig2Int('GCK2'), 'Keyword Generic Craftable Keyword 02',
- Sig2Int('GCK3'), 'Keyword Generic Craftable Keyword 03',
- Sig2Int('GCK4'), 'Keyword Generic Craftable Keyword 04',
- Sig2Int('GCK5'), 'Keyword Generic Craftable Keyword 05',
- Sig2Int('GCK6'), 'Keyword Generic Craftable Keyword 06',
- Sig2Int('GCK7'), 'Keyword Generic Craftable Keyword 07',
- Sig2Int('GCK8'), 'Keyword Generic Craftable Keyword 08',
- Sig2Int('GCK9'), 'Keyword Generic Craftable Keyword 09',
- Sig2Int('GCKX'), 'Keyword Generic Craftable Keyword 10',
- Sig2Int('GFAC'), 'Guard Faction',
- Sig2Int('GLIK'), 'Gloves Item Keyword',
- Sig2Int('GOLD'), 'Gold',
- Sig2Int('GRIK'), 'Grenade Item Keyword',
- Sig2Int('HBAL'), 'Help Basic Alchemy',
- Sig2Int('HBBR'), 'Help Barter',
- Sig2Int('HBCO'), 'Help Basic Cooking',
- Sig2Int('HBEC'), 'Help Basic Enchanting',
- Sig2Int('HBFG'), 'Help Basic Forging',
- Sig2Int('HBFS'), 'Help Favorites',
- Sig2Int('HBFT'), 'Help Teamate Favor',
- Sig2Int('HBHJ'), 'Help Jail',
- Sig2Int('HBJL'), 'Help Journal',
- Sig2Int('HBLH'), 'Help Low Health',
- Sig2Int('HBLK'), 'Help Basic Lockpicking PC',
- Sig2Int('HBLM'), 'Help Low Magicka',
- Sig2Int('HBLS'), 'Help Low Stamina',
- Sig2Int('HBLU'), 'Help Leveling up',
- Sig2Int('HBLX'), 'Help Basic Lockpicking Console',
- Sig2Int('HBML'), 'Help Basic Smelting',
- Sig2Int('HBMM'), 'Help Map Menu',
- Sig2Int('HBOC'), 'Help Basic Object Creation',
- Sig2Int('HBSA'), 'Help Basic Smithing Armor',
- Sig2Int('HBSK'), 'Help Skills Menu',
- Sig2Int('HBSM'), 'Help Basic Smithing Weapon',
- Sig2Int('HBTA'), 'Help Basic Tanning',
- Sig2Int('HBWC'), 'Help Weapon Charge',
- Sig2Int('HCLL'), 'FormList Hair Color List',
- Sig2Int('HEIK'), 'Helmet Item Keyword',
- Sig2Int('HFSD'), 'Heartbeat Sound Fast',
- Sig2Int('HMPC'), 'Help Manual PC',
- Sig2Int('HMXB'), 'Help Manual XBox',
- Sig2Int('HRSK'), 'Keyword Horse',
- Sig2Int('HSSD'), 'Heartbeat Sound Slow',
- Sig2Int('HVFS'), 'Harvest Failed Sound',
- Sig2Int('HVSS'), 'Harvest Sound',
- Sig2Int('HWIK'), 'Heavy Weapon Item keyword',
- Sig2Int('IMDI'), 'Dialogue Imagespace',
- Sig2Int('IMID'), 'ImageSpaceModifier for inventory menu.',
- Sig2Int('IMLH'), 'Imagespace: Low Health',
- Sig2Int('IMPP'), 'ImageSpaceModifier for Pipboy menu in Power armor.',
- Sig2Int('IOPM'), 'Interface Output Model',
- Sig2Int('JRLF'), 'Jarl Faction',
- Sig2Int('JWLR'), 'Keyword Jewelry',
- Sig2Int('KHFL'), 'Kinect Help FormList',
- Sig2Int('KTRW'), 'Teammate Ready Weapon',
- Sig2Int('KWBR'), 'Color Form',
- Sig2Int('KWCU'), 'Keyword Cuirass',
- Sig2Int('KWDM'), 'Keyword DummyObject',
- Sig2Int('KWDO'), 'Keyword ClearableLocation',
- Sig2Int('KWGE'), 'Keyword UseGeometryEmitter',
- Sig2Int('KWMS'), 'Keyword MustStop',
- Sig2Int('LGH1'), 'Default Light 1',
- Sig2Int('LGH2'), 'Default Light 2',
- Sig2Int('LGH3'), 'Default Light 3',
- Sig2Int('LGH4'), 'Default Light 4',
- Sig2Int('LGHP'), 'Pipboy Light',
- Sig2Int('LKHO'), 'Keyword Hold Location',
- Sig2Int('LKPK'), 'Lockpick',
- Sig2Int('LMHP'), 'Local Map Hide Plane',
- Sig2Int('LRRD'), 'LocRefType Resource Destructible',
- Sig2Int('LRSO'), 'LocRefType Civil War Soldier',
- Sig2Int('LSIS'), 'Imagespace: Load screen',
- Sig2Int('MBIK'), 'Med Bag Item Keyword',
- Sig2Int('MDSC'), 'Music Sound Category',
- Sig2Int('MFSN'), 'Magic Fail Sound',
- Sig2Int('MGGF'), 'Mages'' Guild Faction',
- Sig2Int('MIIK'), 'Mine Item Keyword',
- Sig2Int('MMCL'), 'Main Menu Cell',
- Sig2Int('MMSD'), 'Map Menu Looping Sound',
- Sig2Int('MNTK'), 'Keyword Mount',
- Sig2Int('MTSC'), 'Master Sound Category',
- Sig2Int('MVBL'), 'Keyword Movable',
- Sig2Int('NASD'), 'No-Activation Sound',
- Sig2Int('NDSC'), 'Non-Dialogue Voice Category',
- Sig2Int('NMRD'), 'Road Marker',
- Sig2Int('NPCK'), 'Keyword NPC',
- Sig2Int('NRNT'), 'Keyword Nirnroot',
- Sig2Int('P3OM'), 'Player''s Output Model 3rd Person',
- Sig2Int('PDLC'), 'Pause During Loading Menu Category',
- Sig2Int('PDMC'), 'Pause During Menu Category Fade',
- Sig2Int('PDSA'), 'Putdown Sound Armor',
- Sig2Int('PDSB'), 'Putdown Sound Book',
- Sig2Int('PDSG'), 'Putdown Sound Generic',
- Sig2Int('PDSI'), 'Putdown Sound Ingredient',
- Sig2Int('PDSW'), 'Putdown Sound Weapon',
- Sig2Int('PFAC'), 'Player Faction',
- Sig2Int('PIMC'), 'Pause During Menu Category Immediate',
- Sig2Int('PIVV'), 'Player Is Vampire Variable',
- Sig2Int('PIWV'), 'UNUSED01',
- Sig2Int('PLOC'), 'PersistAll Location',
- Sig2Int('PLST'), 'Default Pack List',
- Sig2Int('POEQ'), 'Potion Equip',
- Sig2Int('POPM'), 'Player''s Output Model 1st Person',
- Sig2Int('PTEM'), 'Package Template',
- Sig2Int('PTFR'), 'PotentialFollower Faction',
- Sig2Int('PTNP'), 'Pathing Test NPC',
- Sig2Int('PUSA'), 'Pickup Sound Armor',
- Sig2Int('PUSB'), 'Pickup Sound Book',
- Sig2Int('PUSG'), 'Pickup Sound Generic',
- Sig2Int('PUSI'), 'Pickup Sound Ingredient',
- Sig2Int('PUSW'), 'Pickup Sound Weapon',
- Sig2Int('PVFA'), 'Player Voice Female',
- Sig2Int('PVFC'), 'Player Voice Female Child',
- Sig2Int('PVMA'), 'Player Voice Male',
- Sig2Int('PVMC'), 'Player Voice Male Child',
- Sig2Int('PWFD'), 'Wait-For-Dialogue Package',
- Sig2Int('QMEA'), 'Quest Marker Enemy Above',
- Sig2Int('QMEB'), 'Quest Marker Enemy Below',
- Sig2Int('QMEN'), 'Quest Marker Enemy',
- Sig2Int('QMFO'), 'Quest Marker Follower',
- Sig2Int('QMLO'), 'Quest Marker Location',
- Sig2Int('RIVR'), 'Vampire Race',
- Sig2Int('RIVS'), 'Vampire Spells',
- Sig2Int('RIWR'), 'UNUSED02',
- Sig2Int('RKIK'), 'Repair Kit Item Keyword',
- Sig2Int('RUSG'), 'Keyword Reusable SoulGem',
- Sig2Int('RVBT'), 'Reverb Type',
- Sig2Int('SALT'), 'Sitting Angle Limit',
- Sig2Int('SAT1'), 'Keyword Scale Actor To 1.0',
- Sig2Int('SCSD'), 'Soul Captured Sound',
- Sig2Int('SFDC'), 'SFX To Fade In Dialogue Category',
- Sig2Int('SFSN'), 'Shout Fail Sound',
- Sig2Int('SKLK'), 'Skeleton Key',
- Sig2Int('SLDM'), 'Snow LOD Material',
- Sig2Int('SLHD'), 'Snow LOD Material HD',
- Sig2Int('SMLT'), 'Keyword Smelter',
- Sig2Int('SMSC'), 'Stats Mute Category',
- Sig2Int('SPFK'), 'Keyword Special Furniture',
- Sig2Int('SSSC'), 'Stats Music',
- Sig2Int('TANN'), 'Keyword Tanning Rack',
- Sig2Int('TKAM'), 'Keyword Type Ammo',
- Sig2Int('TKAR'), 'Keyword Type Armor',
- Sig2Int('TKBK'), 'Keyword Type Book',
- Sig2Int('TKGS'), 'Telekinesis Grab Sound',
- Sig2Int('TKIG'), 'Keyword Type Ingredient',
- Sig2Int('TKKY'), 'Keyword Type Key',
- Sig2Int('TKMS'), 'Keyword Type Misc',
- Sig2Int('TKPT'), 'Keyword Type Potion',
- Sig2Int('TKSG'), 'Keyword Type SoulGem',
- Sig2Int('TKTS'), 'Telekinesis Throw Sound',
- Sig2Int('TKWP'), 'Keyword Type Weapon',
- Sig2Int('TVGF'), 'Thieves'' Guild Faction',
- Sig2Int('UNDK'), 'Keyword Undead',
- Sig2Int('URVT'), 'Underwater Reverb Type',
- Sig2Int('UWLS'), 'Underwater Loop Sound',
- Sig2Int('VAMP'), 'Keyword Vampire',
- Sig2Int('VLOC'), 'Virtual Location',
- Sig2Int('VOEQ'), 'Voice Equip',
- Sig2Int('WASN'), 'Ward Absorb Sound',
- Sig2Int('WBSN'), 'Ward Break Sound',
- Sig2Int('WDSN'), 'Ward Deflect Sound',
- Sig2Int('WEML'), 'Weapon Material List',
- Sig2Int('WMDA'), 'Keyword Weapon Material Daedric',
- Sig2Int('WMDH'), 'Keyword Weapon Material DraugrHoned',
- Sig2Int('WMDR'), 'Keyword Weapon Material Draugr',
- Sig2Int('WMDW'), 'Keyword Weapon Material Dwarven',
- Sig2Int('WMEB'), 'Keyword Weapon Material Ebony',
- Sig2Int('WMEL'), 'Keyword Weapon Material Elven',
- Sig2Int('WMFA'), 'Keyword Weapon Material Falmer',
- Sig2Int('WMFH'), 'Keyword Weapon Material FalmerHoned',
- Sig2Int('WMGL'), 'Keyword Weapon Material Glass',
- Sig2Int('WMIK'), 'Workshop Misc Item Keyword',
- Sig2Int('WMIM'), 'Keyword Weapon Material Imperial',
- Sig2Int('WMIR'), 'Keyword Weapon Material Iron',
- Sig2Int('WMOR'), 'Keyword Weapon Material Orcish',
- Sig2Int('WMST'), 'Keyword Weapon Material Steel',
- Sig2Int('WMWE'), 'World Map Weather',
- Sig2Int('WMWO'), 'Keyword Weapon Material Wood',
- Sig2Int('WPOK'), 'Workshop Player Ownership',
- Sig2Int('WTBA'), 'Keyword WeaponTypeBoundArrow',
- Sig2Int('WWSP'), 'UNUSED03'
- ]);
-
- c := CombineVarRecs(a, b);
-
- wbRecord(DOBJ, 'Default Object Manager', [
- wbEDID,
- wbArrayS(DNAM, 'Objects',
- wbStructSK([0], 'Object', [
- wbInteger('Use', itU32, wbEnum([], c), cpNormalIgnoreEmpty),
- wbFormID('Object ID', cpNormalIgnoreEmpty)
- ]), 0, cpNormalIgnoreEmpty, True, wbDOBJObjectsAfterLoad
- )
- ]);
-
- wbRecord(LGTM, 'Lighting Template', [
- wbEDID,
- wbStruct(DATA, 'Lighting', [
- wbByteColors('Ambient Color'),
- wbByteColors('Directional Color'),
- wbByteColors('Fog Color Near'),
- wbFloat('Fog Near'),
- wbFloat('Fog Far'),
- wbInteger('Directional Rotation XY', itS32),
- wbInteger('Directional Rotation Z', itS32),
- wbFloat('Directional Fade'),
- wbFloat('Fog Clip Distance'),
- wbFloat('Fog Power'),
- wbByteArray('Unused', 32, cpIgnore),
- wbByteColors('Fog Color Far'),
- wbFloat('Fog Max'),
- wbFloat('Light Fade Begin'),
- wbFloat('Light Fade End'),
- wbByteArray('Unused', 4, cpIgnore),
- wbFloat('Near Height Mid'),
- wbFloat('Near Height Range'),
- wbByteColors('Fog Color High Near'),
- wbByteColors('Fog Color High Far'),
- wbFloat('High Density Scale'),
- wbFloat('Fog Near Scale'),
- wbFloat('Fog Far Scale'),
- wbFloat('Fog High Near Scale'),
- wbFloat('Fog High Far Scale'),
- wbFloat('Far Height Mid'),
- wbFloat('Far Height Range')
- ], cpNormal, True, nil, 15),
- wbAmbientColors(DALC),
- wbFormIDCk(WGDR, 'God Rays', [GDRY])
- ]);
-
- wbRecord(MUSC, 'Music Type', [
- wbEDID,
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- {0x01} 'Plays One Selection',
- {0x02} 'Abrupt Transition',
- {0x04} 'Cycle Tracks',
- {0x08} 'Maintain Track Order',
- {0x10} 'Unknown 5',
- {0x20} 'Ducks Current Track',
- {0x40} 'Doesn''t Queue'
- ]), cpNormal, True),
- wbStruct(PNAM, 'Data', [
- wbInteger('Priority', itU16),
- wbInteger('Ducking (dB)', itU16, wbDiv(100))
- ]),
- wbFloat(WNAM, 'Fade Duration'),
- wbArray(TNAM, 'Music Tracks', wbFormIDCk('Track', [MUST, NULL]))
- ]);
-
- wbRecord(FSTP, 'Footstep', [
- wbEDID,
- wbFormIDCk(DATA, 'Impact Data Set', [IPDS, NULL], False, cpNormal, True),
- wbString(ANAM, 'Tag', 0, cpNormal, True)
- ]);
-
- wbRecord(FSTS, 'Footstep Set', [
- wbEDID,
- wbStruct(XCNT, 'Count', [
- wbInteger('Walking', itU32),
- wbInteger('Running', itU32),
- wbInteger('Sprinting', itU32),
- wbInteger('Sneaking', itU32),
- wbInteger('Swimming', itU32)
- ], cpNormal, True),
- wbArray(DATA, 'Footstep Sets', wbFormIDCk('Footstep', [FSTP]), 0, nil, nil, cpNormal, True)
- ]);
-
- wbSMNodeFlags := wbFlags([
- 'Random',
- 'Warn if no child quest started'
- ]);
-
- wbRecord(SMBN, 'Story Manager Branch Node', [
- wbEDID,
- wbFormIDCk(PNAM, 'Parent ', [SMQN, SMBN, SMEN, NULL]),
- wbFormIDCk(SNAM, 'Child ', [SMQN, SMBN, SMEN, NULL], False, cpBenign),
- wbCITC,
- wbCTDAsCount,
- wbInteger(DNAM, 'Flags', itU32, wbSMNodeFlags),
- wbUnknown(XNAM)
- ], False, nil, cpNormal, False, nil, wbConditionsAfterSet);
-
- wbRecord(SMQN, 'Story Manager Quest Node', [
- wbEDID,
- wbFormIDCk(PNAM, 'Parent ', [SMQN, SMBN, SMEN, NULL]),
- wbFormIDCk(SNAM, 'Child ', [SMQN, SMBN, SMEN, NULL], False, cpBenign),
- wbCITC,
- wbCTDAsCount,
- wbStruct(DNAM, 'Flags', [
- wbInteger('Node Flags', itU16, wbSMNodeFlags),
- wbInteger('Quest Flags', itU16, wbFlags([
- 'Do all before repeating',
- 'Shares event',
- 'Num quests to run'
- ]))
- ]),
- wbInteger(XNAM, 'Max concurrent quests', itU32),
- wbInteger(MNAM, 'Num quests to run', itU32),
- wbFloat(HNAM, 'Hours until reset'),
- wbInteger(QNAM, 'Quest Count', itU32, nil, cpBenign),
- wbRArray('Quests', wbRStructSK([0], 'Quest', [
- wbFormIDCk(NNAM, 'Quest', [QUST]),
- wbUnknown(FNAM),
- wbFloat(RNAM, 'Hours until reset', cpNormal, False, 1/24)
- ], []), cpNormal, False, nil, wbSMQNQuestsAfterSet)
- ], False, nil, cpNormal, False, nil, wbConditionsAfterSet);
-
- wbRecord(SMEN, 'Story Manager Event Node', [
- wbEDID,
- wbFormIDCk(PNAM, 'Parent ', [SMQN, SMBN, SMEN, NULL]),
- wbFormIDCk(SNAM, 'Child ', [SMQN, SMBN, SMEN, NULL]),
- wbCITC,
- wbCTDAsCount,
- wbInteger(DNAM, 'Flags', itU32, wbSMNodeFlags),
- wbUnknown(XNAM),
- wbString(ENAM, 'Type', 4)
- ], False, nil, cpNormal, False, nil, wbConditionsAfterSet);
-end;
-
-procedure DefineFO4j;
-begin
- wbRecord(DLBR, 'Dialog Branch', [
- wbEDID,
- wbFormIDCk(QNAM, 'Quest', [QUST], False, cpNormal, True),
- wbInteger(TNAM, 'Unknown', itU32),
- wbInteger(DNAM, 'Flags', itU32, wbFlags([
- {0x01} 'Top-Level',
- {0x02} 'Blocking',
- {0x04} 'Exclusive'
- ])),
- wbFormIDCk(SNAM, 'Starting Topic', [DIAL], False, cpNormal, True)
- ]);
-
- wbRecord(MUST, 'Music Track', [
- wbEDID,
- wbInteger(CNAM, 'Track Type', itU32, wbEnum([], [
- Int64($23F678C3), 'Palette',
- Int64($6ED7E048), 'Single Track',
- Int64($A1A9C4D5), 'Silent Track'
- ]), cpNormal, True),
- wbFloat(FLTV, 'Duration'),
- wbFloat(DNAM, 'Fade-Out'),
- wbString(ANAM, 'Track Filename'),
- wbString(BNAM, 'Finale Filename'),
- wbStruct(LNAM, 'Loop Data', [
- wbFloat('Loop Begins'),
- wbFloat('Loop Ends'),
- wbInteger('Loop Count', itU32)
- ]),
- wbArray(FNAM, 'Cue Points', wbFloat('Point')),
- wbCITC,
- wbCTDAsCount,
- wbArray(SNAM, 'Tracks', wbFormIDCk('Track', [MUST, NULL]))
- ], False, nil, cpNormal, False, nil, wbConditionsAfterSet);
-
- wbRecord(DLVW, 'Dialog View', [
- wbEDID,
- wbFormIDCk(QNAM, 'Quest', [QUST], False, cpNormal, True),
- wbRArray('Branches', wbFormIDCk(BNAM, 'Branch', [DLBR])),
- wbRArray('Unknown TNAM', wbRStruct('Unknown', [
- wbUnknown(TNAM)
- ], [])),
- wbUnknown(ENAM),
- wbUnknown(DNAM)
- ]);
-
- {wbRecord(WOOP, 'Word of Power', [
- wbEDID
- ]);}
-
- {wbRecord(SHOU, 'Shout', [
- wbEDID
- ]);}
-
- wbRecord(EQUP, 'Equip Type', [
- wbEDID,
- wbArray(PNAM, 'Slot Parents', wbFormIDCk('Parent', [EQUP])),
- wbInteger(DATA, 'Flags', itU32, wbFlags([
- 'Use All Parents',
- 'Parents Optional',
- 'Item Slot'
- ])),
- wbFormIDCk(ANAM, 'Condition Actor Value', [AVIF, NULL, FFFF])
- ]);
-
- wbRecord(RELA, 'Relationship', [
- wbEDID,
- wbStruct(DATA, 'Data', [
- wbFormIDCk('Parent', [NPC_, NULL]),
- wbFormIDCk('Child', [NPC_, NULL]),
- wbInteger('Rank', itU8, wbEnum([
- 'Lover',
- 'Ally',
- 'Confidant',
- 'Friend',
- 'Acquaitance',
- 'Rival',
- 'Foe',
- 'Enemy',
- 'Archnemesis'
- ])),
- wbByteArray('Unknown', 2),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Unknown 1',
- {0x02} 'Unknown 2',
- {0x04} 'Unknown 3',
- {0x08} 'Unknown 4',
- {0x10} 'Unknown 5',
- {0x20} 'Unknown 6',
- {0x40} 'Unknown 7',
- {0x80} 'Secret'
- ])),
- wbFormIDCk('Association Type', [ASTP, NULL])
- ])
- ]);
-
- wbRecord(SCEN, 'Scene', [
- wbEDID,
- wbVMADFragmentedSCEN,
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- {0x00000001} 'Begin on Quest Start',
- {0x00000002} 'Stop on Quest End',
- {0x00000004} 'Unknown 2',
- {0x00000008} 'Repeat Conditions While True',
- {0x00000010} 'Interruptible',
- {0x00000020} 'Unknown 5',
- {0x00000040} 'Prevent Player Exit Dialogue',
- {0x00000080} 'Unknown 7',
- {0x00000100} 'Unknown 8',
- {0x00000200} 'Unknown 9',
- {0x00000400} 'Unknown 10',
- {0x00000800} 'Disable Dialogue Camera',
- {0x00001000} 'No Follower Idle Chatter'
- ])),
- wbRArray('Phases',
- wbRStruct('Phase', [
- wbEmpty(HNAM, 'Marker Phase Start'),
- wbString(NAM0, 'Name'),
- wbRStruct('Start Conditions', [wbCTDAs], []),
- wbEmpty(NEXT, 'Marker Start Conditions'),
- wbRStruct('Completion Conditions', [wbCTDAs], []),
- wbEmpty(NEXT, 'Marker Completion Conditions'),
- wbInteger(WNAM, 'Editor Width', itU32),
- wbInteger(FNAM, 'Flags', itU16, wbFlags([
- {0x0001} 'Start - WalkAway Phase',
- {0x0002} 'Don''t Run End Scripts on Scene Jump',
- {0x0004} 'Start - Inherit In Templated Scenes'
- ])),
- wbStruct(SCQS, 'Set Parent Quest Stage', [
- wbInteger('On Start', itS16),
- wbInteger('On Completion', itS16)
- ]),
- wbEmpty(HNAM, 'Marker Phase End')
- ], [])
- ),
- wbRArray('Actors', wbRStruct('Actor', [
- wbInteger(ALID, 'Alias ID', itS32),
- wbInteger(LNAM, 'Flags', itU32, wbFlags([
- 'No Player Activation',
- 'Optional',
- 'Run Only Scene Packages',
- 'No Command State'
- ])),
- wbInteger(DNAM, 'Behaviour Flags', itU32, wbFlags([
- 'Death Pause',
- 'Death End',
- 'Combat Pause',
- 'Combat End',
- 'Dialogue Pause',
- 'Dialogue End',
- 'OBS_COM Pause',
- 'OBS_COM End'
- ]))
- ], [])),
- wbRArray('Actions', wbRStruct('Action', [
- wbInteger(ANAM, 'Type', itU16, wbEnum([
- {0} 'Dialogue',
- {1} 'Package',
- {2} 'Timer',
- {3} 'Player Dialogue',
- {4} 'Start Scene',
- {5} 'NPC Response Dialogue',
- {6} 'Radio'
- ])),
- wbString(NAM0, 'Name'),
- wbInteger(ALID, 'Alias ID', itS32),
- wbInteger(INAM, 'Index', itU32),
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- {0x00000001} 'Unknown 0',
- {0x00000002} 'Unknown 1',
- {0x00000004} 'Unknown 2',
- {0x00000008} 'Unknown 3',
- {0x00000010} 'Unknown 4',
- {0x00000020} 'Unknown 5',
- {0x00000040} 'Unknown 6',
- {0x00000080} 'Player Positive Use Dialogue Subtype / Hold Into Next Scene',
- {0x00000100} 'Player Negative Use Dialogue Subtype',
- {0x00000200} 'Player Neutral Use Dialogue Subtype',
- {0x00000400} 'Use Dialogue Subtype',
- {0x00000800} 'Player Question Use Dialogue Subtype',
- {0x00001000} 'Keep/Clear Target on Action End',
- {0x00002000} 'Unknown 13',
- {0x00004000} 'Unknown 14',
- {0x00008000} 'Face Target',
- {0x00010000} 'Looping',
- {0x00020000} 'Headtrack Player',
- {0x00040000} 'Unknown 18',
- {0x00080000} 'Ignore For Completion',
- {0x00100000} 'Unknown 20',
- {0x00200000} 'Camera Speaker Target',
- {0x00400000} 'Complete Face Target',
- {0x00800000} 'Unknown 23',
- {0x01000000} 'Unknown 24',
- {0x02000000} 'Unknown 25',
- {0x04000000} 'Unknown 26',
- {0x08000000} 'NPC Positive Use Dialogue Subtype',
- {0x10000000} 'NPC Negative Use Dialogue Subtype',
- {0x20000000} 'NPC Neutral Use Dialogue Subtype',
- {0x40000000} 'NPC Question Use Dialogue Subtype'
- ])),
- wbInteger(SNAM, 'Start Phase', itU32),
- wbInteger(ENAM, 'End Phase', itU32),
- wbFloat(SNAM, 'Timer - Max Seconds'),
- wbInteger(SCQS, 'Set Parent Quest Stage', itS16),
- wbFloat(TNAM, 'Timer - Min Seconds'),
- wbUnknown(STSC),
- wbRStructs('Start Scenes', 'Start Scene', [
- wbFormIDCk(LCEP, 'Scene', [SCEN]),
- wbInteger(INTT, 'Phase Index', itU16),
- wbString(SSPN, 'Start Phase for Scene'),
- wbCITC,
- wbCTDAs
- ], []),
- wbFormIDCk(PTOP, 'Player Positive Response', [DIAL]),
- wbFormIDCk(NTOP, 'Player Negative Response', [DIAL]),
- wbFormIDCk(NETO, 'Player Neutral Response', [DIAL]),
- wbFormIDCk(QTOP, 'Player Question Response', [DIAL]),
- wbFormIDCk(VENC, 'Player Positive Dialogue Subtype', [KYWD]),
- wbFormIDCk(PLVD, 'Player Negative Dialogue Subtype', [KYWD]),
- wbFormIDCk(JOUT, 'Player Neutral Dialogue Subtype', [KYWD]),
- wbFormIDCk(DALC, 'Player Question Dialogue Subtype', [KYWD]),
- wbArray(DTID, 'NPC Headtracking', wbInteger('Actor ID', itS32)),
- wbFormIDCk(NPOT, 'NPC Positive Response', [DIAL]),
- wbFormIDCk(NNGT, 'NPC Negative Response', [DIAL]),
- wbFormIDCk(NNUT, 'NPC Neutral Response', [DIAL]),
- wbFormIDCk(NQUT, 'NPC Question Response', [DIAL]),
- wbFormIDCk(NPOS, 'NPC Positive Dialogue Subtype', [KYWD]),
- wbFormIDCk(NNGS, 'NPC Negative Dialogue Subtype', [KYWD]),
- wbFormIDCk(NNUS, 'NPC Neutral Dialogue Subtype', [KYWD]),
- wbFormIDCk(NQUS, 'NPC Question Dialogue Subtype', [KYWD]),
- wbInteger(DTGT, 'Dialogue Target Actor', itS32),
- wbRArray('Packages', wbFormIDCk(PNAM, 'Package', [PACK])),
- wbFormIDCk(DATA, 'Topic', [DIAL, NULL]),
- wbUnion(HTID, '', wbSceneActionSoundDecider, [
- wbEmpty('End Scene Say Greeting'),
- wbFormIDCk('Play Sound', [SNDR, NULL])
- ]),
- wbFloat(DMAX, 'Looping - Max'),
- wbFloat(DMIN, 'Looping - Min'),
- wbStruct(CRIS, 'Camera', [
- wbFloat('FOV On Player Camera'),
- wbFloat('Rate Of Camera Change')
- ]),
- wbInteger(DEMO, 'Emotion Type', itU32, wbEmotionTypeEnum),
- wbInteger(DEVA, 'Emotion Value', itU32),
- wbArray(HTID, 'Player Headtracking', wbInteger('Actor ID', itS32)),
- wbFormIDCk(VENC, 'Dialogue Subtype', [KYWD]),
- wbFormIDCk(PNAM, 'AnimArchType', [KYWD]),
- wbFormIDCk(ONAM, 'Audio Output Override', [SOPM]),
- wbEmpty(ANAM, 'End Marker')
- ], [])),
- wbFormIDCk(PNAM, 'Quest', [QUST]),
- wbInteger(INAM, 'Last Action Index', itU32),
- wbUnknown(VNAM),
- wbFloat(CNAM, 'Camera Distance Override'),
- wbFloat(ACTV, 'Dialogue Distance Override'),
- wbFloat(CRIS, 'FOV Override'),
- wbKSIZ,
- wbKWDAs,
- wbCTDAs,
- wbStruct(SCQS, 'Set Parent Quest Stage', [
- wbInteger('On Begin', itS16),
- wbInteger('On End', itS16)
- ]),
- wbString(NNAM, 'Notes'),
- wbFormIDCk(TNAM, 'Template Scene', [SCEN]),
- wbInteger(XNAM, 'Index', itU32)
- ]);
-
- wbRecord(ASTP, 'Association Type', [
- wbEDID,
- wbString(MPRT, 'Male Parent Title'),
- wbString(FPRT, 'Female Parent Title'),
- wbString(MCHT, 'Male Child Title'),
- wbString(FCHT, 'Female Child Title'),
- wbInteger(DATA, 'Flags', itU32, wbFlags([
- 'Family Association'
- ]))
- ]);
-end;
-
-procedure DefineFO4k;
-begin
-
- wbSPED := wbStruct(SPED, 'Movement Data', [
- wbFloat('Unknown'),
- wbFloat('Walk - Left'),
- wbFloat('Run - Left'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Walk - Right'),
- wbFloat('Run - Right'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Walk - Forward'),
- wbFloat('Run - Forward'),
- wbFloat('Sprint - Forward'),
- wbFloat('Unknown'),
- wbFloat('Walk - Back'),
- wbFloat('Run - Back'),
- wbFloat('Unknown'),
- wbFloat('Standing - Pitch', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Walk - Pitch', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Run - Pitch', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Sprint - Pitch', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Unknown'{, cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize}),
- wbFloat('Unknown'{, cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize}),
- wbFloat('Unknown'{, cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize}),
- wbFloat('Unknown'{, cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize}),
- wbFloat('Standing - Yaw', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Walk - Yaw', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Run - Yaw', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Sprint - Yaw', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ], cpNormal, True, nil, 10);
-
- wbRecord(OTFT, 'Outfit', [
- wbEDID,
- wbArrayS(INAM, 'Items', wbFormIDCk('Item', [ARMO, LVLI]))
- ]);
-
- wbRecord(ARTO, 'Art Object', [
- wbEDID,
- wbOBNDReq,
- wbPTRN,
- wbKSIZ,
- wbKWDAs,
- wbMODL,
- wbInteger(DNAM, 'Art Type', itU32, wbEnum([
- 'Magic Casting',
- 'Magic Hit Effect',
- 'Enchantment Effect'
- ]))
- ]);
-
- wbRecord(MATO, 'Material Object', [
- wbEDID,
- wbMODL,
- wbRArray('Property Data',
- wbByteArray(DNAM, 'Data', 0, cpIgnore, False, False, wbNeverShow)
- ),
- wbStruct(DATA, 'Directional Material Data', [
- wbFloat('Falloff Scale'),
- wbFloat('Falloff Bias'),
- wbFloat('Noise UV Scale'),
- wbFloat('Material UV Scale'),
- wbStruct('Projection Vector', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbFloat('Normal Dampener'),
- wbFloatColors('Single Pass Color'),
- wbInteger('Flags', itU32, wbFlags(['Single Pass']))
- ], cpNormal, True, nil, 5)
- ]);
-
- wbRecord(MOVT, 'Movement Type', [
- wbEDID,
- wbString(MNAM, 'Name'),
- wbSPED,
- wbStruct(INAM, 'Anim Change Thresholds (unused)', [
- wbFloat('Directional', cpNormal, True, 180/Pi),
- wbFloat('Movement Speed'),
- wbFloat('Rotation Speed', cpNormal, True, 180/Pi)
- ]),
- wbFloat(JNAM, 'Float Height'),
- wbFloat(LNAM, 'Flight - Angle Gain')
- ]);
-
- wbRecord(SNDR, 'Sound Descriptor', [
- wbEDID,
- wbString(NNAM, 'Notes'),
- wbInteger(CNAM, 'Descriptor Type', itU32, wbEnum([], [
- Int64($1EEF540A), 'Standard',
- Int64($54651A43), 'Compound',
- Int64($ED157AE3), 'AutoWeapon'
- ])),
- wbFormIDCk(GNAM, 'Category', [SNCT]),
- wbFormIDCk(SNAM, 'Alternate Sound For', [SNDR]),
- wbRArray('Sounds',
- wbRStruct('Sound Files', [
- wbString(ANAM, 'File Name')
- ], [])
- ),
- wbFormIDCk(ONAM, 'Output Model', [SOPM]),
- wbCTDAs,
- wbStruct(LNAM, 'Values', [
- wbByteArray('Unknown', 1),
- wbInteger('Looping', itU8, wbEnum([], [
- $00, 'None',
- $08, 'Loop',
- $10, 'Envelope Fast',
- $20, 'Envelope Slow'
- ])),
- wbInteger('Sidechain', itU8),
- wbInteger('Rumble Send Value = (Small / 7) + ((Big / 7) * 16)', itU8)
- ]),
- wbUnion(BNAM, 'Data', wbSNDRDataDecider, [
- wbStruct('Values', [
- wbInteger('% Frequency Shift', itS8),
- wbInteger('% Frequency Variance', itS8),
- wbInteger('Priority', itU8),
- wbInteger('db Variance', itU8),
- wbInteger('Static Attenuation (db)', itU16, wbDiv(100))
- ]),
- wbFormIDCk('Base Descriptor', [SNDR])
- ]),
- wbRArray('Descriptors', wbFormIDCk(DNAM, 'Descriptor', [SNDR])),
- wbInteger(ITMC, 'Count', itU32, nil, cpBenign),
- wbRArrayS('Rates of Fire',
- wbRStructSK([1], 'Sound', [
- wbEmpty(ITMS, 'Marker Start'),
- wbInteger(INTV, 'RoF (RPM)', itU32),
- wbString(FNAM, 'File'),
- wbEmpty(ITME, 'Marker End')
- ], []),
- cpNormal, False, nil, wbSNDRRatesOfFireAfterSet
- )
- ]);
-
- wbRecord(DUAL, 'Dual Cast Data', [
- wbEDID
- ]);
-
- wbRecord(SNCT, 'Sound Category', [
- wbEDID,
- wbFULL,
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- {0x0000001} 'Mute When Submerged',
- {0x0000002} 'Should Appear on Menu',
- {0x0000004} 'Immune to Time Speedup',
- {0x0000008} 'Pause During Menus (Immed)',
- {0x0000010} 'Pause During Menus (Fade)',
- {0x0000020} 'Exclude from Player OPM Override',
- {0x0000040} 'Pause During Start Menu'
- ]), cpNormal, True),
- wbFormIDCk(PNAM, 'Parent Category', [SNCT]),
- wbFormIDCk(ONAM, 'Menu Slider Category', [SNCT]),
- wbInteger(VNAM, 'Static Volume Multiplier', itU16, wbDiv(65535)),
- wbInteger(UNAM, 'Default Menu Value', itU16, wbDiv(65535)),
- wbFloat(MNAM, 'Min Frequency Multiplier'),
- wbFloat(CNAM, 'Sidechain Target Multiplier')
- ]);
-
- wbRecord(SOPM, 'Sound Output Model', [
- wbEDID,
- wbStruct(NAM1, 'Data', [
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Attenuates With Distance',
- {0x02} 'Allows Rumble',
- {0x04} 'Applies Doppler',
- {0x08} 'Applies Distance Delay',
- {0x10} 'Player Output Model',
- {0x20} 'Try Play on Controller',
- {0x40} 'Causes Ducking',
- {0x80} 'Avoids Ducking'
- ])),
- wbByteArray('Unknown', 2),
- wbInteger('Reverb Send %', itU8)
- ]),
- wbInteger(MNAM, 'Type', itU32, wbEnum([
- 'Uses HRTF',
- 'Defined Speaker Output'
- ])),
- wbInteger(VNAM, 'Static Attenuation', itS16, wbDiv(100)),
- wbStruct(ONAM, 'Output Values', [
- wbArray('Channels', wbStruct('', [
- wbInteger('FL', itU8),
- wbInteger('FR', itU8),
- wbInteger('C', itU8),
- wbInteger('LFE', itU8),
- wbInteger('RL', itU8),
- wbInteger('RR', itU8),
- wbInteger('SL', itU8),
- wbInteger('SR', itU8)
- ]), [
- 'Channel 0',
- 'Channel 1',
- 'Channel 2? (unused)'
- ])
- ]),
- wbStruct(ATTN, 'Attenuation Values', [
- wbFloat('Fade In Distance - Start'),
- wbFloat('Fade In Distance - End'),
- wbFloat('Fade Out Distance - Start'),
- wbFloat('Fade Out Distance - End'),
- wbStruct('Fade In Curve', [
- wbInteger('Value 1', itU8),
- wbInteger('Value 2', itU8),
- wbInteger('Value 3', itU8),
- wbInteger('Value 4', itU8)
- ]),
- wbStruct('Fade Out Curve', [
- wbInteger('Value 1', itU8),
- wbInteger('Value 2', itU8),
- wbInteger('Value 3', itU8),
- wbInteger('Value 4', itU8)
- ])
- ]),
- wbFormIDCk(ENAM, 'Effect Chain', [AECH])
- ]);
-
- wbRecord(COLL, 'Collision Layer', [
- wbEDID,
- wbDESCReq,
- wbInteger(BNAM, 'Index', itU32, nil, cpNormal, True),
- wbStruct(FNAM, 'Debug Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbInteger('Unused', itU8)
- ], cpNormal, True),
- wbInteger(GNAM, 'Flags', itU32, wbFlags([
- {0x00000001} 'Trigger Volume',
- {0x00000002} 'Sensor',
- {0x00000004} 'Navmesh Obstacle'
- ]), cpNormal, True),
- wbString(MNAM, 'Name', 0, cpNormal, True),
- wbInteger(INTV, 'Interactables Count', itU32, nil, cpNormal, True),
- wbArrayS(CNAM, 'Collides With', wbFormIDCk('Forms', [COLL]), 0, cpNormal, False)
- ]);
-
- wbRecord(CLFM, 'Color',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Non-Playable'
- ])), [
- wbEDID,
- wbFULL,
- // union decider doesn't work during copying since decision data FNAM is located after it
- // workaround using integer formatters
- wbInteger(CNAM, 'Color/Index', itU32, wbCLFMColorToStr, wbCLFMColorToInt),
- {wbUnion(CNAM, 'Value', wbCLFMColorDecider, [
- wbByteColors('Color'),
- wbFloat('Remapping Index')
- ]),}
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- 'Playable',
- 'Remapping Index',
- 'Extended LUT'
- ]), cpNormal, True),
- wbCTDAs
- ]);
-end;
-
-procedure DefineFO4l;
-begin
- wbRecord(REVB, 'Reverb Parameters', [
- wbEDID,
- wbStruct(DATA, 'Data', [
- wbInteger('Decay Time (ms)', itU16),
- wbInteger('HF Reference (Hz)', itU16),
- wbInteger('Room Filter', itS8),
- wbInteger('Room HF Filter', itS8),
- wbInteger('Reflections', itS8),
- wbInteger('Reverb Amp', itS8),
- wbInteger('Decay HF Ratio', itU8, wbDiv(100)),
- wbInteger('Reflect Delay (ms), scaled', itU8),
- wbInteger('Reverb Delay (ms)', itU8),
- wbInteger('Diffusion %', itU8),
- wbInteger('Density %', itU8),
- wbInteger('Unknown', itU8)
- ], cpNormal, True),
- wbInteger(ANAM, 'Reverb Class', itU32, wbReverbClassEnum, cpNormal, True)
- ]);
-
- wbRecord(GRAS, 'Grass', [
- wbEDID,
- wbOBNDReq,
- wbMODL,
- wbStruct(DATA, '', [
- wbInteger('Density', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbByteArray('Unknown', 1),
- wbInteger('Units From Water', itU16),
- wbByteArray('Unknown', 2),
- wbInteger('Units From Water Type', itU32, wbEnum([
- 'Above - At Least',
- 'Above - At Most',
- 'Below - At Least',
- 'Below - At Most',
- 'Either - At Least',
- 'Either - At Most',
- 'Either - At Most Above',
- 'Either - At Most Below'
- ])),
- wbFloat('Position Range'),
- wbFloat('Height Range'),
- wbFloat('Color Range'),
- wbFloat('Wave Period'),
- wbInteger('Flags', itU8, wbFlags([
- 'Vertex Lighting',
- 'Uniform Scaling',
- 'Fit to Slope'
- ])),
- wbByteArray('Unknown', 3)
- ], cpNormal, True)
- ]);
-
- wbRecord(IDLE, 'Idle Animation', [
- wbEDID,
- wbCTDAs,
- wbString(DNAM, 'Behavior Graph'),
- wbString(ENAM, 'Animation Event'),
- wbArray(ANAM, 'Related Idle Animations', wbFormIDCk('Related Idle Animation', [AACT, IDLE, NULL]),
- ['Parent', 'Previous Sibling'], cpNormal, True),
- wbStruct(DATA, '', [
- wbStruct('Looping seconds (both 255 forever)', [
- wbInteger('Min', itU8),
- wbInteger('Max', itU8)
- ]),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Parent',
- {0x02} 'Sequence',
- {0x04} 'No Attacking',
- {0x04} 'Blocking'
- ], True)),
- wbInteger('Animation Group Section', itU8{, wbIdleAnam}),
- wbInteger('Replay Delay', itU16)
- ], cpNormal, True),
- wbString(GNAM, 'Animation File')
- ]);
-
- wbRecord(INFO, 'Dialog response',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000040} 6, 'Unknown 6',
- {0x00000080} 7, 'Exclude From Export',
- {0x00002000} 13, 'Actor Changed'
- ])), [
- wbEDID,
- wbVMADFragmentedINFO,
- wbStruct(ENAM, 'Response flags', [
- wbInteger('Flags', itU16, wbFlags([
- {0x0001} 'Start Scene on End',
- {0x0002} 'Random',
- {0x0004} 'Say Once',
- {0x0008} 'Requires Player Activation',
- {0x0010} 'Unknown 4',
- {0x0020} 'Random End',
- {0x0040} 'End Running Scene',
- {0x0080} 'ForceGreet Hello',
- {0x0100} 'Player Address',
- {0x0200} 'Unknown 9',
- {0x0400} 'Can Move While Greeting',
- {0x0800} 'No LIP File',
- {0x1000} 'Requires post-processing',
- {0x2000} 'Audio Output Override',
- {0x4000} 'Has Capture',
- {0x8000} 'Unknown 16'
- ])),
- wbInteger('Reset Hours', itU16, wbDiv(2730))
- ]),
- wbFormIDCk(TPIC, 'Topic', [DIAL]),
- wbFormIDCkNoReach(PNAM, 'Previous INFO', [INFO, NULL], False, cpBenign),
- wbFormIDCk(DNAM, 'Shared INFO', [INFO]),
- wbFormIDCk(GNAM, 'Unknown', [INFO]),
- wbString(IOVR, 'Override Filename'),
-
- wbRArray('Responses', wbRStruct('Response', [
- wbStruct(TRDA, 'Response Data', [
- wbFormIDCk('Emotion', [KYWD, FFFF]),
- wbInteger('Response number', itU8),
- wbByteArray('Unused', 3),
- wbByteArray('Unknown', 2),
- wbInteger('Interrupt Percentage', itU16),
- wbInteger('Camera Target Alias', itS32),
- wbInteger('Camera Location Alias', itS32)
- ]),
- wbLStringKC(NAM1, 'Response Text', 0, cpTranslate, True),
- wbString(NAM2, 'Script Notes', 0, cpNormal, True),
- wbString(NAM3, 'Edits', 0, cpNormal, True),
- wbString(NAM4, 'Alternate LIP Text', 0, cpNormal, True),
- wbFormIDCk(SNAM, 'Idle Animations: Speaker', [IDLE]),
- wbFormIDCk(LNAM, 'Idle Animations: Listener', [IDLE]),
- wbInteger(TNAM, 'Interrupt Percentage', itU16),
- wbByteArray(NAM9, 'Text Hash'),
- wbFormIDCk(SRAF, 'Camera Path', [CPTH]),
- wbEmpty(WZMD, 'Stop on Scene End')
- ], [])),
-
- wbCTDAs,
- wbLString(RNAM, 'Prompt', 0, cpTranslate),
- wbFormIDCk(ANAM, 'Speaker', [NPC_]),
- wbFormIDCk(TSCE, 'Start Scene', [SCEN]),
- wbInteger(ALFA, 'Forced Alias', itS32),
- wbUnknown(INTV),
- wbFormIDCk(ONAM, 'Audio Output Override', [SOPM]),
- wbInteger(GREE, 'Greet Distance', itU32),
- wbStruct(TIQS, 'Set Parent Quest Stage', [
- wbInteger('On Begin', itS16),
- wbInteger('On End', itS16)
- ]),
- wbString(NAM0, 'Start Scene Phase'),
- wbInteger(INCC, 'Challenge', itU32, wbEnum([
- {0} 'None',
- {1} 'Easy',
- {2} 'Medium',
- {3} 'Hard',
- {4} 'Always Succeeds',
- {5} 'Easy Repeatable',
- {6} 'Medium Repeatable',
- {7} 'Hard Repeatable'
- ])),
- wbFormIDCk(MODQ, 'Reset Global', [GLOB]),
- wbInteger(INAM, 'Subtitle Priority', itU32, wbEnum([
- 'Low',
- 'Normal',
- 'Unknown 2',
- 'Force'
- ]))
- ], False, wbINFOAddInfo, cpNormal, False, nil{wbINFOAfterLoad});
-
- wbRecord(INGR, 'Ingredient', [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbFULL,
- wbKSIZ,
- wbKWDAs,
- wbMODL,
- wbICON,
- wbMICO,
- wbDEST,
- wbETYP,
- wbYNAM,
- wbZNAM,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbStruct(ENIT, 'Effect Data', [
- wbInteger('Ingredient Value', itS32),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'No auto-calculation',
- {0x00000002} 'Food item',
- {0x00000004} 'Unknown 3',
- {0x00000008} 'Unknown 4',
- {0x00000010} 'Unknown 5',
- {0x00000020} 'Unknown 6',
- {0x00000040} 'Unknown 7',
- {0x00000080} 'Unknown 8',
- {0x00000100} 'References Persist'
- ]))
- ], cpNormal, True),
- wbEffectsReq
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
- wbRecord(KEYM, 'Key',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000800} 11, 'Calc Value From Components',
- {0x00002000} 13, 'Pack-In Use Only'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULLReq,
- wbMODL,
- wbICON,
- wbMICO,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbKSIZ,
- wbKWDAs,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
- wbQuadrantEnum := wbEnum([
- {0} 'Bottom Left',
- {1} 'Bottom Right',
- {2} 'Top Left',
- {3} 'Top Right'
- ]);
-
- if wbSimpleRecords then begin
-
- wbRecord(LAND, 'Landscape',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00040000} 18, 'Compressed'
- ]), [18]), [
- wbByteArray(DATA, 'Unknown'),
- wbByteArray(VNML, 'Vertex Normals'),
- wbByteArray(VHGT, 'Vertext Height Map'),
- wbByteArray(VCLR, 'Vertex Colours'),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unknown', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unknown', 1),
- wbInteger('Layer', itS16)
- ]),
- wbByteArray(VTXT, 'Alpha Layer Data')
- ], [])
- ], [])),
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL])),
- wbRArray('Unknown', wbUnknown(MPCD))
- ]);
-
- end else begin
-
- wbRecord(LAND, 'Landscape',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00040000} 18, 'Compressed'
- ]), [18]), [
- wbByteArray(DATA, 'Unknown'),
- wbArray(VNML, 'Vertex Normals', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
- wbStruct(VHGT, 'Vertext Height Map', [
- wbFloat('Offset'),
- wbArray('Rows', wbStruct('Row', [
- wbArray('Columns', wbInteger('Column', itU8), 33)
- ]), 33),
- wbByteArray('Unknown', 3)
- ]),
- wbArray(VCLR, 'Vertex Colours', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unknown', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unknown', 1),
- wbInteger('Layer', itS16)
- ]),
- wbArrayS(VTXT, 'Alpha Layer Data', wbStructSK([0], 'Cell', [
- wbInteger('Position', itU16, wbAtxtPosition),
- wbByteArray('Unknown', 2),
- wbFloat('Opacity')
- ]))
- ], [])
- ], [])),
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL])),
- wbRArray('Unknown', wbUnknown(MPCD))
- ]);
-
- end;
-
- wbRecord(LIGH, 'Light',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00010000} 16, 'Random Anim Start',
- {0x00020000} 17, 'Unknown 17',
- {0x00020000} 25, 'Obstacle',
- {0x00020000} 28, 'Portal-strict'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbMODL,
- wbKSIZ,
- wbKWDAs,
- wbDEST,
- wbPRPS,
- wbFULL,
- wbICON,
- wbMICO,
- wbStruct(DATA, '', [
- wbInteger('Time', itS32),
- wbInteger('Radius', itU32),
- wbByteColors('Color'),
- // Omnidirectional is the default type
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Unknown 0',
- {0x00000002} 'Can be Carried',
- {0x00000004} 'Unknown 2',
- {0x00000008} 'Flicker',
- {0x00000010} 'Unknown 4',
- {0x00000020} 'Off By Default',
- {0x00000040} 'Unknown 6',
- {0x00000080} 'Pulse',
- {0x00000100} 'Unknown 8',
- {0x00000200} 'Unknown 9',
- {0x00000400} 'Shadow Spotlight',
- {0x00000800} 'Shadow Hemisphere',
- {0x00001000} 'Shadow OmniDirectional',
- {0x00002000} 'Unknown 13',
- {0x00004000} 'NonShadow Spotlight',
- {0x00008000} 'Non Specular',
- {0x00010000} 'Attenuation Only',
- {0x00020000} 'NonShadow Box',
- {0x00040000} 'Ignore Roughness',
- {0x00080000} 'No Rim Lighting',
- {0x00100000} 'Ambient Only',
- {0x00200000} 'Unknown 21' // only in [001C7F0C]
- ])),
- wbFloat('Falloff Exponent'),
- wbFloat('FOV'),
- wbFloat('Near Clip'),
- wbStruct('Flicker Effect', [
- wbFloat('Period'),
- wbFloat('Intensity Amplitude'),
- wbFloat('Movement Amplitude')
- ]),
- wbFloat('Constant'),
- wbFloat('Scalar'),
- wbFloat('Exponent'),
- wbFloat('God Rays - Near Clip'),
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True, nil, 10),
- wbFloat(FNAM, 'Fade value', cpNormal, True),
- wbString(NAM0, 'Gobo'),
- wbFormIDCk(LNAM, 'Lens', [LENS]),
- wbFormIDCk(WGDR, 'God Rays', [GDRY]),
- wbFormIDCk(SNAM, 'Sound', [SNDR])
- ], False, nil, cpNormal, False, wbLIGHAfterLoad);
-end;
-
-procedure DefineFO4m;
-begin
-
- wbRecord(LSCR, 'Load Screen',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000400} 10, 'Displays In Main Menu',
- {0x00008000} 15, 'No Rotation'
- ])), [
- wbEDID,
- wbDESCReq,
- wbCTDAs,
- wbFormIDCk(NNAM, 'Loading Screen NIF', [STAT, SCOL, NULL], False, cpNormal, True),
- wbFormIDCk(TNAM, 'Transform', [TRNS]),
- wbStruct(ONAM, 'Rotation', [
- wbInteger('Min', itS16),
- wbInteger('Max', itS16)
- ]),
- wbStruct(ZNAM, 'Zoom', [
- wbFloat('Min'),
- wbFloat('Max')
- ]),
- wbString(MOD2, 'Camera Path', 0, cpNormal, False)
- ]);
-
- wbRecord(LTEX, 'Landscape Texture', [
- wbEDID,
- wbFormIDCk(TNAM, 'Texture Set', [TXST], False, cpNormal, False),
- wbFormIDCk(MNAM, 'Material Type', [MATT, NULL], False, cpNormal, True),
- wbStruct(HNAM, 'Havok Data', [
- wbInteger('Friction', itU8),
- wbInteger('Restitution', itU8)
- ], cpNormal, True),
- wbInteger(SNAM, 'Texture Specular Exponent', itU8, nil, cpNormal, True),
- wbRArray('Grasses', wbFormIDCk(GNAM, 'Grass', [GRAS]))
- ]);
-
- wbRecord(LVLN, 'Leveled NPC', [
- wbEDID,
- wbOBNDReq,
- wbLVLD,
- wbInteger(LVLM, 'Max Count', itU8), { Always 00 } {Unavailable}
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count',
- {0x04} 'Calculate All' {Still picks just one}
- ]), cpNormal, True),
- wbFormIDCk(LVLG, 'Use Global', [GLOB]),
- wbLLCT,
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itU16),
- wbByteArray('Unused', 2, cpIgnore, false, wbNeverShow),
- wbFormIDCk('Reference', [NPC_, LVLN]),
- wbInteger('Count', itS16),
- wbInteger('Chance None', itU8),
- wbByteArray('Unused', 1, cpIgnore, false, wbNeverShow)
- ]),
- wbCOED
- ], []), cpNormal, False, nil, wbLVLOsAfterSet),
- wbArrayS(LLKC, 'Filter Keyword Chances',
- wbStructSK([0], 'Filter', [
- wbFormIDCk('Keyword', [KYWD]),
- wbInteger('Chance', itU32)
- ])
- ),
- wbMODL
- ], False, nil, cpNormal, False, wbLLEAfterLoad, wbLLEAfterSet);
-
- wbRecord(LVLI, 'Leveled Item', [
- wbEDID,
- wbOBNDReq,
- wbLVLD,
- wbInteger(LVLM, 'Max Count', itU8), { Always 00 }
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count',
- {0x04} 'Use All'
- ]), cpNormal, True),
- wbFormIDCk(LVLG, 'Use Global', [GLOB]),
- wbLLCT,
- wbRArrayS('Leveled List Entries',
- wbRStructExSK([0], [1], 'Leveled List Entry', [
- wbStructExSK(LVLO , [0, 2], [3], 'Base Data', [
- wbInteger('Level', itU16),
- wbByteArray('Unused', 2, cpIgnore, false, wbNeverShow),
- wbFormIDCk('Reference', sigBaseObjects),
- wbInteger('Count', itU16),
- wbInteger('Chance None', itU8),
- wbByteArray('Unused', 1, cpIgnore, false, wbNeverShow)
- ]),
- wbCOED
- ], []), cpNormal, False, nil, wbLVLOsAfterSet
- ),
- wbArrayS(LLKC, 'Filter Keyword Chances',
- wbStructSK([0], 'Filter', [
- wbFormIDCk('Keyword', [KYWD]),
- wbInteger('Chance', itU32)
- ])
- ),
- wbFormIDCk(LVSG, 'Epic Loot Chance', [GLOB]),
- wbLStringKC(ONAM, 'Override Name', 0, cpTranslate)
- ], False, nil, cpNormal, False, wbLLEAfterLoad, wbLLEAfterSet);
-
- wbRecord(LVSP, 'Leveled Spell', [
- wbEDID
- ]);
-
- wbMGEFType := wbInteger('Archetype', itU32, wbEnum([
- {00} 'Value Modifier',
- {01} 'Script',
- {02} 'Dispel',
- {03} 'Cure Disease',
- {04} 'Absorb',
- {05} 'Dual Value Modifier',
- {06} 'Calm',
- {07} 'Demoralize',
- {08} 'Frenzy',
- {09} 'Disarm',
- {10} 'Command Summoned',
- {11} 'Invisibility',
- {12} 'Light',
- {13} 'Darkness',
- {14} 'Nighteye',
- {15} 'Lock',
- {16} 'Open',
- {17} 'Bound Weapon',
- {18} 'Summon Creature',
- {19} 'Detect Life',
- {20} 'Telekinesis',
- {21} 'Paralysis',
- {22} 'Reanimate',
- {23} 'Soul Trap',
- {24} 'Turn Undead',
- {25} 'Guide',
- {26} 'Unknown 26',
- {27} 'Cure Paralysis',
- {28} 'Cure Addiction',
- {29} 'Cure Poison',
- {30} 'Concussion',
- {31} 'Stimpack',
- {32} 'Accumulate Magnitude',
- {33} 'Stagger',
- {34} 'Peak Value Modifier',
- {35} 'Cloak',
- {36} 'Unknown 36',
- {37} 'Slow Time',
- {38} 'Rally',
- {39} 'Enhance Weapon',
- {40} 'Spawn Hazard',
- {41} 'Etherealize',
- {42} 'Banish',
- {43} 'Spawn Scripted Ref',
- {44} 'Disguise',
- {45} 'Damage',
- {46} 'Immunity',
- {47} 'Permanent Reanimate',
- {48} 'Jetpack',
- {49} 'Chameleon'
- ]), cpNormal, False, nil, wbMGEFArchtypeAfterSet);
-
- wbMGEFData := wbRStruct('Magic Effect Data', [
- wbStruct(DATA, 'Data', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Hostile',
- {0x00000002} 'Recover',
- {0x00000004} 'Detrimental',
- {0x00000008} 'Snap to Navmesh',
- {0x00000010} 'No Hit Event',
- {0x00000020} 'Unknown 6',
- {0x00000040} 'Unknown 7',
- {0x00000080} 'Unknown 8',
- {0x00000100} 'Dispel with Keywords',
- {0x00000200} 'No Duration',
- {0x00000400} 'No Magnitude',
- {0x00000800} 'No Area',
- {0x00001000} 'FX Persist',
- {0x00002000} 'Unknown 14',
- {0x00004000} 'Gory Visuals',
- {0x00008000} 'Hide in UI',
- {0x00010000} 'Unknown 17',
- {0x00020000} 'No Recast',
- {0x00040000} 'Unknown 19',
- {0x00080000} 'Unknown 20',
- {0x00100000} 'Unknown 21',
- {0x00200000} 'Power Affects Magnitude',
- {0x00400000} 'Power Affects Duration',
- {0x00800000} 'Unknown 24',
- {0x01000000} 'Unknown 25',
- {0x02000000} 'Unknown 26',
- {0x04000000} 'Painless',
- {0x08000000} 'No Hit Effect',
- {0x10000000} 'No Death Dispel',
- {0x20000000} 'Unknown 30',
- {0x40000000} 'Unknown 31',
- {0x80000000} 'Unknown 32'
- ])),
- wbFloat('Base Cost'),
- wbUnion('Assoc. Item', wbMGEFAssocItemDecider, [
- wbFormID('Unused', cpIgnore),
- wbFormIDCk('Assoc. Item', [LIGH, NULL]),
- wbFormIDCk('Assoc. Item', [WEAP, ARMO, NULL]),
- wbFormIDCk('Assoc. Item', [NPC_, NULL]),
- wbFormIDCk('Assoc. Item', [HAZD, NULL]),
- wbFormIDCk('Assoc. Item', [SPEL, NULL]),
- wbFormIDCk('Assoc. Item', [RACE, NULL]),
- wbFormIDCk('Assoc. Item', [ENCH, NULL]),
- wbFormIDCk('Assoc. Item', [KYWD, NULL])
- ], cpNormal, False, nil, wbMGEFAssocItemAfterSet),
- wbByteArray('Magic Skill (unused)', 4),
- wbFormIDCk('Resist Value', [AVIF, NULL]),
- wbInteger('Counter Effect count', itU16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Casting Light', [LIGH, NULL]),
- wbFloat('Taper Weight'),
- wbFormIDCk('Hit Shader', [EFSH, NULL]),
- wbFormIDCk('Enchant Shader', [EFSH, NULL]),
- wbInteger('Minimum Skill Level', itU32),
- wbStruct('Spellmaking', [
- wbInteger('Area', itU32),
- wbFloat('Casting Time')
- ]),
- wbFloat('Taper Curve'),
- wbFloat('Taper Duration'),
- wbFloat('Second AV Weight', cpNormal, False, nil, wbMGEFAV2WeightAfterSet),
- wbMGEFType,
- wbActorValue,
- wbFormIDCk('Projectile', [PROJ, NULL]),
- wbFormIDCk('Explosion', [EXPL, NULL]),
- wbInteger('Casting Type', itU32, wbCastEnum),
- wbInteger('Delivery', itU32, wbTargetEnum),
- wbActorValue, //wbInteger('Second Actor Value', itS32, wbActorValueEnum),
- wbFormIDCk('Casting Art', [ARTO, NULL]),
- wbFormIDCk('Hit Effect Art', [ARTO, NULL]),
- wbFormIDCk('Impact Data', [IPDS, NULL]),
- wbFloat('Skill Usage Multiplier'),
- wbStruct('Dual Casting', [
- wbFormIDCk('Art', [DUAL, NULL]),
- wbFloat('Scale')
- ]),
- wbFormIDCk('Enchant Art', [ARTO, NULL]),
- wbByteArray('Unknown', 4),
- wbByteArray('Unknown', 4),
- wbFormIDCk('Equip Ability', [SPEL, NULL]),
- wbFormIDCk('Image Space Modifier', [IMAD, NULL]),
- wbFormIDCk('Perk to Apply', [PERK, NULL]),
- wbInteger('Casting Sound Level', itU32, wbSoundLevelEnum),
- wbStruct('Script Effect AI', [
- wbFloat('Score'),
- wbFloat('Delay Time')
- ])
- ], cpNormal, True)
- ], []);
-
- wbRecord(MGEF, 'Magic Effect', [
- wbEDID,
- wbVMAD,
- wbFULL,
- wbMDOB,
- wbKSIZ,
- wbKWDAs,
- wbMGEFData,
- wbRArrayS('Counter Effects', wbFormIDCk(ESCE, 'Effect', [MGEF]), cpNormal, False, nil, wbCounterEffectsAfterSet),
- wbArray(SNDD, 'Sounds', wbStruct('', [
- wbInteger('Type', itU32, wbEnum([
- 'Sheathe/Draw',
- 'Charge',
- 'Ready',
- 'Release',
- 'Concentration Cast Loop',
- 'On Hit'
- ])),
- wbFormIDCk('Sound', [SNDR])
- ])),
- wbLStringKC(DNAM, 'Magic Item Description', 0, cpTranslate),
- wbCTDAs
- ], False, nil, cpNormal, False, nil {wbMGEFAfterLoad}, wbMGEFAfterSet);
-
- wbRecord(MISC, 'Misc. Item',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 11, 'Calc From Components',
- {0x00000004} 13, 'Pack-In Use Only'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbICON,
- wbMICO,
- wbDEST,
- wbYNAM,
- wbZNAM,
- wbKSIZ,
- wbKWDAs,
- wbFormID(FIMD, 'Featured Item Message'),
- wbStruct(DATA, 'Data', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True),
- // the amount of components is the same as size of CDIX, so should not be sorted probably
- wbStructs(CVPA, 'Components', 'Component', [
- wbFormIDCk('Component', sigBaseObjects), // CK allows only CMPO
- wbInteger('Count', itU32)
- ]),
- wbArray(CDIX, 'Component Display Indices', wbInteger('Display Index', itU8))
- ], False, nil, cpNormal, False, wbRemoveEmptyKWDA, wbKeywordsAfterSet);
-
- wbRecord(COBJ, 'Constructible Object', [
- wbEDID,
- wbYNAM,
- wbZNAM,
- wbArrayS(FVPA, 'Components',
- wbStructSK([0], 'Component', [
- wbFormIDCk('Component', sigBaseObjects),
- wbInteger('Count', itU32)
- ])
- ),
- wbDESC,
- wbCTDAs,
- wbFormIDCk(CNAM, 'Created Object', sigBaseObjects),
- wbFormIDCk(BNAM, 'Workbench Keyword', [KYWD]),
- wbByteArray(NAM1, 'Unused', 0, cpIgnore, False, False, wbNeverShow), // co_PA_FusionCore01
- wbByteArray(NAM2, 'Unused', 0, cpIgnore, False, False, wbNeverShow), // co_PA_FusionCore01
- wbByteArray(NAM3, 'Unused', 0, cpIgnore, False, False, wbNeverShow), // co_PA_FusionCore01
- wbFormIDCk(ANAM, 'Menu Art Object', [ARTO]),
- wbArrayS(FNAM, 'Category', wbFormIDCk('Keyword', [KYWD])),
- wbStruct(INTV, 'Data', [
- wbInteger('Created Object Count', itU16),
- wbInteger('Priority', itU16)
- ], cpNormal, False, nil, 1)
- ]);
-
- wbRecord(NPC_, 'Non-Player Character (Actor)',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000400} 10, 'Unknown 10',
- {0x00040000} 18, 'Compressed',
- {0x00080000} 19, 'Unknown 19',
- {0x20000000} 29, 'Bleedout Override'
- ]), [18]), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFormIDCk(STCP, 'Unknown', [STAG]),
- wbStruct(ACBS, 'Configuration', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Female',
- {0x00000002} 'Essential',
- {0x00000004} 'Is CharGen Face Preset',
- {0x00000008} 'Respawn',
- {0x00000010} 'Auto-calc stats',
- {0x00000020} 'Unique',
- {0x00000040} 'Doesn''t affect stealth meter',
- {0x00000080} 'PC Level Mult',
- {0x00000100} 'Unknown 8',
- {0x00000200} 'Calc For Each Template',
- {0x00000400} 'Unknown 10',
- {0x00000800} 'Protected',
- {0x00001000} 'Unknown 12',
- {0x00002000} 'Unknown 13',
- {0x00004000} 'Summonable',
- {0x00008000} 'Unknown 15',
- {0x00010000} 'Doesn''t bleed',
- {0x00020000} 'Unknown 17',
- {0x00040000} 'Bleedout Override',
- {0x00080000} 'Opposite Gender Anims',
- {0x00100000} 'Simple Actor',
- {0x00200000} 'Unknown 21',
- {0x00400000} 'Unknown 22',
- {0x00800000} 'No Activation/Hellos',
- {0x01000000} 'Diffuse Alpha Test',
- {0x02000000} 'Unknown 25',
- {0x04000000} 'Unknown 26',
- {0x08000000} 'Unknown 27',
- {0x10000000} 'Unknown 28',
- {0x20000000} 'Is Ghost',
- {0x40000000} 'Unknown 30',
- {0x80000000} 'Invulnerable'
- ])),
- wbInteger('XP Value Offset', itS16, nil, cpNormal, True, nil{wbActorTemplateUseStats}),
- wbUnion('Level', wbNPCLevelDecider, [
- wbInteger('Level', itS16, nil, cpNormal, True, nil{wbActorTemplateUseStats}),
- wbInteger('Level Mult', itS16, wbDiv(1000), cpNormal, True, nil{wbActorTemplateUseStats})
- ], cpNormal, True, nil{wbActorTemplateUseStats}),
- wbInteger('Calc min level', itU16, nil, cpNormal, True, nil{wbActorTemplateUseStats}),
- wbInteger('Calc max level', itU16, nil, cpNormal, True, nil{wbActorTemplateUseStats}),
- wbInteger('Disposition Base', itS16),
- wbInteger('Use Template Actors', itU16, wbFlags([
- {0x0001} 'Traits',
- {0x0002} 'Stats',
- {0x0004} 'Factions',
- {0x0008} 'Spell List',
- {0x0010} 'AI Data',
- {0x0020} 'AI Packages',
- {0x0040} 'Model/Animation',
- {0x0080} 'Base Data',
- {0x0100} 'Inventory',
- {0x0200} 'Script',
- {0x0400} 'Def Pack List',
- {0x0800} 'Attack Data',
- {0x1000} 'Keywords'
- ])),
- wbInteger('Bleedout Override', itU16),
- wbByteArray('Unknown', 2)
- ], cpNormal, True),
- wbRArrayS('Factions',
- wbStructSK(SNAM, [0], 'Faction', [
- wbFormIDCk('Faction', [FACT]),
- wbInteger('Rank', itS8)
- ]), cpNormal, False, nil, nil, nil{wbActorTemplateUseFactions}
- ),
- wbFormIDCk(INAM, 'Death item', [LVLI], False, cpNormal, False, nil{wbActorTemplateUseTraits}),
- wbFormIDCk(VTCK, 'Voice', [VTYP], False, cpNormal, False, nil{wbActorTemplateUseTraits}),
- wbFormIDCk(TPLT, 'Default Template', [LVLN, NPC_]),
- wbFormIDCk(LTPT, 'Legendary Template', [LVLN, NPC_]),
- wbFormIDCk(LTPC, 'Legendary Chance', [GLOB]),
- wbStruct(TPTA, 'Template Actors', [
- wbFormIDCk('Traits', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate0),
- wbFormIDCk('Stats', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate1),
- wbFormIDCk('Factions', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate2),
- wbFormIDCk('Spell List', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate3),
- wbFormIDCk('AI Data', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate4),
- wbFormIDCk('AI Packages', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate5),
- wbFormIDCk('Model/Animation', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate6),
- wbFormIDCk('Base Data', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate7),
- wbFormIDCk('Inventory', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate8),
- wbFormIDCk('Script', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate9),
- wbFormIDCk('Def Pack List', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate10),
- wbFormIDCk('Attack Data', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate11),
- wbFormIDCk('Keywords', [LVLN, NPC_, NULL], False, cpNormal, False, wbActorTemplatesUseTemplate12)
- ]),
- wbFormIDCk(RNAM, 'Race', [RACE], False, cpNormal, True, nil{wbActorTemplateUseTraits}),
- wbSPCT,
- wbSPLOs,
- wbDEST,
- wbFormIDCk(WNAM, 'Skin', [ARMO], False, cpNormal, False),
- wbFormIDCk(ANAM, 'Far away model', [ARMO], False, cpNormal, False, nil{wbActorTemplateUseTraits}),
- wbFormIDCk(ATKR, 'Attack Race', [RACE], False, cpNormal, False),
- wbRArrayS('Attacks', wbAttackData),
- wbFormIDCk(SPOR, 'Spectator Override Package List', [FLST]),
- wbFormIDCk(OCOR, 'Observe Dead Body Override Package List', [FLST]),
- wbFormIDCk(GWOR, 'Guard Warn Override Package List', [FLST]),
- wbFormIDCk(ECOR, 'Combat Override Package List', [FLST]),
- wbFormIDCk(FCPL, 'Follower Command Package List', [FLST]),
- wbFormIDCk(RCLR, 'Follower Elevator Package List', [FLST]),
- wbInteger(PRKZ, 'Perk Count', itU32, nil, cpBenign),
- wbRArrayS('Perks',
- wbStructSK(PRKR, [0], 'Perk', [
- wbFormIDCk('Perk', [PERK]),
- wbInteger('Rank', itU8)
- ]), cpNormal, False, nil, wbPRKRsAfterSet
- ),
- wbPRPS,
- wbFTYP,
- wbNTRM,
- wbCOCT,
- wbCNTOs,
- wbAIDT,
- wbRArray('Packages', wbFormIDCk(PKID, 'Package', [PACK]), cpNormal, False, nil{wbActorTemplateUseAIPackages}),
- wbKSIZ,
- wbKWDAs,
- wbAPPR,
- wbObjectTemplate,
- wbFormIDCk(CNAM, 'Class', [CLAS], False, cpNormal, True),
- wbFULL,
- wbLString(SHRT, 'Short Name', 0, cpTranslate),
- wbByteArray(DATA, 'Marker'),
- wbStruct(DNAM, '', [
- wbInteger('Unknown', itU16),
- wbInteger('Unknown', itU16),
- wbInteger('Far Away Model Distance', itU16),
- wbInteger('Geared Up Weapons', itU16)
- ]),
- wbRArrayS('Head Parts', wbFormIDCk(PNAM, 'Head Part', [HDPT]), cpNormal, False, nil, nil, nil{wbActorTemplateUseModelAnimation}),
- wbFormIDCk(HCLF, 'Hair Color', [CLFM], False, cpNormal, False),
- wbFormIDCk(BCLF, 'Facial Hair Color', [CLFM], False, cpNormal, False),
- wbFormIDCk(ZNAM, 'Combat Style', [CSTY], False, cpNormal, False),
- wbFormIDCk(GNAM, 'Gift Filter', [FLST], False, cpNormal, False),
- wbUnknown(NAM5, cpNormal, True),
- wbFloat(NAM6, 'Height Min', cpNormal, True),
- wbFloat(NAM7, 'Unused', cpNormal, True),
- wbFloat(NAM4, 'Height Max'),
- wbStruct(MWGT, 'Weight', [
- wbFloat('Thin'),
- wbFloat('Muscular'),
- wbFloat('Fat')
- ]),
- wbInteger(NAM8, 'Sound Level', itU32, wbSoundLevelEnum, cpNormal, True),
- wbRStruct('Actor Sounds', [
- wbInteger(CS2H, 'Count', itU32, nil, cpBenign, True),
- wbRArrayS('Sounds',
- wbRStructSK([0], 'Sound', [
- wbFormIDCk(CS2K, 'Keyword', [KYWD]),
- wbFormIDCk(CS2D, 'Sound', [SNDR], False, cpNormal, True)
- ], [], cpNormal, False, nil, True),
- cpNormal, False, nil, wbNPCActorSoundsAfterSet
- ),
- wbEmpty(CS2E, 'End Marker', cpNormal, True),
- wbByteArray(CS2F, 'Finalize', 1, cpNormal, True)
- ], []),
- wbFormIDCk(CSCR, 'Inherits Sounds From', [NPC_], False, cpNormal, False),
- wbFormIDCk(PFRN, 'Power Armor Stand', [FURN]),
- wbFormIDCk(DOFT, 'Default Outfit', [OTFT], False, cpNormal, False),
- wbFormIDCk(SOFT, 'Sleeping Outfit', [OTFT], False, cpNormal, False),
- wbFormIDCk(DPLT, 'Default Package List', [FLST], False, cpNormal, False),
- wbFormIDCk(CRIF, 'Crime Faction', [FACT], False, cpNormal, False),
- wbFormIDCk(FTST, 'Head Texture', [TXST], False, cpNormal, False),
- wbStruct(QNAM, 'Texture lighting', [
- wbFloat('Red', cpNormal, True, 255, 0),
- wbFloat('Green', cpNormal, True, 255, 0),
- wbFloat('Blue', cpNormal, True, 255, 0),
- wbFloat('Alpha')
- ]),
- wbArray(MSDK, 'Morph Keys', wbInteger('Key', itU32, wbMorphValueToStr, wbHexStrToInt)),
- wbArray(MSDV, 'Morph Values', wbFloat('Value')),
- wbRArrayS('Face Tinting Layers',
- wbRStructSK([0], 'Layer', [
- wbStructSK(TETI, [1], 'Index', [
- wbInteger('Data Type', itU16, wbEnum(['', 'Value/Color', 'Value'])),
- wbInteger('Index', itU16, wbTintLayerToStr, wbStrToInt)
- ]),
- //wbByteArray(TEND, 'Data')
- wbStruct(TEND, 'Data', [
- wbInteger('Value', itU8, wbDiv(100)),
- wbByteColors('Color'),
- wbInteger('Template Color Index', itS16)
- ], cpNormal, True, nil, 1)
- ], [])
- ),
- wbStruct(MRSV, 'Body Morph Region Values', [
- wbFloat('Head'),
- wbFloat('Upper Torso'),
- wbFloat('Arms'),
- wbFloat('Lower Torso'),
- wbFloat('Legs')
- ]),
- // reported to cause issues when sorted
- wbRArrayS('Face Morphs',
- wbRStructSK([0], 'Face Morph', [
- wbInteger(FMRI, 'Index', itU32, wbFaceMorphToStr, wbHexStrToInt),
- //wbArray(FMRS, 'Unknown', wbFloat('Unknown'))
- wbStruct(FMRS, 'Values', [
- wbFloat('Position - X'),
- wbFloat('Position - Y'),
- wbFloat('Position - Z'),
- wbFloat('Rotation - X'),
- wbFloat('Rotation - Y'),
- wbFloat('Rotation - Z'),
- wbFloat('Scale'),
- wbByteArray('Unknown')
- ])
- ], [])
- ),
- wbFloat(FMIN, 'Facial Morph Intensity'),
- wbATTX
- ], False, nil, cpNormal, False, wbNPCAfterLoad, wbNPCAfterSet);
-
- wbPKDTSpecificFlagsUnused := False;
-
- wbPKDTFlags := wbFlags([
- {0x00000001} 'Offers Services',
- {0x00000002} 'Unknown 2',
- {0x00000004} 'Must complete',
- {0x00000008} 'Maintain Speed at Goal',
- {0x00000010} 'Treat As Player Follower',
- {0x00000020} 'Unknown 6',
- {0x00000040} 'Unlock doors at package start',
- {0x00000080} 'Unlock doors at package end',
- {0x00000100} 'Request Block Idles',
- {0x00000200} 'Continue if PC Near',
- {0x00000400} 'Once per day',
- {0x00000800} 'Unknown 12',
- {0x00001000} 'Skip Load Into Furniture',
- {0x00002000} 'Preferred Speed',
- {0x00004000} 'Unknown 15',
- {0x00008000} 'Unknown 16',
- {0x00010000} 'Unknown 17',
- {0x00020000} 'Always Sneak',
- {0x00040000} 'Allow Swimming',
- {0x00080000} 'Unknown 20',
- {0x00100000} 'Ignore Combat',
- {0x00200000} 'Weapons Unequipped',
- {0x00400000} 'Unknown 23',
- {0x00800000} 'Weapon Drawn',
- {0x01000000} 'Unknown 25',
- {0x02000000} 'Unknown 26',
- {0x04000000} 'Unknown 27',
- {0x08000000} 'No Combat Alert',
- {0x10000000} 'Unknown 29',
- {0x20000000} 'Wear Sleep Outfit',
- {0x40000000} 'Unknown 31',
- {0x80000000} 'Unknown 32'
- ], [29]);
-
- wbPKDTInterruptFlags := wbFlags([
- {0x0001} 'Hellos to player',
- {0x0002} 'Random conversations',
- {0x0004} 'Observe combat behavior',
- {0x0008} 'Greet corpse behavior',
- {0x0010} 'Reaction to player actions',
- {0x0020} 'Friendly fire comments',
- {0x0040} 'Aggro Radius Behavior',
- {0x0080} 'Allow Idle Chatter',
- {0x0100} 'Unknown 9',
- {0x0200} 'World Interactions',
- {0x0400} 'Off For Important Scene',
- {0x0800} 'Unknown 12',
- {0x1000} 'Unknown 13',
- {0x2000} 'Unknown 14',
- {0x4000} 'Unknown 15',
- {0x8000} 'Unknown 16'
- ]);
-end;
-
-
-procedure DefineFO4n;
-
- function wbTintTemplateGroups(const aName: string): IwbSubRecordArrayDef;
- begin
- Result :=
- wbRStructs(aName, 'Group', [
- wbLString(TTGP, 'Group Name', 0, cpTranslate),
- wbRStructs('Options', 'Option', [
- wbStruct(TETI, 'Index', [
- wbByteArray('Unknown', 2),
- wbInteger('Index', itU16)
- ]),
- wbLString(TTGP, 'Name', 0, cpTranslate),
- wbUnknown(TTEF),
- wbCTDAs,
- wbRArray('Textures', wbString(TTET, 'Texture')),
- wbUnknown(TTEB),
- wbArray(TTEC, 'Template Colors', wbStruct('Template Color', [
- wbFormIDCk('Color', [CLFM]),
- wbFloat('Alpha'),
- wbInteger('Template Index', itU16),
- wbByteArray('Unknown', 4)
- ])),
- wbFloat(TTED, 'Unknown')
- ], []),
- wbByteArray(TTGE, 'Group End', 4)
- ], []);
- end;
-
- function wbMorphGroups(const aName: string): IwbSubRecordArrayDef;
- begin
- Result :=
- wbRArray(aName,
- wbRStruct('Morph Group', [
- wbString(MPGN, 'Name'),
- wbInteger(MPPC, 'Count', itU32, nil, cpBenign),
- wbRArray('Morph Presets',
- wbRStruct('Morph Preset', [
- wbInteger(MPPI, 'Index', itU32, wbIntToHexStr, wbHexStrToInt),
- wbLString(MPPN, 'Name', 0, cpTranslate),
- wbString(MPPM, 'Unknown'),
- wbFormIDCk(MPPT, 'Texture', [TXST]),
- wbUnknown(MPPF)
- ], []),
- cpNormal, False, nil, wbMorphPresetsAfterSet
- ),
- wbUnknown(MPPK),
- wbUnknown(MPGS)
- ], [])
- );
- end;
-
- function wbFaceMorphs(const aName: string): IwbSubRecordArrayDef;
- begin
- Result :=
- wbRArray(aName,
- wbRStruct('Face Morph', [
- wbInteger(FMRI, 'Index', itU32, wbIntToHexStr, wbHexStrToInt),
- wbLString(FMRN, 'Name')
- ], [])
- );
- end;
-
-begin
- wbUNAMs := wbRArray('Data Inputs', wbRStruct('Data Input', [
- wbInteger(UNAM, 'Index', itS8),
- wbString(BNAM, 'Name'),
- wbInteger(PNAM, 'Flags', itU32, wbFlags([
- 'Public'
- ]))
- ], []));
-
- wbRecord(PACK, 'Package', [
- wbEDID,
- wbVMADFragmentedPACK,
-
- wbStruct(PKDT, 'Pack Data', [
- wbInteger('General Flags', itU32, wbPKDTFlags),
- wbInteger('Type', itU8, wbEnum ([], [
- 18, 'Package',
- 19, 'Package Template'
- ])),
- wbInteger('Interrupt Override', itU8, wbEnum([
- {0} 'None',
- {1} 'Spectator',
- {2} 'ObserveDead',
- {3} 'GuardWarn',
- {4} 'Combat',
- {5} 'Command Travel',
- {6} 'Command Activate',
- {7} 'Leave Workstation'
- ])),
- wbInteger('Preferred Speed', itU8, wbEnum([
- 'Walk',
- 'Jog',
- 'Run',
- 'Fast Walk'
- ])),
- wbByteArray('Unknown', 1),
- wbInteger('Interrupt Flags', itU16, wbPKDTInterruptFlags),
- wbByteArray('Unknown', 2)
- ], cpNormal, True),
-
- wbStruct(PSDT, 'Schedule', [
- wbInteger('Month', itS8),
- wbInteger('Day of week', itS8, wbEnum([
- 'Sunday',
- 'Monday',
- 'Tuesday',
- 'Wednesday',
- 'Thursday',
- 'Friday',
- 'Saturday',
- 'Weekdays',
- 'Weekends',
- 'Monday, Wednesday, Friday',
- 'Tuesday, Thursday'
- ], [
- -1, 'Any'
- ])),
- wbInteger('Date', itU8),
- wbInteger('Hour', itS8),
- wbInteger('Minute', itS8),
- wbByteArray('Unused', 3, cpIgnore),
- wbInteger('Duration (minutes)', itS32)
- ], cpNormal, True),
-
- wbCTDAs,
-
- wbRStruct('Idle Animations', [
- wbInteger(IDLF, 'Flags', itU8, wbEnum([], [
- 0, 'Unknown',
- 8, 'Random',
- 9, 'Run in Sequence',
- 12, 'Random, Do Once',
- 13, 'Run in Sequence, Do Once'
- ]), cpNormal, True),
- wbInteger(IDLC, 'Animation Count', itU8, nil, cpBenign),
- wbFloat(IDLT, 'Idle Timer Setting', cpNormal, True),
- wbArray(IDLA, 'Animations', wbFormIDCk('Animation', [IDLE]), 0, nil, wbIDLAsAfterSet, cpNormal, True),
- wbByteArray(IDLB, 'Unknown', 4, cpIgnore)
- ], [], cpNormal, False, nil, False, nil {cannot be totally removed , wbAnimationsAfterSet}),
-
- wbFormIDCk(CNAM, 'Combat Style', [CSTY]),
- wbFormIDCk(QNAM, 'Owner Quest', [QUST]),
- wbStruct(PKCU, 'Counter', [
- wbInteger('Data Input Count', itU32),
- wbFormIDCk('Package Template', [PACK, NULL]),
- wbInteger('Version Counter (autoincremented)', itU32)
- ], cpNormal, True),
-
- wbRStruct('Package Data', [
- wbRArray('Data Input Values', wbRStruct('Value', [
- wbString(ANAM, 'Type'),
- wbUnion(CNAM, 'Value', wbPubPackCNAMDecider, [
- {0} wbByteArray('Unknown'),
- {1} wbInteger('Bool', itU8, wbBoolEnum),
- {2} wbInteger('Integer', itU32),
- {3} wbFloat('Float')
- ]),
- wbUnknown(BNAM),
- wbPDTOs,
- wbPLDT,
- wbStruct(PTDA, 'Target', [wbTargetData]),
- wbUnknown(TPIC)
- ], [], cpNormal, False)),
- wbUNAMs
- ], []),
- wbByteArray(XNAM, 'Marker'),
-
- wbRStruct('Procedure Tree', [
- wbRArray('Branches', wbRStruct('Branch', [
- wbString(ANAM, 'Branch Type'),
- wbCITC,
- wbCTDAsCount,
- wbStruct(PRCB, 'Root', [
- wbInteger('Branch Count', itU32),
- wbInteger('Flags', itU32, wbFlags([
- 'Repeat when Complete',
- 'Unknown 1'
- ]))
- ]),
- wbString(PNAM, 'Procedure Type'),
- wbInteger(FNAM, 'Flags', itU32, wbFlags(['Success Completes Package'])),
- wbRArray('Data Input Indexes', wbInteger(PKC2, 'Index', itU8)),
- {>>> PFO2 should be single, there is only 1 PACK [00095F46] in Skyrim.esm with 2xPFO2 <<<}
- wbRArray('Flags Override',
- wbStruct(PFO2, 'Data', [
- wbInteger('Set General Flags', itU32, wbPKDTFlags),
- wbInteger('Clear General Flags', itU32, wbPKDTFlags),
- wbInteger('Set Interrupt Flags', itU16, wbPKDTInterruptFlags),
- wbInteger('Clear Interrupt Flags', itU16, wbPKDTInterruptFlags),
- wbInteger('Preferred Speed Override', itU8, wbEnum([
- 'Walk',
- 'Jog',
- 'Run',
- 'Fast Walk'
- ])),
- wbByteArray('Unknown', 3)
- ])
- ),
- wbRArray('Unknown', wbUnknown(PFOR), cpIgnore)
- ], [], cpNormal, False, nil, False, nil, wbConditionsAfterSet))
- ], []),
- wbUNAMs,
- wbRStruct('OnBegin', [
- wbEmpty(POBA, 'OnBegin Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbPDTOs
- ], []),
- wbRStruct('OnEnd', [
- wbEmpty(POEA, 'OnEnd Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbPDTOs
- ], []),
- wbRStruct('OnChange', [
- wbEmpty(POCA, 'OnChange Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbPDTOs
- ], [])
- ], False, nil, cpNormal, False, nil {wbPACKAfterLoad});
-
- wbQUSTAliasFlags :=
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- {0x00000001} 'Reserves Location/Reference',
- {0x00000002} 'Optional',
- {0x00000004} 'Quest Object',
- {0x00000008} 'Allow Reuse in Quest',
- {0x00000010} 'Allow Dead',
- {0x00000020} 'Matching Ref - In Loaded Area',
- {0x00000040} 'Essential',
- {0x00000080} 'Allow Disabled',
- {0x00000100} 'Stores Text',
- {0x00000200} 'Allow Reserved',
- {0x00000400} 'Protected',
- {0x00000800} 'Forced by Aliases',
- {0x00001000} 'Allow Destroyed',
- {0x00002000} 'Matching Ref - Closest',
- {0x00004000} 'Uses Stored Text',
- {0x00008000} 'Initially Disabled',
- {0x00010000} 'Allow Cleared',
- {0x00020000} 'Clear Names When Removed',
- {0x00040000} 'Matching Ref - Actors Only',
- {0x00080000} 'Create Ref - Temp',
- {0x00100000} 'External Alias - Linked',
- {0x00200000} 'No Pickpocket',
- {0x00400000} 'Can Apply Data To Non-Aliased Refs',
- {0x00800000} 'Is Companion',
- {0x01000000} 'Optional All Scenes'
- ]));
-
- wbRecord(QUST, 'Quest',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00004000} 14, 'Partial Form' // Allows the Record to inherit some subrecords from its master
- ])), [
- wbEDID,
- wbVMADFragmentedQUST,
- wbFULL,
- wbStruct(DNAM, 'General', [
- wbInteger('Flags', itU16, wbFlags([
- {0x0001} 'Start Game Enabled',
- {0x0002} 'Unknown 2',
- {0x0004} 'Add Idle Topic To Hello',
- {0x0008} 'Allow repeated stages',
- {0x0010} 'Unknown 5',
- {0x0020} 'Unknown 6',
- {0x0040} 'Unknown 7',
- {0x0080} 'Unknown 8',
- {0x0100} 'Run Once',
- {0x0200} 'Exclude from dialogue export',
- {0x0400} 'Warn on alias fill failure',
- {0x0800} 'Unknown 12',
- {0x1000} 'Unknown 13'
- ])),
- wbInteger('Priority', itU8),
- wbInteger('Form Version', itU8, nil, cpIgnore),
- wbByteArray('Unknown', 4),
- wbInteger('Type', itU32, wbEnum([
- {0} 'None',
- {1} 'Main Quest',
- {2} 'Brotherhood of Steel',
- {3} 'Institute',
- {4} 'Minutemen',
- {5} 'Railroad',
- {6} 'Miscellaneous',
- {7} 'Side Quests',
- {8} 'DLC01',
- {9} 'DLC02',
- {10} 'DLC03',
- {11} 'DLC04',
- {12} 'DLC05',
- {13} 'DLC06',
- {14} 'DLC07'
- ]))
- ]),
- wbString(ENAM, 'Event', 4),
- wbFormIDCk(LNAM, 'Location', [LCTN]),
- wbFormIDCk(XNAM, 'Quest Completion XP', [GLOB]),
- wbRArray('Text Display Globals', wbFormIDCk(QTGL, 'Global', [GLOB])),
- wbFLTR,
- wbRStruct('Quest Dialogue Conditions', [wbCTDAs], [], cpNormal, False),
- wbEmpty(NEXT, 'Marker'),
- wbCTDAs, {>>> Unknown, doesn't show up in CK <<<}
- wbRArrayS('Stages', wbRStructSK([0], 'Stage', [
- wbStructSK(INDX, [0], 'Stage Index', [
- wbInteger('Stage Index', itU16),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Unknown 1',
- {0x02} 'Run On Start',
- {0x04} 'Run On Stop',
- {0x08} 'Keep Instance Data From Here On'
- ])),
- wbInteger('Unknown', itU8)
- ]),
- wbRArray('Log Entries', wbRStruct('Log Entry', [
- wbInteger(QSDT, 'Stage Flags', itU8, wbFlags([
- {0x01} 'Complete Quest',
- {0x02} 'Fail Quest'
- ])),
- wbCTDAs,
- wbString(NAM2, 'Note'),
- wbLString(CNAM, 'Log Entry', 0, cpTranslate),
- wbFormIDCk(NAM0, 'Next Quest', [QUST])
- ], []))
- ], [])),
- wbRArray('Objectives', wbRStruct('Objective', [
- wbInteger(QOBJ, 'Objective Index', itU16),
- wbInteger(FNAM, 'Flags', itU32, wbFlags([
- {0x01} 'ORed With Previous',
- {0x02} 'No Stats Tracking'
- ])),
- wbLString(NNAM, 'Display Text', 0, cpTranslate, True),
- wbRArray('Targets', wbRStruct('Target', [
- wbStruct(QSTA, 'Target', [
- wbInteger('Alias', itS32, wbQuestAliasToStr, wbStrToAlias),
- wbInteger('Flags', itU32, wbFlags([
- {0x01} 'Compass Marker Ignores Locks',
- {0x02} 'Hostile',
- {0x04} 'Use Straight Line Pathing'
- ])),
- wbFormIDCk('Keyword', [KYWD, NULL])
- ]),
- wbCTDAs
- ], []))
- ], [])),
-
- wbByteArray(ANAM, 'Aliases Marker', 4),
-
- wbRArray('Aliases',
- wbRUnion('Alias', [
-
- // Reference Alias
- wbRStruct('Alias', [
- wbInteger(ALST, 'Reference Alias ID', itU32),
- wbString(ALID, 'Alias Name'),
- wbQUSTAliasFlags,
- wbInteger(ALFI, 'Force Into Alias When Filled', itS32, wbQuestAliasToStr, wbStrToAlias),
- //wbFormIDCk(ALFL, 'Specific Location', [LCTN]),
- wbFormID(ALFR, 'Forced Reference'),
- wbFormIDCk(ALUA, 'Unique Actor', [NPC_]),
- wbRStruct('Location Alias Reference', [
- wbInteger(ALFA, 'Alias', itS32, wbQuestAliasToStr, wbStrToAlias),
- wbFormIDCk(KNAM, 'Keyword', [KYWD]),
- wbFormIDCk(ALRT, 'Ref Type', [LCRT])
- ], []),
- wbRStruct('External Alias Reference', [
- wbFormIDCk(ALEQ, 'Quest', [QUST]),
- wbInteger(ALEA, 'Alias', itS32, wbQuestExternalAliasToStr, wbStrToAlias)
- ], []),
- wbRStruct('Create Reference to Object', [
- wbFormID(ALCO, 'Object'),
- wbStruct(ALCA, 'Alias', [
- wbInteger('Alias', itS16, wbQuestAliasToStr, wbStrToAlias),
- wbInteger('Create', itU16, wbEnum([] ,[
- $0000, 'At',
- $8000, 'In'
- ]))
- ]),
- wbInteger(ALCL, 'Level', itU32, wbEnum([
- 'Easy',
- 'Medium',
- 'Hard',
- 'Very Hard',
- 'None'
- ]))
- ], []),
- wbRStruct('Find Matching Reference Near Alias', [
- wbInteger(ALNA, 'Alias', itS32, wbQuestAliasToStr, wbStrToAlias),
- wbInteger(ALNT, 'Type', itU32, wbEnum([
- 'Linked From',
- 'Linked Ref'
- ]))
- ], []),
- wbRStruct('Find Matching Reference From Event', [
- wbString(ALFE, 'From Event', 4),
- wbByteArray(ALFD, 'Event Data')
- ], []),
- wbInteger(ALCC, 'Closest To Alias', itS32, wbQuestAliasToStr, wbStrToAlias),
- wbCTDAs,
- wbKSIZ,
- wbKWDAs,
- wbCOCT,
- wbCNTOs,
- wbFormIDCk(SPOR, 'Spectator override package list', [FLST], False, cpNormal, False),
- wbFormIDCk(OCOR, 'Observe dead body override package list', [FLST], False, cpNormal, False),
- wbFormIDCk(GWOR, 'Guard warn override package list', [FLST], False, cpNormal, False),
- wbFormIDCk(ECOR, 'Combat override package list', [FLST], False, cpNormal, False),
- wbArray(ALLA, 'Linked Aliases', wbStruct('Linked Alias', [
- wbFormIDCk('Keyword', [KYWD, NULL]),
- wbInteger('Alias', itS32, wbQuestAliasToStr, wbStrToAlias)
- ])),
- wbFormIDCk(ALDN, 'Display Name', [MESG]),
- wbFormIDCk(ALFV, 'Forced Voice', [VTYP]),
- wbFormIDCk(ALDI, 'Death Item', [LVLI]),
- wbRArrayS('Alias Spells', wbFormIDCk(ALSP, 'Spell', [SPEL])),
- wbRArrayS('Alias Factions', wbFormIDCk(ALFC, 'Faction', [FACT])),
- wbRArray('Alias Package Data', wbFormIDCk(ALPC, 'Package', [PACK])),
- wbFormIDCk(VTCK, 'Voice Types', [NPC_, FACT, FLST, VTYP, NULL]),
- wbEmpty(ALED, 'Alias End', cpNormal, True)
- ], [], cpNormal, False, nil, False, nil, wbContainerAfterSet),
-
- // Location Alias
- wbRStruct('Alias', [
- wbInteger(ALLS, 'Location Alias ID', itU32),
- wbString(ALID, 'Alias Name'),
- wbQUSTAliasFlags,
- wbInteger(ALFI, 'Force Into Alias When Filled', itS32, wbQuestAliasToStr, wbStrToAlias),
- wbFormIDCk(ALFL, 'Specific Location', [LCTN]),
- wbRStruct('Reference Alias Location', [
- wbInteger(ALFA, 'Alias', itS32, wbQuestAliasToStr, wbStrToAlias),
- wbFormIDCk(KNAM, 'Keyword', [KYWD])
- ], []),
- wbRStruct('External Alias Location', [
- wbFormIDCk(ALEQ, 'Quest', [QUST]),
- wbInteger(ALEA, 'Alias', itS32, wbQuestExternalAliasToStr, wbStrToAlias)
- ], []),
- wbRStruct('Find Matching Location From Event', [
- wbString(ALFE, 'From Event', 4),
- wbByteArray(ALFD, 'Event Data')
- ], []),
- wbCTDAs,
- wbInteger(ALCC, 'Closest To Alias', itS32, wbQuestAliasToStr, wbStrToAlias),
- wbEmpty(ALED, 'Alias End', cpNormal, True)
- ], []),
-
- // Ref Collection Alias
- wbRStruct('Alias', [
- wbInteger(ALCS, 'Collection Alias ID', itU32),
- wbInteger(ALMI, 'Max Initial Fill Count', itU8)
- ], [])
-
- ], [])
- ),
-
- wbString(NNAM, 'Description', 0, cpTranslate, False),
- wbFormIDCk(GNAM, 'Quest Group', [KYWD]),
- wbString(SNAM, 'SWF File')
- ]);
-
- wbBodyPartIndexEnum := wbEnum([
- 'Body Texture'
- ]);
-
- wbPhonemeTargets := wbStruct(PHWT, 'Phoneme Target Weight', [
- wbFloat('Aah / LipBigAah'),
- wbFloat('BigAah / LipDST'),
- wbFloat('BMP / LipEee'),
- wbFloat('ChJsh / LipFV'),
- wbFloat('DST / LipK'),
- wbFloat('Eee / LipL'),
- wbFloat('Eh / LipR'),
- wbFloat('FV / LipTh'),
- wbFloat('I'),
- wbFloat('K'),
- wbFloat('N'),
- wbFloat('Oh'),
- wbFloat('OohQ'),
- wbFloat('R'),
- wbFloat('TH'),
- wbFloat('W'),
- wbUnknown
- ], cpNormal, False, nil, 1); // only a single value in HandyRace
-
- wbPHWT := wbRStruct('FaceFX Phonemes', [
- wbRStruct('IY', [wbPhonemeTargets], []),
- wbRStruct('IH', [wbPhonemeTargets], []),
- wbRStruct('EH', [wbPhonemeTargets], []),
- wbRStruct('EY', [wbPhonemeTargets], []),
- wbRStruct('AE', [wbPhonemeTargets], []),
- wbRStruct('AA', [wbPhonemeTargets], []),
- wbRStruct('AW', [wbPhonemeTargets], []),
- wbRStruct('AY', [wbPhonemeTargets], []),
- wbRStruct('AH', [wbPhonemeTargets], []),
- wbRStruct('AO', [wbPhonemeTargets], []),
- wbRStruct('OY', [wbPhonemeTargets], []),
- wbRStruct('OW', [wbPhonemeTargets], []),
- wbRStruct('UH', [wbPhonemeTargets], []),
- wbRStruct('UW', [wbPhonemeTargets], []),
- wbRStruct('ER', [wbPhonemeTargets], []),
- wbRStruct('AX', [wbPhonemeTargets], []),
- wbRStruct('S', [wbPhonemeTargets], []),
- wbRStruct('SH', [wbPhonemeTargets], []),
- wbRStruct('Z', [wbPhonemeTargets], []),
- wbRStruct('ZH', [wbPhonemeTargets], []),
- wbRStruct('F', [wbPhonemeTargets], []),
- wbRStruct('TH', [wbPhonemeTargets], []),
- wbRStruct('V', [wbPhonemeTargets], []),
- wbRStruct('DH', [wbPhonemeTargets], []),
- wbRStruct('M', [wbPhonemeTargets], []),
- wbRStruct('N', [wbPhonemeTargets], []),
- wbRStruct('NG', [wbPhonemeTargets], []),
- wbRStruct('L', [wbPhonemeTargets], []),
- wbRStruct('R', [wbPhonemeTargets], []),
- wbRStruct('W', [wbPhonemeTargets], []),
- wbRStruct('Y', [wbPhonemeTargets], []),
- wbRStruct('HH', [wbPhonemeTargets], []),
- wbRStruct('B', [wbPhonemeTargets], []),
- wbRStruct('D', [wbPhonemeTargets], []),
- wbRStruct('JH', [wbPhonemeTargets], []),
- wbRStruct('G', [wbPhonemeTargets], []),
- wbRStruct('P', [wbPhonemeTargets], []),
- wbRStruct('T', [wbPhonemeTargets], []),
- wbRStruct('K', [wbPhonemeTargets], []),
- wbRStruct('CH', [wbPhonemeTargets], []),
- wbRStruct('SIL', [wbPhonemeTargets], []),
- wbRStruct('SHOTSIL', [wbPhonemeTargets], []),
- wbRStruct('FLAP', [wbPhonemeTargets], [])
- ], []);
-
- wbHeadPart := wbRStructSK([0], 'Head Part', [
- wbInteger(INDX, 'Head Part Number', itU32),
- wbFormIDCk(HEAD, 'Head', [HDPT, NULL])
- ], []);
-
- wbRaceRBPC :=
- wbArray(RBPC, 'Biped Object Conditions',
- wbUnion('Slot 30+', wbFormVer78Decider, [
- wbInteger('Slot 30+', itU32),
- wbFormIDCk('Slot 30+', [AVIF, NULL])
- ])
- );
- // since version 78: array of pair of AVIF FormID, before array of AVIF index. Similar to DamageType (and MGEF also somehow).
- {wbUnion(RBPC, 'Biped Object Conditions', wbFormVer78Decider, [
- wbArray('Biped Object Conditions', wbInteger('Condition AV', itU32)),
- wbArray('Biped Object Conditions', wbStruct('Condition AV', [
- wbFormIDck('AVIF 1', [AVIF, NULL]),
- wbFormIDck('AVIF 2', [AVIF, NULL])
- ]))
- ]);}
-
- wbRecord(RACE, 'Race',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00080000} 19, 'Unknown 19'
- ])), [
- wbEDID,
- wbFormIDCk(STCP, 'Sound', [STAG]),
- wbFULL,
- wbDESCReq,
- wbSPCT,
- wbSPLOs,
- wbFormIDCk(WNAM, 'Skin', [ARMO, NULL]),
- wbBOD2,
- wbKSIZ,
- wbKWDAs,
- wbPRPS,
- wbAPPR,
- wbStruct(DATA, 'Data', [
- wbFloat('Male Height'),
- wbFloat('Female Height'),
- wbStruct('Male Default Weight', [
- wbFloat('Thin'),
- wbFloat('Muscular'),
- wbFloat('Fat')
- ]),
- wbStruct('Female Default Weight', [
- wbFloat('Thin'),
- wbFloat('Muscular'),
- wbFloat('Fat')
- ]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Playable',
- {0x00000002} 'FaceGen Head',
- {0x00000004} 'Child',
- {0x00000008} 'Tilt Front/Back',
- {0x00000010} 'Tilt Left/Right',
- {0x00000020} 'No Shadow',
- {0x00000040} 'Swims',
- {0x00000080} 'Flies',
- {0x00000100} 'Walks',
- {0x00000200} 'Immobile',
- {0x00000400} 'Not Pushable',
- {0x00000800} 'No Combat In Water',
- {0x00001000} 'No Rotating to Head-Track',
- {0x00002000} 'Don''t Show Blood Spray',
- {0x00004000} 'Don''t Show Blood Decal',
- {0x00008000} 'Uses Head Track Anims',
- {0x00010000} 'Spells Align w/Magic Node',
- {0x00020000} 'Use World Raycasts For FootIK',
- {0x00040000} 'Allow Ragdoll Collision',
- {0x00080000} 'Regen HP In Combat',
- {0x00100000} 'Can''t Open Doors',
- {0x00200000} 'Allow PC Dialogue',
- {0x00400000} 'No Knockdowns',
- {0x00800000} 'Allow Pickpocket',
- {0x01000000} 'Always Use Proxy Controller',
- {0x02000000} 'Don''t Show Weapon Blood',
- {0x04000000} 'Overlay Head Part List', {>>>Only one can be active<<<}
- {0x08000000} 'Override Head Part List', {>>>Only one can be active<<<}
- {0x10000000} 'Can Pickup Items',
- {0x20000000} 'Allow Multiple Membrane Shaders',
- {0x40000000} 'Can Dual Wield',
- {0x80000000} 'Avoids Roads'
- ])),
- wbFloat('Acceleration Rate'),
- wbFloat('Deceleration Rate'),
- wbInteger('Size', itU32, wbEnum([
- 'Small',
- 'Medium',
- 'Large',
- 'Extra Large'
- ])),
- wbByteArray('Unknown', 8),
- wbFloat('Injured Health Pct'),
- wbInteger('Shield Biped Object', itS32, wbBipedObjectEnum),
- wbInteger('Beard Biped Object', itS32, wbBipedObjectEnum),
- wbInteger('Body Biped Object', itS32, wbBipedObjectEnum),
- wbFloat('Aim Angle Tolerance'),
- wbFloat('Flight Radius'),
- wbFloat('Angular Acceleration Rate'),
- wbFloat('Angular Tolerance'),
- wbInteger('Flags 2', itU32, wbFlags([
- {0x00000001} 'Use Advanced Avoidance',
- {0x00000002} 'Non-Hostile',
- {0x00000004} 'Floats',
- {0x00000008} 'Unknown 3',
- {0x00000010} 'Unknown 4',
- {0x00000020} 'Head Axis Bit 0',
- {0x00000040} 'Head Axis Bit 1',
- {0x00000080} 'Can Melee When Knocked Down',
- {0x00000100} 'Use Idle Chatter During Combat',
- {0x00000200} 'Ungendered',
- {0x00000400} 'Can Move When Knocked Down',
- {0x00000800} 'Use Large Actor Pathing',
- {0x00001000} 'Use Subsegmented Damage',
- {0x00002000} 'Flight - Defer Kill',
- {0x00004000} 'Unknown 14',
- {0x00008000} 'Flight - Allow Procedural Crash Land',
- {0x00010000} 'Disable Weapon Culling',
- {0x00020000} 'Use Optimal Speeds',
- {0x00040000} 'Has Facial Rig',
- {0x00080000} 'Can Use Crippled Limbs',
- {0x00100000} 'Use Quadruped Controller',
- {0x00200000} 'Low Priority Pushable',
- {0x00400000} 'Cannot Use Playable Items'
- ])),
- wbByteArray('Unknown', 36),
- wbInteger('Pipboy Biped Object', itS32, wbBipedObjectEnum),
- wbInteger('XP Value', itS16),
- wbFloat('Severable - Debris Scale'),
- wbInteger('Severable - Debris Count', itU8),
- wbInteger('Severable - Decal Count', itU8),
- wbFloat('Explodable - Debris Scale'),
- wbInteger('Explodable - Debris Count', itU8),
- wbInteger('Explodable - Decal Count', itU8),
- wbFormIDCk('Severable - Explosion', [EXPL, NULL]),
- wbFormIDCk('Severable - Debris', [DEBR, NULL]),
- wbFormIDCk('Severable - Impact DataSet', [IPDS, NULL]),
- wbFormIDCk('Explodable - Explosion', [EXPL, NULL]),
- wbFormIDCk('Explodable - Debris', [DEBR, NULL]),
- wbFormIDCk('Explodable - Impact DataSet', [IPDS, NULL]),
- wbFloat('OnCripple - Debris Scale'),
- wbInteger('OnCripple - Debris Count', itU8),
- wbInteger('OnCripple - Decal Count', itU8),
- wbFormIDCk('OnCripple - Explosion', [EXPL, NULL]),
- wbFormIDCk('OnCripple - Debris', [DEBR, NULL]),
- wbFormIDCk('OnCripple - Impact DataSet', [IPDS, NULL]),
- wbFormIDCk('Explodable - Subsegment Explosion', [EXPL, NULL]),
- wbFloat('Orientation Limits - Pitch'),
- wbFloat('Orientation Limits - Roll')
- ], cpNormal, True),
-
- wbEmpty(MNAM, 'Male Marker'),
- wbString(ANAM, 'Male Skeletal Model'),
- wbMODT,
- wbEmpty(FNAM, 'Female Marker'),
- wbString(ANAM, 'Female Skeletal Model'),
- wbMODT,
- wbEmpty(NAM2, 'Marker NAM2 #1'),
- wbRArrayS('Movement Type Names', wbString(MTNM, 'Name')),
- wbArray(VTCK, 'Voices', wbFormIDCk('Voice', [VTYP]), ['Male', 'Female'], cpNormal, True),
- //wbArray(DNAM, 'Decapitate Armors', wbFormIDCk('Decapitate Armor', [NULL, ARMO]), ['Male', 'Female'], cpNormal, False),
- wbArray(HCLF, 'Default Hair Colors', wbFormIDCk('Default Hair Color', [NULL, CLFM]), ['Male', 'Female'], cpNormal, False),
- wbInteger(TINL, 'Total Number of Tints in List', itU16, nil, nil, cpNormal, False), {>>> Needs Count Updated <<<}
- wbFloat(PNAM, 'FaceGen - Main clamp', cpNormal, True),
- wbFloat(UNAM, 'FaceGen - Face clamp', cpNormal, True),
-
- wbFormIDCk(ATKR, 'Attack Race', [RACE], False, cpNormal, False),
- wbRArrayS('Attacks', wbAttackData),
-
- wbRStruct('Body Data', [
- wbEmpty(NAM1, 'Body Data Marker', cpNormal, True),
- wbRStruct('Male Body Data', [
- wbEmpty(MNAM, 'Male Data Marker'),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbBodyPartIndexEnum),
- wbMODL
- ], []), cpNormal, True)
- ], [], cpNormal, True),
- wbRStruct('Female Body Data', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbBodyPartIndexEnum),
- wbMODL
- ], []), cpNormal, True)
- ], [], cpNormal, True)
- ], [], cpNormal, True),
- wbFormIDCk(GNAM, 'Body Part Data', [BPTD]),
-
- wbEmpty(NAM2, 'Marker NAM2 #2', cpNormal),
- wbEmpty(NAM3, 'Marker NAM3 #3', cpNormal, True),
- wbRStruct('Male Behavior Graph', [
- wbEmpty(MNAM, 'Male Data Marker'),
- wbMODL
- ], [], cpNormal, True),
- wbRStruct('Female Behavior Graph', [
- wbEmpty(FNAM, 'Female Data Marker', cpNormal, True),
- wbMODL
- ], [], cpNormal, True),
-
- wbFormIDCk(NAM4, 'Impact Material Type', [MATT]),
- wbFormIDCk(NAM5, 'Impact Data Set', [IPDS]),
- wbFormIDCk(NAM7, 'Dismember Blood Art', [ARTO]),
- wbFormIDCk(CNAM, 'Meat Cap TextureSet', [TXST]),
- wbFormIDCk(NAM2, 'Collar TextureSet', [TXST]),
- wbFormIDCk(ONAM, 'Sound - Open Corpse', [SNDR]),
- wbFormIDCk(LNAM, 'Sound - Close Corpse', [SNDR]),
- wbRArray('Biped Object Names', wbString(NAME, 'Name')),
- wbRaceRBPC,
- wbRArrayS('Movement Data Overrides', wbRStructSK([0], 'Override', [
- wbFormIDCk(MTYP, 'Movement Type', [MOVT]),
- wbSPED
- ], [])),
- wbInteger(VNAM, 'Equipment Flags', itU32, wbEquipType),
- wbRArray('Equip Slots',
- wbRStruct('Equip Slot', [
- wbFormIDCk(QNAM, 'Equip Slot', [EQUP]),
- wbString(ZNAM, 'Node')
- ], [])
- ),
- wbFormIDCk(UNWP, 'Unarmed Weapon', [WEAP]),
-
- wbRArray('Phoneme Target Names', wbString(PHTN, 'Name')),
- wbPHWT,
-
- wbFormIDCk(WKMV, 'Base Movement Defaults - Default', [MOVT]),
- wbFormIDCk(SWMV, 'Base Movement Defaults - Swim', [MOVT]),
- wbFormIDCk(FLMV, 'Base Movement Defaults - Fly', [MOVT]),
- wbFormIDCk(SNMV, 'Base Movement Defaults - Sneak', [MOVT]),
-
- // Male head
- wbEmpty(NAM0, 'Head Data Marker'),
- wbEmpty(MNAM, 'Male Data Marker'),
- wbStruct(NNAM, 'Male Neck Fat Adjustments Scale', [
- wbByteArray('Unknown', 4),
- wbFloat('X'),
- wbFloat('Y')
- ]),
- wbRArrayS('Male Head Parts', wbHeadPart),
- wbRArray('Male Race Presets', wbFormIDCk(RPRM, 'Preset NPC', [NPC_, NULL])),
- wbRArray('Male Hair Colors', wbFormIDCk(AHCM, 'Hair Color', [CLFM, NULL])),
- wbRArrayS('Male Face Details', wbFormIDCk(FTSM, 'Texture Set', [TXST, NULL])),
- wbFormIDCk(DFTM, 'Male Default Face Texture', [TXST]),
- wbTintTemplateGroups('Male Tint Layers'),
- wbMorphGroups('Male Morph Groups'),
- wbFaceMorphs('Male Face Morphs'),
- wbString(WMAP, 'Male Wrinkle Map Path'),
-
- // Female head
- wbEmpty(NAM0, 'Head Data Marker'),
- wbEmpty(FNAM, 'Female Data Marker'),
- wbStruct(NNAM, 'Female Neck Fat Adjustments Scale', [
- wbByteArray('Unknown', 4),
- wbFloat('X'),
- wbFloat('Y')
- ]),
- wbRArrayS('Female Head Parts', wbHeadPart),
- wbRArray('Female Race Presets', wbFormIDCk(RPRF, 'Preset NPC', [NPC_, NULL])),
- wbRArray('Female Hair Colors', wbFormIDCk(AHCF, 'Hair Color', [CLFM, NULL])),
- wbRArrayS('Female Face Details', wbFormIDCk(FTSF, 'Texture Set', [TXST, NULL])),
- wbFormIDCk(DFTF, 'Female Default Face Texture', [TXST]),
- wbTintTemplateGroups('Female Tint Layers'),
- wbMorphGroups('Female Morph Groups'),
- wbFaceMorphs('Female Face Morphs'),
- wbString(WMAP, 'Female Wrinkle Map Path'),
-
- wbFormIDCk(NAM8, 'Morph Race', [RACE]),
- wbFormIDCk(RNAM, 'Armor Race', [RACE]),
- wbFormIDCk(SRAC, 'Subgraph Template Race', [RACE]),
- wbFormIDCk(SADD, 'Subgraph Additive Race', [RACE]),
- wbRArray('Subgraph Data',
- wbRStruct('Data', [
- wbString(SGNM, 'Behaviour Graph'),
- wbRArray('Actor Keywords', wbFormIDCk(SAKD, 'Keyword', [KYWD])),
- wbRArray('Target Keywords', wbFormIDCk(STKD, 'Keyword', [KYWD])),
- wbRArray('Animation Paths', wbString(SAPT, 'Path'), cpNormal, True),
- // Values greater than $10000 sets a bool. Reading this "closes" the current record.
- wbStruct(SRAF, 'Flags', [
- wbInteger('Role', itU16, wbEnum([
- {0} 'MT',
- {1} 'Weapon',
- {2} 'Furniture',
- {3} 'Idle',
- {4} 'Pipboy'
- ])),
- wbInteger('Perspective', itU16, wbEnum([
- '3rd',
- '1st'
- ]))
- ], cpNormal, True)
- ], [], cpNormal, False, nil, True)
- ),
- wbFloat(PTOP, 'Idle Chatter Time Min'),
- wbFloat(NTOP, 'Idle Chatter Time Max'),
- wbRArray('Morph Values',
- wbRStruct('Value', [
- wbInteger(MSID, 'Index', itU32, wbIntToHexStr, wbHexStrToInt),
- wbString(MSM0, 'Min Name'),
- wbString(MSM1, 'Max Name')
- ], [])
- ),
- wbUnknown(MLSI),
- wbString(HNAM, 'Hair Color Lookup Texture'),
- wbString(HLTX, 'Hair Color Extended Lookup Texture'),
- wbFormIDCk(QSTI, 'Dialogue Quest', [QUST]),
- wbBSMPSequence
- ], False, nil, cpNormal, False, nil, wbRACEAfterSet);
-
-
- wbRecord(REFR, 'Placed Object', wbFormaterUnion(wbREFRRecordFlagsDecider, [
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000010} 4, 'Ground Piece',
- {0x00000100} 8, 'LOD Respects Enable State',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00010000} 16, 'Is Full LOD',
- {0x04000000} 26, 'Filter (Collision Geometry)',
- {0x08000000} 27, 'Bounding Box (Collision Geometry)',
- {0x10000000} 28, 'Reflected By Auto Water',
- {0x40000000} 30, 'Ground',
- {0x80000000} 31, 'Multibound'
- ], True, True)),
- {ACTI STAT SCOL TREE} wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000010} 4, 'Ground Piece',
- {0x00000100} 8, 'LOD Respects Enable State',
- {0x00000200} 9, 'Hidden From Local Map',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00008000} 15, 'Visible when distant',
- {0x00010000} 16, 'Is Full LOD',
- {0x04000000} 26, 'Filter (Collision Geometry)',
- {0x08000000} 27, 'Bounding Box (Collision Geometry)',
- {0x10000000} 28, 'Reflected By Auto Water',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'No Respawn',
- {0x80000000} 31, 'Multibound'
- ], True, True)),
- {CONT TERM} wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000010} 4, 'Ground Piece',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00010000} 16, 'Is Full LOD',
- {0x02000000} 25, 'No AI Acquire',
- {0x04000000} 26, 'Filter (Collision Geometry)',
- {0x08000000} 27, 'Bounding Box (Collision Geometry)',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'Ground',
- {0x80000000} 31, 'Multibound'
- ], True, True)),
- {DOOR} wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Minimal Use Door',
- {0x00000040} 6, 'Hidden From Local Map',
- {0x00000100} 8, 'Inaccessible',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00010000} 16, 'Is Full LOD',
- {0x04000000} 26, 'Filter (Collision Geometry)',
- {0x08000000} 27, 'Bounding Box (Collision Geometry)',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'No Respawn',
- {0x80000000} 31, 'Multibound'
- ], True, True)),
- {LIGH} wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000100} 8, 'Doesn''t Light Water',
- {0x00000200} 9, 'Casts Shadows',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00010000} 16, 'Never Fades',
- {0x00020000} 17, 'Doesn''t Light Landscape',
- {0x02000000} 25, 'No AI Acquire',
- {0x10000000} 28, 'Reflected By Auto Water',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'No Respawn',
- {0x80000000} 31, 'Multibound'
- ], True, True)),
- {MSTT} wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000010} 4, 'Ground Piece',
- {0x00000200} 9, 'Motion Blur',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00010000} 16, 'Is Full LOD',
- {0x04000000} 26, 'Filter (Collision Geometry)',
- {0x08000000} 27, 'Bounding Box (Collision Geometry)',
- {0x10000000} 28, 'Reflected By Auto Water',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'No Respawn',
- {0x80000000} 31, 'Multibound'
- ], True, True)),
- {ADDN} wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00010000} 16, 'Is Full LOD',
- {0x10000000} 28, 'Reflected By Auto Water',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'No Respawn',
- {0x80000000} 31, 'Multibound'
- ], True, True)),
- {ALCH BOOK SCRL AMMO ARMO INGR KEYM MISC FURN WEAP}
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000010} 4, 'Ground Piece',
- {0x00000400} 10, 'Persistent',
- {0x00000800} 11, 'Initially Disabled',
- {0x00010000} 16, 'Is Full LOD',
- {0x02000000} 25, 'No AI Acquire',
- {0x10000000} 28, 'Reflected By Auto Water',
- {0x20000000} 29, 'Don''t Havok Settle',
- {0x40000000} 30, 'No Respawn',
- {0x80000000} 31, 'Multibound'
- ], True, True))
- ]), [
- wbEDID,
- wbVMAD,
- wbFormIDCk(NAME, 'Base', sigBaseObjects, False, cpNormal, True),
-
- {--- Bound Contents ---}
- {--- Bound Data ---}
- wbStruct(XMBO, 'Bound Half Extents', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
-
- {--- Primitive ---}
- wbStruct(XPRM, 'Primitive', [
- wbStruct('Bounds', [
- wbFloat('X', cpNormal, True, 2, 4),
- wbFloat('Y', cpNormal, True, 2, 4),
- wbFloat('Z', cpNormal, True, 2, 4)
- ]),
- wbFloatColors('Color'),
- wbFloat('Unknown'),
- wbInteger('Type', itU32, wbEnum([
- 'None',
- 'Box',
- 'Sphere',
- 'Plane',
- 'Line',
- 'Ellipsoid'
- ]))
- ]),
-
- wbArray(XPOD, 'Portal Data', wbStruct('References', [
- wbFormIDCk('Origin', [REFR, NULL]),
- wbFormIDCk('Destination', [REFR, NULL])
- ])),
-
- wbUnknown(XORD),
-
- wbStruct(XOCP, 'Occlusion Plane Data', [
- wbStruct('Size', [
- wbFloat('Width', cpNormal, False, 2),
- wbFloat('Height', cpNormal, False, 2)
- ]),
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation (Quaternion?)', [
- wbFloat('q1'),
- wbFloat('q2'),
- wbFloat('q3'),
- wbFloat('q4')
- ])
- ]),
-
- wbRStruct('Bound Data', [
- wbStruct(XRMR, 'Header', [
- wbInteger('Linked Rooms Count', itU8),
- wbInteger('Flags', itU8, wbFlags([
- 'Unknown 1',
- 'Unknown 2',
- 'Unknown 3',
- 'Unknown 4',
- 'Unknown 5',
- 'Unknown 6',
- 'Has Image Space',
- 'Has Lighting Template'
- ])),
- wbByteArray('Unknown', 2)
- ]),
- wbFormIDCk(LNAM, 'Lighting Template', [LGTM]),
- wbFormIDCk(INAM, 'Image Space', [IMGS]),
- wbRArrayS('Linked Rooms',
- wbFormIDCk(XLRM, 'Linked Room', [REFR])
- )
- ], []),
- wbEmpty(XMBP, 'MultiBound Primitive Marker', cpIgnore),
-
- {--- Ragdoll ---}
- wbXRGD,
- wbXRGB,
-
- wbFloat(XRDS, 'Radius'),
- wbXSCL,
-
- {--- Emittance ---}
- wbFormIDCk(XEMI, 'Emittance', [LIGH, REGN]),
- wbStruct(XLIG, 'Light Data', [
- wbFloat('FOV 90+/-'),
- wbFloat('Fade 1.0+/-'),
- wbFloat('End Distance Cap'),
- wbFloat('Shadow Depth Bias'),
- wbFloat('Near Clip'),
- wbFloat('Volumetric Intensity')
- ], cpNormal, False, nil, 4),
- wbStruct(XALP, 'Alpha', [
- wbInteger('Cutoff', itU8),
- wbInteger('Base', itU8)
- ]),
-
- {--- Teleport ---}
- wbStruct(XTEL, 'Teleport Destination', [
- wbFormIDCk('Door', [REFR], True),
- wbPosRot,
- wbInteger('Flags', itU32, wbFlags([
- 'No Alarm',
- 'No Load Screen',
- 'Relative Position'
- ])),
- wbFormIDCk('Transition Interior', [CELL, NULL])
- ]),
- wbFormIDCk(XTNM, 'Teleport Loc Name', [MESG]),
-
- {--- MultiBound ---}
- wbFormIDCk(XMBR, 'MultiBound Reference', [REFR]),
-
- {--- Placed Water ---}
- wbUnknown(XWCN),
- wbStruct(XWCU, 'Water Velocity', [
- wbFloat('X Offset'),
- wbFloat('Y Offset'),
- wbFloat('Z Offset'),
- wbByteArray('Unknown', 4),
- wbFloat('X Angle'),
- wbFloat('Y Angle'),
- wbFloat('Z Angle'),
- wbByteArray('Unknown', 0)
- ]),
-
- wbFormIDCk(XASP, 'Acoustic Restriction', [REFR]),
- wbEmpty(XATP, 'Activation Point'),
- wbInteger(XAMC, 'Ammo Count', itU32),
- wbEmpty(XLKT, 'Linked Ref Transient'),
- wbFormIDCk(XLYR, 'Layer', [LAYR]),
- wbFormIDCk(XMSP, 'Material Swap', [MSWP]),
- wbFormIDCk(XRFG, 'Reference Group', [RFGP]),
- wbStruct(XRDO, 'Radio', [
- wbFloat('Frequency'),
- wbFloat('Min Weak Distance'),
- wbFloat('Max Weak Distance'),
- wbInteger('Flags', itU32, wbFlags(['Ignores Distance Checks']))
- ]),
- wbStruct(XBSD, 'Spline', [
- wbFloat('Slack'),
- wbFloat('Thickness'),
- wbFloat('Unknown'), // not shown in editor
- wbFloat('Unknown'), // not shown in editor
- wbFloat('Unknown'), // not shown in editor
- wbInteger('Wind - Detached End', itU8, wbBoolEnum),
- wbByteArray('Unused', 0) // junk data?
- ], cpNormal, False, nil, 5),
- wbStruct(XPDD, 'Projected Decal', [
- wbFloat('Width Scale'),
- wbFloat('Height Scale')
- // "Uses Box Primitive" checkbox does the following:
- // 1. "Rounds" above floats (probably due to floating point precision) [DIRTY EDITS?]
- // 2. "Rounds" DATA\Position floats (probably due to floating point precision) [DIRTY EDITS?]
- // 3. Creates an XPRM subrecord (this is the "Primitive" tab in the editor)
- // 4. Fills out Primitive data:
- // 4a. Primitive type: Box
- // 4b. Collision layer: XTRI subrecord = 15
- // 4c. Bounds (XYZ): 256.0, 215.0, 256.0
- // 4d. Color (RGB): 0, 128, 128
- // 4e. Unknown: 0.4
- ]),
- wbFormIDCk(XSPC, 'Spawn Container', [REFR]),
-
- {--- Activate Parents ---}
- wbRStruct('Activate Parents', [
- wbInteger(XAPD, 'Flags', itU8, wbFlags([
- 'Parent Activate Only'
- ], True)),
- wbRArrayS('Activate Parent Refs',
- wbStructSK(XAPR, [0], 'Activate Parent Ref', [
- wbFormIDCk('Reference', sigReferences),
- wbFloat('Delay')
- ])
- )
- ], []),
-
- wbFormIDCk(XLIB, 'Leveled Item Base Object', [LVLI]),
- wbXLCM,
- wbFormIDCk(XLCN, 'Persistent Location', [LCTN]),
-
- {>>> COLL form Index value <<<}
- wbInteger(XTRI, 'Collision Layer', itU32),
-
- {--- Lock ---}
- wbStruct(XLOC, 'Lock Data', [
- wbInteger('Level', itU8, wbEnum([], [
- 0, 'None',
- 1, 'Novice 1',
- 25, 'Novice 25',
- 50, 'Advanced',
- 75, 'Expert',
- 100, 'Master',
- 253, 'Requires Terminal',
- 251, 'Barred',
- 252, 'Chained',
- 254, 'Inaccessible',
- 255, 'Requires Key'
- ])),
- wbByteArray('Unused', 3, cpIgnore),
- wbFormIDCkNoReach('Key', [KEYM, NULL]),
- wbInteger('Flags', itU8, wbFlags(['', '', 'Leveled Lock'])),
- wbByteArray('Unused', 3, cpIgnore),
- wbUnknown
- ], cpNormal, False, nil, 4),
-
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN]),
-
- {--- Generated Data ---}
- wbStruct(XNDP, 'Navigation Door Link', [
- wbFormIDCk('Navigation Mesh', [NAVM]),
- wbInteger('Teleport Marker Triangle', itS16, wbREFRNavmeshTriangleToStr, wbStringToInt),
- wbByteArray('Unused', 2, cpIgnore)
- ]),
-
- wbFormIDCk(XLRL, 'Location Reference', [LCRT, LCTN, NULL], False, cpBenignIfAdded),
- wbArray(XLRT, 'Location Ref Type', wbFormIDCk('Ref', [LCRT, NULL])),
- wbEmpty(XIS2, 'Ignored by Sandbox'),
-
- {--- Ownership ---}
- wbXOWN,
- wbXRNK,
-
- wbInteger(XCNT, 'Item Count', itS32),
- wbInteger(XHLT, 'Health %', itU32),
-
- wbXESP,
- wbRArray('Linked References', wbStruct(XLKR, 'Linked Reference', [
- wbFormIDCk('Keyword/Ref', [KYWD, PLYR, ACHR, REFR, PGRE, PHZD, PMIS, PARW, PBAR, PBEA, PCON, PFLA, NULL]),
- wbFormIDCk('Ref', sigReferences)
- ], cpNormal, False, nil, 1)),
-
- wbRArray('Patrol', wbRStruct('Data', [
- wbFloat(XPRD, 'Idle Time', cpNormal, True),
- wbEmpty(XPPA, 'Patrol Script Marker', cpNormal, True),
- wbFormIDCk(INAM, 'Idle', [IDLE, NULL], False, cpNormal, True),
- wbPDTOs
- ], [])),
-
- {--- Flags ---}
- wbInteger(XACT, 'Action Flag', itU32, wbFlags([
- 'Use Default',
- 'Activate',
- 'Open',
- 'Open by Default'
- ])),
-
- wbFloat(XHTW, 'Head-Tracking Weight'),
- wbFloat(XFVC, 'Favor Cost'),
-
- wbEmpty(ONAM, 'Open by Default'),
-
- {--- Map Data ---}
- wbRStruct('Map Marker', [
- wbEmpty(XMRK, 'Map Marker Data'),
- wbInteger(FNAM, 'Map Flags', itU8, wbFlags([
- {0x01} 'Visible',
- {0x02} 'Can Travel To',
- {0x04} '"Show All" Hidden',
- {0x08} 'Use Location Name'
- ]), cpNormal, True),
- wbFULLReq,
- wbStruct(TNAM, '', [
- wbInteger('Type', itU8, wbEnum([], [
- {Vv = Verified Vanilla}
- {No new map markers for Automatron or Workshop}
- 0, 'Cave', {Vv}
- 1, 'City', {Vv}
- 2, 'Diamond City', {Vv}
- 3, 'Encampment', {Vv}
- 4, 'Factory / Industrial Site', {Vv}
- 5, 'Gov''t Building / Monument', {Vv}
- 6, 'Metro Station', {Vv}
- 7, 'Military Base', {Vv}
- 8, 'Natural Landmark', {Vv}
- 9, 'Office / Civic Building', {Vv}
- 10, 'Ruins - Town', {Vv}
- 11, 'Ruins - Urban', {Vv}
- 12, 'Sanctuary', {Vv}
- 13, 'Settlement', {Vv}
- 14, 'Sewer / Utility Tunnels', {Vv}
- 15, 'Vault', {Vv}
- 16, 'Airfield', {Vv}
- 17, 'Bunker Hill', {Vv}
- 18, 'Camper', {Vv}
- 19, 'Car', {Vv}
- 20, 'Church', {Vv}
- 21, 'Country Club', {Vv}
- 22, 'Custom House', {Vv}
- 23, 'Drive-In', {Vv}
- 24, 'Elevated Highway', {Vv}
- 25, 'Faneuil Hall', {Vv}
- 26, 'Farm', {Vv}
- 27, 'Filling Station', {Vv}
- 28, 'Forested', {Vv}
- 29, 'Goodneighbor', {Vv}
- 30, 'Graveyard', {Vv}
- 31, 'Hospital', {Vv}
- 32, 'Industrial Dome', {Vv}
- 33, 'Industrial Stacks', {Vv}
- 34, 'Institute', {Vv}
- 35, 'Irish Pride', {Vv}
- 36, 'Junkyard', {Vv}
- 37, 'Observatory', {Vv}
- 38, 'Pier', {Vv}
- 39, 'Pond / Lake', {Vv}
- 40, 'Quarry', {Vv}
- 41, 'Radioactive Area', {Vv}
- 42, 'Radio Tower', {Vv}
- 43, 'Salem', {Vv}
- 44, 'School', {Vv}
- 45, 'Shipwreck', {Vv}
- 46, 'Submarine', {Vv}
- 47, 'Swan Pond', {Vv}
- 48, 'Synth Head', {Vv}
- 49, 'Town', {Vv}
- 50, 'Brotherhood of Steel', {Vv}
- 51, 'Brownstone Townhouse', {Vv}
- 52, 'Bunker', {Vv}
- 53, 'Castle', {Vv}
- 54, 'Skyscraper', {Vv}
- 55, 'Libertalia', {Vv}
- 56, 'Low-Rise Building', {Vv}
- 57, 'Minutemen', {Vv}
- 58, 'Police Station', {Vv}
- 59, 'Prydwen', {Vv}
- 60, 'Railroad - Faction', {Vv}
- 61, 'Railroad', {Vv}
- 62, 'Satellite', {Vv}
- 63, 'Sentinel', {Vv}
- 64, 'USS Constitution', {Vv}
- 65, 'Mechanist LairRaider settlementVassal settlementPotential Vassal settlement', {Vv}
- 66, 'Custom 66',
- 67, 'Custom 67',
- 68, 'Custom 68',
- 69, 'Custom 69',
- 70, 'Custom 70',
- 71, 'Custom 71',
- 72, 'Custom 72',
- 73, 'Custom 73',
- 74, 'Custom 74',
- 75, 'Custom 75',
- 76, 'Custom 76',
- 77, 'Custom 77',
- 78, 'Custom 78',
- 79, 'Custom 79',
- 80, 'Custom 80',
- 81, 'Custom 81',
- 82, 'Custom 82',
- 83, 'Custom 83',
- 84, 'Custom 84',
- 85, 'Custom 85',
- 86, 'Custom 86',
- 87, 'Custom 87',
- 88, 'Custom 88',
- 89, 'Custom 89',
- 90, 'Custom 90',
- 91, 'Custom 91',
- 92, 'Custom 92',
- 93, 'Custom 93',
- 94, 'Custom 94',
- 95, 'Custom 95',
- 96, 'Custom 96',
- 97, 'Custom 97',
- 98, 'Custom 98',
- 99, 'Custom 99'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True)
- ], []),
-
- {--- Attach reference ---}
- wbFormIDCk(XATR, 'Attach Ref', [REFR, PGRE, PHZD, PMIS, PARW, PBAR, PBEA, PCON, PFLA]),
-
- wbRArray('Spline Connection', wbStruct(XPLK, 'Link', [
- wbFormIDCk('Ref', [REFR, ACHR]),
- wbUnknown // always 00 00 00 00 so far in DLCWorkshop03.esm
- ])),
-
- wbRStruct('Power Grid', [
- wbInteger(XWPG, 'Count', itU32),
- wbRArray('Connections', wbStruct(XWPN, 'Connection', [
- wbFormIDCk('Node 1', [REFR, ACHR, NULL]),
- wbFormIDCk('Node 2', [REFR, ACHR, NULL]),
- wbFormIDCk('Line', [REFR, NULL]) // BNDS ref
- ]))
- ], []),
-
- wbUnknown(XCVR),
- wbUnknown(XCVL),
- wbFormIDCk(XCZR, 'Unknown', sigReferences),
- wbUnknown(XCZA),
- wbFormIDCk(XCZC, 'Unknown', [CELL, NULL]),
-
- wbXLOD, // not seen in FO4 vanilla files
-
- wbDataPosRot,
- wbString(MNAM, 'Comments')
- ], True, wbPlacedAddInfo, cpNormal, False, wbREFRAfterLoad);
-
- wbRecord(REGN, 'Region',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000040} 6, 'Border Region'
- ])), [
- wbEDID,
- wbStruct(RCLR, 'Map Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unknown', 1)
- ], cpNormal, True),
- wbFormIDCkNoReach(WNAM, 'Worldspace', [WRLD]),
- wbRArray('Region Areas', wbRStruct('Region Area', [
- wbInteger(RPLI, 'Edge Fall-off', itU32),
- wbArray(RPLD, 'Region Point List Data', wbStruct('Point', [
- wbFloat('X'),
- wbFloat('Y')
- ]), 0, wbRPLDAfterLoad),
- wbUnknown(ANAM)
- ], [])),
- wbRArrayS('Region Data Entries', wbRStructSK([0], 'Region Data Entry', [
- {always starts with an RDAT}
- wbStructSK(RDAT, [0], 'Data Header', [
- wbInteger('Type', itU32, wbEnum([
- {0} 'Unknown 0',
- {1} 'Unknown 1',
- {2} 'Objects',
- {3} 'Weather',
- {4} 'Map',
- {5} 'Land',
- {6} 'Grass',
- {7} 'Sound',
- {8} 'Imposter',
- {9} 'Unknown 10',
- {10}'Unknown 11',
- {11}'Unknown 12',
- {12}'Unknown 13',
- {13}'Unknown 14',
- {14}'Unknown 15',
- {15}'Unknown 16'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Override'
- ])),
- wbInteger('Priority', itU8),
- wbByteArray('Unknown')
- ], cpNormal, True),
-
- {--- Icon ---}
- wbICON,
-
- {--- Sound ---}
- wbFormIDCk(RDMO, 'Music', [MUSC], False, cpNormal, False, wbREGNSoundDontShow),
- wbArrayS(RDSA, 'Sounds', wbStructSK([0], 'Sound', [
- wbFormIDCk('Sound', [SNDR, NULL]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Pleasant',
- {0x00000002} 'Cloudy',
- {0x00000004} 'Rainy',
- {0x00000008} 'Snowy'
- ])),
- wbFloat('Chance')
- ]), 0, cpNormal, False, nil, nil, wbREGNSoundDontShow),
-
- {--- Map ---}
- wbLString(RDMP, 'Map Name', 0, cpTranslate, False, wbREGNMapDontShow),
-
- {followed by one of these: }
-
- {--- Objects ---}
- wbArray(RDOT, 'Objects', wbStruct('Object', [
- wbFormIDCk('Object', [TREE, FLOR, STAT, LTEX, MSTT]),
- wbInteger('Parent Index', itU16, wbHideFFFF),
- wbByteArray('Unknown', 2),
- wbFloat('Density'),
- wbInteger('Clustering', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbInteger('Flags', itU8, wbFlags([
- {0}'Conform to slope',
- {1}'Paint Vertices',
- {2}'Size Variance +/-',
- {3}'X +/-',
- {4}'Y +/-',
- {5}'Z +/-',
- {6}'Tree',
- {7}'Huge Rock'
- ])),
- wbInteger('Radius wrt Parent', itU16),
- wbInteger('Radius', itU16),
- wbFloat('Min Height'),
- wbFloat('Max Height'),
- wbFloat('Sink'),
- wbFloat('Sink Variance'),
- wbFloat('Size Variance'),
- wbStruct('Angle Variance', [
- wbInteger('X', itU16),
- wbInteger('Y', itU16),
- wbInteger('Z', itU16)
- ]),
- wbByteArray('Unknown', 2),
- wbByteArray('Unknown', 4)
- ]), 0, nil, nil, cpNormal, False, wbREGNObjectsDontShow),
-
- {--- Grass ---}
- wbArrayS(RDGS, 'Grasses', wbStructSK([0], 'Grass', [
- wbFormIDCk('Grass', [GRAS]),
- wbByteArray('Unknown',4)
- ]), 0, cpNormal, False, nil, nil, wbREGNGrassDontShow),
-
- {--- Weather ---}
- wbArrayS(RDWT, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR]),
- wbInteger('Chance', itU32),
- wbFormIDCk('Global', [GLOB, NULL])
- ]), 0, cpNormal, False, nil, nil, wbREGNWeatherDontShow),
-
- wbFloat(RLDM, 'LOD Display Distance Multiplier'),
- wbFloat(ANAM, 'Occlusion Accuracy Dist')
-
- ], []))
- ], True);
-
- wbRecord(SOUN, 'Sound Marker', [
- wbEDID,
- wbOBNDReq,
- wbFormIDCk(SDSC, 'Sound Descriptor', [SNDR, NULL]),
- wbStruct(REPT, 'Repeat', [
- wbFloat('Min Time'),
- wbFloat('Max Time'),
- wbInteger('Stackable', itU8, wbBoolEnum)
- ], cpNormal, False, nil, 2)
- ]);
-
- wbSPIT := wbStruct(SPIT, 'Data', [
- wbInteger('Base Cost', itU32),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Manual Cost Calc',
- {0x00000002} 'Unknown 2',
- {0x00000004} 'Unknown 3',
- {0x00000008} 'Unknown 4',
- {0x00000010} 'Unknown 5',
- {0x00000020} 'Unknown 6',
- {0x00000040} 'Unknown 7',
- {0x00000080} 'Unknown 8',
- {0x00000100} 'Unknown 9',
- {0x00000200} 'Unknown 10',
- {0x00000400} 'Unknown 11',
- {0x00000800} 'Unknown 12',
- {0x00001000} 'Unknown 13',
- {0x00002000} 'Unknown 14',
- {0x00004000} 'Unknown 15',
- {0x00008000} 'Unknown 16',
- {0x00010000} 'Unknown 17',
- {0x00020000} 'PC Start Spell',
- {0x00040000} 'Instant Cast',
- {0x00080000} 'Area Effect Ignores LOS',
- {0x00100000} 'Ignore Resistance',
- {0x00200000} 'No Absorb/Reflect',
- {0x00400000} 'Unknown 23',
- {0x00800000} 'No Dual Cast Modification',
- {0x01000000} 'Unknown 25',
- {0x02000000} 'Unknown 26',
- {0x04000000} 'Unknown 27',
- {0x08000000} 'Unknown 28',
- {0x10000000} 'Unknown 29',
- {0x20000000} 'Unknown 30',
- {0x40000000} 'Unknown 31',
- {0x80000000} 'Unknown 32'
- ])),
- wbInteger('Type', itU32, wbEnum([
- {0} 'Spell',
- {1} 'Disease',
- {2} 'Power',
- {3} 'Lesser Power',
- {4} 'Ability',
- {5} 'Poison',
- {6} 'Unknown 6',
- {7} 'Unknown 7',
- {8} 'Unknown 8',
- {9} 'Unknown 9',
- {10} 'Addiction',
- {11} 'Voice'
- ])),
- wbFloat('Charge Time'),
- wbInteger('Cast Type', itU32, wbCastEnum),
- wbInteger('Target Type', itU32, wbTargetEnum),
- wbFloat('Cast Duration'),
- wbFloat('Range'),
- wbFormIDCk('Casting Perk', [NULL, PERK])
- ], cpNormal, True);
-
- wbRecord(SPEL, 'Spell', [
- wbEDID,
- wbOBNDReq,
- wbFULL,
- wbKSIZ,
- wbKWDAs,
- wbETYP,
- wbDESCReq,
- wbSPIT,
- wbEffectsReq
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
- {wbRecord(SCRL, 'Scroll', [
- wbEDID
- ]);}
-
- wbRecord(STAT, 'Static',
- wbFlags(wbRecordFlagsFlags, [
- {0x00000001} { 0} '',
- {0x00000002} { 1} '',
- {0x00000004} { 2} 'Heading Marker',
- {0x00000008} { 3} '',
- {0x00000010} { 4} 'Non Occluder',
- {0x00000020} { 5} 'Deleted',
- {0x00000040} { 6} 'Has Tree LOD', // Used in Fallout 4 ?
- {0x00000080} { 7} 'Add-On LOD Object',
- {0x00000100} { 8} '',
- {0x00000200} { 9} 'Hidden From Local Map',
- {0x00000400} {10} 'Headtrack Marker',
- {0x00000800} {11} 'Used as Platform',
- {0x00001000} {12} '',
- {0x00002000} {13} 'Pack-In Use Only',
- {0x00004000} {14} '',
- {0x00008000} {15} 'Has Distant LOD',
- {0x00010000} {16} '',
- {0x00020000} {17} 'Uses HD LOD Texture',
- {0x00040000} {18} '',
- {0x00080000} {19} 'Has Currents',
- {0x00100000} {20} '',
- {0x00200000} {21} '',
- {0x00400000} {22} '',
- {0x00800000} {23} 'Is Marker',
- {0x01000000} {24} '',
- {0x02000000} {25} 'Obstacle',
- {0x04000000} {26} 'NavMesh Generation - Filter',
- {0x08000000} {27} 'NavMesh Generation - Bounding Box',
- {0x10000000} {28} 'Show In World Map (Sky Cell Only)',
- {0x20000000} {29} '',
- {0x40000000} {30} 'NavMesh Generation - Ground',
- {0x80000000} {31} ''
- ]), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFTYP,
- wbMODL,
- wbPRPS,
- wbFULL,
- wbStruct(DNAM, 'Direction Material', [
- wbFloat('Max Angle (30-120)'),
- wbFormIDCk('Material', [MATO, NULL]),
- wbFloat('Leaf Amplitude'),
- wbFloat('Leaf Frequency')
- ], cpNormal, True, nil, 2),
- wbNVNM,
- wbArray(MNAM, 'Distant LOD',
- wbStruct('LOD', [
- {>>> Contains null-terminated mesh filename followed by random data up to 260 bytes <<<}
- wbString(True, 'Mesh', 260)
- //wbByteArray('Mesh', 260, cpIgnore)
- ]), [
- 'Level 0',
- 'Level 1',
- 'Level 2',
- 'Level 3'
- ],
- cpNormal, False
- )
- ], True); // unordered, NVNM can be before or after MNAM
-
- wbRecord(TES4, 'Main File Header',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000001} 0, 'ESM',
- {0x00000080} 7, 'Localized'
- ], False), True), [
- wbStruct(HEDR, 'Header', [
- wbFloat('Version'),
- wbInteger('Number of Records', itU32),
- wbInteger('Next Object ID', itU32)
- ], cpNormal, True),
- wbByteArray(OFST, 'Unknown', 0, cpIgnore), // If possible then ignored by the runtime. Neither from the CK
- wbByteArray(DELE, 'Unknown', 0, cpIgnore), // If possible then ignored by the runtime. Neither from the CK
- wbString(CNAM, 'Author', 0, cpTranslate, True),
- wbString(SNAM, 'Description', 0, cpTranslate),
- wbRArray('Master Files', wbRStruct('Master File', [
- wbString(MAST, 'Filename', 0, cpNormal, True),
- // wbInteger(DATA, 'Filesize', itU64, nil, nil, cpIgnore, True) // Should be set by CK but usually null
- wbByteArray(DATA, 'Unknown', 8, cpIgnore, True)
- ], [ONAM])),
- wbArray(ONAM, 'Overridden Forms', // Valid in CK
- wbFormIDCk('Form', [ACHR, LAND, NAVM, REFR, PGRE, PHZD, PMIS, PARW, PBAR, PBEA, PCON, PFLA, DLBR, DIAL, INFO, SCEN]),
- 0, nil, nil, cpNormal, False{, wbTES4ONAMDontShow}),
- wbByteArray(SCRN, 'Screenshot'), // If possible then ignored by the runtime. Neither from the CK
- wbRArray('Transient Types (CK only)', wbStruct(TNAM, 'Transient Type', [
- wbInteger('FormType', itU32), // seen TESTopic 78 (array of DIAL) and BGSScene 126 (array of SCEN)
- wbArray('Unknown', wbFormID('Unknown'))
- ])), // Ignored by the runtime
- wbInteger(INTV, 'Unknown', itU32), // Ignored by the runtime, 4 bytes loaded in CK
- wbInteger(INCC, 'Unknown', itU32) // Size of some array of 12 bytes elements
- ], True, nil, cpNormal, True, wbRemoveOFST);
-end;
-
-procedure DefineFO4o;
-begin
-
- wbRecord(TREE, 'Tree',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00008000} 15, 'Has Distant LOD'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbMODL,
- wbFormIDCK(PFIG, 'Ingredient', sigBaseObjects),
- wbFormIDCK(SNAM, 'Harvest Sound', [SNDR, NULL]),
- wbStruct(PFPC, 'Ingredient Production', [
- wbInteger('Spring', itU8),
- wbInteger('Summer', itU8),
- wbInteger('Fall', itU8),
- wbInteger('Winter', itU8)
- ]),
- wbFULL,
- wbStruct(CNAM, 'Tree Data', [
- wbFloat('Trunk Flexibility'),
- wbFloat('Branch Flexibility'),
- //wbByteArray('Unknown', 32),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Unknown'),
- wbFloat('Leaf Amplitude'),
- wbFloat('Leaf Frequency')
- ], cpNormal, True)
- ]);
-
- wbRecord(FLOR, 'Flora', [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULLReq,
- wbMODL,
- wbDEST,
- wbKSIZ,
- wbKWDAs,
- wbPRPS,
- wbUnknown(PNAM),
- wbATTX,
- wbLString(RNAM, 'Activate Text Override', 0, cpTranslate),
- wbUnknown(FNAM),
- wbFormIDCk(PFIG, 'Ingredient', sigBaseObjects),
- wbFormIDCK(SNAM, 'Harvest Sound', [SNDR]),
- wbStruct(PFPC, 'Ingredient Production', [
- wbInteger('Spring', itU8),
- wbInteger('Summer ', itU8),
- wbInteger('Fall', itU8),
- wbInteger('Winter', itU8)
- ], cpNormal, True)
- ], False, nil, cpNormal, False, nil, wbKeywordsAfterSet);
-
- wbRecord(WATR, 'Water', [
- wbEDID,
- wbFULL,
- wbInteger(ANAM, 'Opacity (unused)', itU8),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- {0x01} 'Dangerous',
- {0x02} 'Unknown 1',
- {0x04} 'Directional Sound'
- ]), cpNormal, True),
- wbFormIDCk(TNAM, 'Material (unused)', [MATT]),
- wbFormIDCk(SNAM, 'Open Sound', [SNDR, NULL]),
- wbFormIDCk(XNAM, 'Consume Spell', [SPEL]),
- wbFormIDCk(YNAM, 'Contact Spell', [SPEL]),
- wbFormIDCk(INAM, 'Image Space', [IMGS]),
- wbByteArray(DATA, 'Unused', 0),
- wbStruct(DNAM, 'Visual Data', [
- wbStruct('Fog Properties', [
- wbFloat('Depth Amount'),
- wbByteColors('Shallow Color'),
- wbByteColors('Deep Color'),
- wbFloat('Color Shallow Range'),
- wbFloat('Color Deep Range'),
- wbFloat('Shallow Alpha'),
- wbFloat('Deep Alpha'),
- wbFloat('Alpha Shallow Range'),
- wbFloat('Alpha Deep Range'),
- wbByteColors('Underwater Color'),
- wbFloat('Underwater Fog Amount'),
- wbFloat('Underwater Near Fog'),
- wbFloat('Underwater Far Fog')
- ]),
- wbStruct('Physical Properties', [
- wbFloat('Normal Magnitude'),
- wbFloat('Shallow Normal Falloff'),
- wbFloat('Deep Normal Falloff'),
- wbFloat('Reflectivity Amount'),
- wbFloat('Fresnel Amount'),
- wbFloat('Surface Effect Falloff'),
- wbStruct('Displacement Simulator', [
- wbFloat('Force'),
- wbFloat('Velocity'),
- wbFloat('Falloff'),
- wbFloat('Dampener'),
- wbFloat('Starting Size')
- ]),
- wbByteColors('Reflection Color')
- ]),
- wbStruct('Specular Properties', [
- wbFloat('Sun Specular Power'),
- wbFloat('Sun Specular Magnitude'),
- wbFloat('Sun Sparkle Power'),
- wbFloat('Sun Sparkle Magnitude'),
- wbFloat('Interior Specular Radius'),
- wbFloat('Interior Specular Brightness'),
- wbFloat('Interior Specular Power')
- ]),
- wbStruct('Noise Properties', [
- wbFloat('Layer 1 - Wind Direction'),
- wbFloat('Layer 2 - Wind Direction'),
- wbFloat('Layer 3 - Wind Direction'),
- wbFloat('Layer 1 - Wind Speed'),
- wbFloat('Layer 2 - Wind Speed'),
- wbFloat('Layer 3 - Wind Speed'),
- wbFloat('Layer 1 - Amplitude Scale'),
- wbFloat('Layer 2 - Amplitude Scale'),
- wbFloat('Layer 3 - Amplitude Scale'),
- wbFloat('Layer 1 - UV Scale'),
- wbFloat('Layer 2 - UV Scale'),
- wbFloat('Layer 3 - UV Scale'),
- wbFloat('Layer 1 - Noise Falloff'),
- wbFloat('Layer 2 - Noise Falloff'),
- wbFloat('Layer 3 - Noise Falloff')
- ]),
- wbStruct('Silt Properties', [
- wbFloat('Silt Amount'),
- wbByteColors('Light Color'),
- wbByteColors('Dark Color')
- ]),
- wbInteger('Screen Space Reflections', itU8, wbBoolEnum)
- ], cpNormal, True, nil, 4),
- wbByteArray(GNAM, 'Unused', 0),
- wbStruct(NAM0, 'Linear Velocity', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ], cpNormal, False),
- wbStruct(NAM1, 'Angular Velocity', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ], cpNormal, False),
- wbString(NAM2, 'Layer 1 Noise Texture'),
- wbString(NAM3, 'Layer 2 Noise Texture'),
- wbString(NAM4, 'Layer 3 Noise Texture')
- ]);
-
- wbRecord(WEAP, 'Weapon',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 2, 'Non-Playable',
- {0x20000000} 30, 'High-Res 1st Person Only'
- ])), [
- wbEDID,
- wbVMAD,
- wbOBNDReq,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbICON,
- wbMICO,
- wbEITM,
- wbInteger(EAMT, 'Enchantment Amount', itU16),
- wbDEST,
- wbETYP,
- wbFormIDCk(BIDS, 'Block Bash Impact Data Set', [IPDS, NULL]),
- wbFormIDCk(BAMT, 'Alternate Block Material', [MATT, NULL]),
- wbYNAM,
- wbZNAM,
- wbKSIZ,
- wbKWDAs,
- wbDESC,
- wbFormIDCk(INRD, 'Instance Naming', [INNR]),
- wbAPPR,
- wbObjectTemplate,
- wbFormIDCk(NNAM, 'Embedded Weapon Mod', [OMOD]),
- wbRStruct('1st Person Model', [
- wbString(MOD4, 'Model Filename'),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore, false, false, wbNeverShow),
- wbMO4S,
- wbMO4C,
- wbMO4F
- ], []),
- wbStruct(DNAM, 'Data', [
- wbFormIDCk('Ammo', [AMMO, NULL]),
- wbFloat('Speed'),
- wbFloat('Reload Speed'),
- wbFloat('Reach'),
- wbFloat('Min Range'),
- wbFloat('Max Range'),
- wbFloat('Attack Delay'),
- wbByteArray('Unknown', 4),
- wbFloat('Damage - OutOfRange Mult'),
- wbInteger('On Hit', itU32, wbHitBehaviourEnum),
- wbFormIDCk('Skill', [AVIF, NULL]),
- wbFormIDCk('Resist', [AVIF, NULL]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Player Only',
- {0x00000002} 'NPCs Use Ammo',
- {0x00000004} 'No Jam After Reload',
- {0x00000008} 'Charging Reload',
- {0x00000010} 'Minor Crime',
- {0x00000020} 'Fixed Range',
- {0x00000040} 'Not Used In Normal Combat',
- {0x00000080} 'Unknown 8',
- {0x00000100} 'Crit Effect - on Death',
- {0x00000200} 'Charging Attack',
- {0x00000400} 'Unknown 11',
- {0x00000800} 'Hold Input To Power',
- {0x00001000} 'Non Hostile',
- {0x00002000} 'Bound Weapon',
- {0x00004000} 'Ignores Normal Weapon Resistance',
- {0x00008000} 'Automatic',
- {0x00010000} 'Repeatable Single Fire',
- {0x00020000} 'Can''t Drop',
- {0x00040000} 'Hide Backpack',
- {0x00080000} 'Embedded Weapon',
- {0x00100000} 'Not Playable',
- {0x00200000} 'Has Scope',
- {0x00400000} 'Bolt Action',
- {0x00800000} 'Secondary Weapon',
- {0x01000000} 'Disable Shells',
- {0x02000000} 'Unknown 26',
- {0x04000000} 'Unknown 27',
- {0x08000000} 'Unknown 28',
- {0x10000000} 'Unknown 29',
- {0x20000000} 'Unknown 30',
- {0x40000000} 'Unknown 31',
- {0x80000000} 'Unknown 32'
- ])),
- wbInteger('Capacity', itU16),
- wbInteger('Animation Type', itU8, wbEnum([
- 'HandToHandMelee',
- 'OneHandSword',
- 'OneHandDagger',
- 'OneHandAxe',
- 'OneHandMace',
- 'TwoHandSword',
- 'TwoHandAxe',
- 'Bow',
- 'Staff',
- 'Gun',
- 'Grenade',
- 'Mine'
- ])),
- wbFloat('Damage - Secondary'),
- wbFloat('Weight'),
- wbInteger('Value', itU32),
- wbInteger('Damage - Base', itU16),
- wbInteger('Sound Level', itU32, wbSoundLevelEnum),
- wbFormIDCk('Sound - Attack', [SNDR, NULL]),
- wbFormIDCk('Sound - Attack 2D', [SNDR, NULL]),
- wbFormIDCk('Sound - Attack Loop', [SNDR, NULL]),
- wbFormIDCk('Sound - Attack Fail', [SNDR, NULL]),
- wbFormIDCk('Sound - Idle', [SNDR, NULL]),
- wbFormIDCk('Sound - Equip Sound', [SNDR, NULL]),
- wbFormIDCk('Sound - UnEquip Sound', [SNDR, NULL]),
- wbFormIDCk('Sound - Fast Equip Sound', [SNDR, NULL]),
- wbInteger('Accuracy Bonus', itU8),
- wbFloat('Animation Attack Seconds'),
- wbByteArray('Unknown', 2),
- wbFloat('Action Point Cost'),
- wbFloat('Full Power Seconds'),
- wbFloat('Min Power Per Shot'),
- wbInteger('Stagger', itU32, wbStaggerEnum),
- wbByteArray('Unknown', 4)
- ]),
- wbStruct(FNAM, '', [
- wbFloat('Animation Fire Seconds'),
- wbFloat('Rumble - Left Motor Strength'),
- wbFloat('Rumble - Right Motor Strength'),
- wbFloat('Rumble - Duration'),
- wbFloat('Animation Reload Seconds'),
- wbByteArray('Unknown', 4),
- wbFloat('Sighted Transition Seconds'),
- wbInteger('# Projectiles', itU8),
- wbFormIDCk('Override Projectile', [PROJ, NULL]),
- wbInteger('Pattern', itU32, wbEnum([
- 'Constant',
- 'Square',
- 'Triangle',
- 'Sawtooth'
- ])),
- wbInteger('Rumble - Peroid (ms)', itU32)
- ]),
- wbStruct(CRDT, 'Critical Data', [
- wbFloat('Crit Damage Mult'),
- wbFloat('Crit Charge Bonus'),
- wbFormIDCk('Crit Effect', [SPEL, NULL])
- ]),
- wbFormIDCk(INAM, 'Impact Data Set', [IPDS]),
- wbFormIDCk(LNAM, 'NPC Add Ammo List', [LVLI]),
- wbFormIDCk(WAMD, 'Aim Model', [AMDL]),
- wbFormIDCk(WZMD, 'Zoom', [ZOOM]),
- wbFormIDCk(CNAM, 'Template', [WEAP]),
- wbStructs(DAMA, 'Damage Types', 'Damage Type', [
- wbFormIDCk('Type', [DMGT]),
- wbInteger('Amount', itU32)
- ]),
- wbFLTR,
- wbInteger(MASE, 'Melee Speed', itU32, wbEnum([
- 'Very Slow',
- 'Slow',
- 'Medium',
- 'Fast',
- 'Very Fast'
- ]))
- ], False, nil, cpNormal, False, nil{wbWEAPAfterLoad}, wbKeywordsAfterSet);
-
- wbRecord(WRLD, 'Worldspace',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00080000} 19, 'Can''t Wait'
- ])), [
- wbEDID,
- wbRArray('Unused RNAM', wbUnknown(RNAM), cpIgnore, False{, wbNeverShow}),
- wbMaxHeightDataWRLD,
- wbFULL,
- wbStruct(WCTR, 'Fixed Dimensions Center Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbFormIDCk(LTMP, 'Interior Lighting', [LGTM]),
- wbFormIDCk(XEZN, 'Encounter Zone', [ECZN, NULL]),
- wbFormIDCk(XLCN, 'Location', [LCTN, NULL]),
- wbRStruct('Parent', [
- wbFormIDCk(WNAM, 'Worldspace', [WRLD]),
- wbStruct(PNAM, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0x0001} 'Use Land Data',
- {0x0002} 'Use LOD Data',
- {0x0004} 'Don''t Use Map Data',
- {0x0008} 'Use Water Data',
- {0x0010} 'Use Climate Data',
- {0x0020} 'Use Image Space Data (unused)',
- {0x0040} 'Use Sky Cell'
- ], [5])),
- wbByteArray('Unknown', 1)
- ], cpNormal, True)
- ], []),
- wbFormIDCk(CNAM, 'Climate', [CLMT]),
- wbFormIDCk(NAM2, 'Water', [WATR]),
- wbFormIDCk(NAM3, 'LOD Water Type', [WATR]),
- wbFloat(NAM4, 'LOD Water Height'),
- wbStruct(DNAM, 'Land Data', [
- wbFloat('Default Land Height'),
- wbFloat('Default Water Height')
- ]),
- wbString(ICON, 'Map Image'),
- wbRStruct('Cloud Model', [wbMODL], []),
- wbStruct(MNAM, 'Map Data', [
- wbStruct('Usable Dimensions', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32)
- ]),
- wbStruct('Cell Coordinates', [
- wbStruct('NW Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbStruct('SE Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ])
- ])
- ]),
- wbStruct(ONAM, 'World Map Offset Data', [
- wbFloat('World Map Scale'),
- wbFloat('Cell X Offset'),
- wbFloat('Cell Y Offset'),
- wbFloat('Cell Z Offset')
- ], cpNormal, True),
- wbFloat(NAMA, 'Distant LOD Multiplier'),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Small World',
- {0x02} 'Can''t Fast Travel',
- {0x04} 'Unknown 3',
- {0x08} 'No LOD Water',
- {0x10} 'No Landscape',
- {0x20} 'No Sky',
- {0x40} 'Fixed Dimensions',
- {0x80} 'No Grass'
- ]), cpNormal, True),
- {>>> Object Bounds doesn't show up in CK <<<}
- wbRStruct('Object Bounds', [
- wbStruct(NAM0, 'Min', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True),
- wbStruct(NAM9, 'Max', [
- wbFloat('X', cpNormal, False, 1/4096),
- wbFloat('Y', cpNormal, False, 1/4096)
- ], cpIgnore, True)
- ], []),
- wbFormIDCk(ZNAM, 'Music', [MUSC]),
- wbString(NNAM, 'Canopy Shadow (unused)', 0, cpIgnore),
- wbString(XWEM, 'Water Environment Map'),
- wbString(TNAM, 'HD LOD Diffuse Texture'),
- wbString(UNAM, 'HD LOD Normal Texture'),
- wbRStruct('World Default Level Data', [
- wbStruct(WLEV, 'Dimension', [
- wbStruct('NW Cell', [
- wbInteger('X', itS8),
- wbInteger('Y', itS8)
- ]),
- wbStruct('Size', [
- wbInteger('Width', itU8),
- wbInteger('Height', itU8)
- ])
- ]),
- wbByteArray(WLEV, 'Data')
- ], []),
- wbOFST,
- wbUnknown(CLSZ)
- ], False, nil, cpNormal, False, wbWRLDAfterLoad);
-
-
- wbRecord(WTHR, 'Weather',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000200} 9, 'Unknown 9'
- ])), [
- wbEDID,
- wbString(_00_0TX, 'Cloud Texture Layer #0'),
- wbString(_10_0TX, 'Cloud Texture Layer #1'),
- wbString(_20_0TX, 'Cloud Texture Layer #2'),
- wbString(_30_0TX, 'Cloud Texture Layer #3'),
- wbString(_40_0TX, 'Cloud Texture Layer #4'),
- wbString(_50_0TX, 'Cloud Texture Layer #5'),
- wbString(_60_0TX, 'Cloud Texture Layer #6'),
- wbString(_70_0TX, 'Cloud Texture Layer #7'),
- wbString(_80_0TX, 'Cloud Texture Layer #8'),
- wbString(_90_0TX, 'Cloud Texture Layer #9'),
- wbString(_3A_0TX, 'Cloud Texture Layer #10'),
- wbString(_3B_0TX, 'Cloud Texture Layer #11'),
- wbString(_3C_0TX, 'Cloud Texture Layer #12'),
- wbString(_3D_0TX, 'Cloud Texture Layer #13'),
- wbString(_3E_0TX, 'Cloud Texture Layer #14'),
- wbString(_3F_0TX, 'Cloud Texture Layer #15'),
- wbString(_40h_0TX, 'Cloud Texture Layer #16'),
- wbString(A0TX, 'Cloud Texture Layer #17'),
- wbString(B0TX, 'Cloud Texture Layer #18'),
- wbString(C0TX, 'Cloud Texture Layer #19'),
- wbString(D0TX, 'Cloud Texture Layer #20'),
- wbString(E0TX, 'Cloud Texture Layer #21'),
- wbString(F0TX, 'Cloud Texture Layer #22'),
- wbString(G0TX, 'Cloud Texture Layer #23'),
- wbString(H0TX, 'Cloud Texture Layer #24'),
- wbString(I0TX, 'Cloud Texture Layer #25'),
- wbString(J0TX, 'Cloud Texture Layer #26'),
- wbString(K0TX, 'Cloud Texture Layer #27'),
- wbString(L0TX, 'Cloud Texture Layer #28'),
- wbUnknown(LNAM),
- wbFormIDCK(MNAM, 'Precipitation Type', [SPGD, NULL]),
- wbFormIDCK(NNAM, 'Visual Effect', [RFCT, NULL], False, cpNormal, True),
- wbByteArray(ONAM, 'Unused', 0, cpIgnore),
- wbRStruct('Cloud Speed', [
- wbArray(RNAM, 'Y Speed', wbInteger('Layer', itU8, wbCloudSpeedToStr, wbCloudSpeedToInt)),
- wbArray(QNAM, 'X Speed', wbInteger('Layer', itU8, wbCloudSpeedToStr, wbCloudSpeedToInt))
- ], []),
- wbArray(PNAM, 'Cloud Colors', wbWeatherColors('Layer')),
- wbArray(JNAM, 'Cloud Alphas', wbStruct('Layer', [
- wbFloat('Sunrise'),
- wbFloat('Day'),
- wbFloat('Sunset'),
- wbFloat('Night'),
- wbFloat('EarlySunrise'),
- wbFloat('LateSunrise'),
- wbFloat('EarlySunset'),
- wbFloat('LateSunset')
- ])),
- wbStruct(NAM0, 'Weather Colors', [
- wbWeatherColors('Sky-Upper'),
- wbWeatherColors('Fog Near'),
- wbWeatherColors('Unknown'),
- wbWeatherColors('Ambient'),
- wbWeatherColors('Sunlight'),
- wbWeatherColors('Sun'),
- wbWeatherColors('Stars'),
- wbWeatherColors('Sky-Lower'),
- wbWeatherColors('Horizon'),
- wbWeatherColors('Effect Lighting'),
- wbWeatherColors('Cloud LOD Diffuse'),
- wbWeatherColors('Cloud LOD Ambient'),
- wbWeatherColors('Fog Far'),
- wbWeatherColors('Sky Statics'),
- wbWeatherColors('Water Multiplier'),
- wbWeatherColors('Sun Glare'),
- wbWeatherColors('Moon Glare'),
- wbWeatherColors('Fog Near High'),
- wbWeatherColors('Fog Far High')
- ], cpNormal, True, nil, 8),
- wbArray(NAM4, 'Unknown', wbFloat('Unknown')),
- wbStruct(FNAM, 'Fog Distance', [
- wbFloat('Day - Near'),
- wbFloat('Day - Far'),
- wbFloat('Night - Near'),
- wbFloat('Night - Far'),
- wbFloat('Day - Power'),
- wbFloat('Night - Power'),
- wbFloat('Day - Max'),
- wbFloat('Night - Max'),
- wbFloat('Day - Near Height Mid'),
- wbFloat('Day - Near Height Range'),
- wbFloat('Night - Near Height Mid'),
- wbFloat('Night - Near Height Range'),
- wbFloat('Day - High Density Scale'),
- wbFloat('Night - High Density Scale'),
- wbFloat('Day - Far Height Mid'),
- wbFloat('Day - Far Height Range'),
- wbFloat('Night - Far Height Mid'),
- wbFloat('Night - Far Height Range')
- ], cpNormal, True, nil, 8),
- wbStruct(DATA, 'Data', [
- wbInteger('Wind Speed', itU8), // scaled 0..1
- wbByteArray('Unknown', 2),
- wbInteger('Trans Delta', itU8), // scaled 0..0,25
- wbInteger('Sun Glare', itU8), // scaled 0..1
- wbInteger('Sun Damage', itU8), // scaled 0..1
- wbInteger('Precipitation - Begin Fade In', itU8), // scaled 0..1
- wbInteger('Precipitation - End Fade Out', itU8), // scaled 0..1
- wbInteger('Thunder/Lightning - Begin Fade In', itU8),
- wbInteger('Thunder/Lightning - End Fade Out', itU8),
- wbInteger('Thunder/Lightning - Frequency', itU8),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Weather - Pleasant',
- {0x02} 'Weather - Cloudy',
- {0x04} 'Weather - Rainy',
- {0x08} 'Weather - Snow',
- {0x10} 'Sky Statics - Always Visible',
- {0x20} 'Sky Statics - Follows Sun Position',
- {0x40} 'Rain Occlusion',
- {0x80} 'HUD Rain Effects'
- ])),
- wbStruct('Lightning Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8)
- ]),
- wbInteger('Visual Effect - Begin', itU8), // scaled 0..1
- wbInteger('Visual Effect - End', itU8), // scaled 0..1
- wbInteger('Wind Direction', itU8), // scaled 0..360
- wbInteger('Wind Direction Range', itU8), // scaled 0..180
- wbInteger('Unknown', itU8)
- ], cpNormal, True, nil, 16),
- wbInteger(NAM1, 'Disabled Cloud Layers', itU32, wbFlags(['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'])),
- wbRArray('Sounds',
- wbStruct(SNAM, 'Sound', [
- wbFormIDCK('Sound', [SNDR, NULL]),
- wbInteger('Type', itU32, wbEnum([
- {0x01} 'Default',
- {0x02} 'Precipitation',
- {0x04} 'Wind',
- {0x08} 'Thunder'
- ]))
- ])
- ),
- wbRArrayS('Sky Statics', wbFormIDCk(TNAM, 'Static', [STAT, NULL])),
- wbStruct(IMSP, 'Image Spaces', [
- wbFormIDCK('Sunrise', [IMGS, NULL]),
- wbFormIDCK('Day', [IMGS, NULL]),
- wbFormIDCK('Sunset', [IMGS, NULL]),
- wbFormIDCK('Night', [IMGS, NULL]),
- wbFormIDCK('EarlySunrise', [IMGS, NULL]),
- wbFormIDCK('LateSunrise', [IMGS, NULL]),
- wbFormIDCK('EarlySunset', [IMGS, NULL]),
- wbFormIDCK('LateSunset', [IMGS, NULL])
- ], cpNormal, True, nil, 4),
- wbStruct(WGDR, 'God Rays', [
- wbFormIDCK('Sunrise', [GDRY, NULL]),
- wbFormIDCK('Day', [GDRY, NULL]),
- wbFormIDCK('Sunset', [GDRY, NULL]),
- wbFormIDCK('Night', [GDRY, NULL]),
- wbFormIDCK('EarlySunrise', [GDRY, NULL]),
- wbFormIDCK('LateSunrise', [GDRY, NULL]),
- wbFormIDCK('EarlySunset', [GDRY, NULL]),
- wbFormIDCK('LateSunset', [GDRY, NULL])
- ]),
- wbRStruct('Directional Ambient Lighting Colors', [
- wbAmbientColors(DALC, 'Sunrise'),
- wbAmbientColors(DALC, 'Day'),
- wbAmbientColors(DALC, 'Sunset'),
- wbAmbientColors(DALC, 'Night'),
- wbAmbientColors(DALC, 'EarlySunrise'),
- wbAmbientColors(DALC, 'LateSunrise'),
- wbAmbientColors(DALC, 'EarlySunset'),
- wbAmbientColors(DALC, 'LateSunset')
- ], [], cpNormal, True),
- wbRStruct('Aurora', [wbMODL], []),
- wbFormIDCk(GNAM, 'Sun Glare Lens Flare', [LENS]),
- wbStruct(UNAM, 'Magic', [
- wbFormIDCk('On Lightning Strike - Spell', [SPEL, NULL]),
- wbFloat('On Lightning Strike - Threshold'),
- wbFormIDCk('On Weather Activate - Spell', [SPEL, NULL]),
- wbFloat('On Weather Activate - Threshold'),
- wbByteArray('Unknown', 4), // SPEL FormID for another context but unresolved in Fallout4.esm, legacy data
- wbFloat('Unknown')
- ], cpNormal, False, nil, 3),
- wbFloat(VNAM, 'Volatility Mult'),
- wbFloat(WNAM, 'Visibility Mult')
- ]);
-end;
-
-procedure DefineFO4p;
-begin
- {wbRecord(SCPT, 'SCPT', [
- wbEDID
- ]);}
-end;
-
-{>>> Start of new Fallout 4 Records <<<}
-
-procedure DefineFO4q;
-begin
- wbRecord(AECH, 'Audio Effect Chain', [
- wbEDID,
- wbRArray('Effects',
- wbRStruct('Effect', [
- wbInteger(KNAM, 'Type', itU32, wbEnum([], [
- Int64($864804BE), 'BSOverdrive',
- Int64($EF575F7F), 'BSStateVariableFilter',
- Int64($18837B4F), 'BSDelayEffect'
- ]), cpNormal, False, False, nil, nil, Int64($864804BE)),
- wbStruct(DNAM, 'Data', [
- wbInteger('Enabled', itU32, wbBoolEnum),
- wbUnion('Value 1', wbAECHDataDecider, [
- wbFloat('Input Gain'), // exponentially(?) normalized from 0..10 to -80..20
- wbFloat('Center Freq'),
- wbFloat('Feedback %')
- ]),
- wbUnion('Value 2', wbAECHDataDecider, [
- wbFloat('Output Gain'), // exponentially(?) normalized from 0..10 to -80..20
- wbFloat('Q Value'),
- wbFloat('Wet Mix %')
- ]),
- wbUnion('Value 3', wbAECHDataDecider, [
- wbFloat('Upper Threshold'), // exponentially(?) normalized from 0..1 to -74..0
- wbInteger('Filter Mode', itU32, wbEnum([
- 'High Pass',
- 'Low Pass',
- 'Band Pass',
- 'Notch'
- ])),
- wbInteger('Delay MS', itU32)
- ]),
- wbUnion('Value 4', wbAECHDataDecider, [
- wbFloat('Lower Threshold'), // exponentially(?) normalized from 0..1 to -80..0
- wbByteArray('Unused', 0),
- wbByteArray('Unused', 0)
- ])
- ])
- ], [])
- )
- ]);
-
- wbRecord(AMDL, 'Aim Model', [
- wbEDID,
- wbStruct(DNAM, 'Data', [
- wbFloat('Cone of Fire - Min Angle'),
- wbFloat('Cone of Fire - Max Angle'),
- wbFloat('Cone of Fire - Increase Per Shot'),
- wbFloat('Cone of Fire - Decrease Per Sec'),
- wbInteger('Cone of Fire - Decrease Delay MS', itU32),
- wbFloat('Cone of Fire - Sneak Mult'),
- wbFloat('Recoil - Diminish Spring Force'),
- wbFloat('Recoil - Diminish Sights Mult'),
- wbFloat('Recoil - Max Per Shot'),
- wbFloat('Recoil - Min Per Shot'),
- wbFloat('Recoil - Hip Mult'),
- wbInteger('Runaway - Recoil Shots', itU32),
- wbFloat('Recoil - Arc'),
- wbFloat('Recoil - Arc Rotate'),
- wbFloat('Cone of Fire - Iron Sights Mult'),
- wbFloat('Stability - Base Stability')
- ])
- ]);
-
- wbRecord(AORU, 'Attraction Rule', [
- wbEDID,
- wbStruct(AOR2, 'Data', [
- wbFloat('Radius'),
- wbFloat('Min Delay'),
- wbFloat('Max Delay'),
- wbInteger('Requires Line of Sight', itU8, wbBoolEnum),
- wbInteger('Combat Target', itU8, wbBoolEnum),
- wbByteArray('Unused', 2)
- ], cpNormal, True)
- ]);
-
- wbRecord(BNDS, 'Bendable Spline', [
- wbEDID,
- wbOBND,
- wbStruct(DNAM, 'Data', [
- wbFloat('Default Number of Tiles'),
- wbInteger('Default Number of Slices', itU16),
- wbInteger('Default Number of Tiles - Relative to Length', itU16, wbBoolEnum),
- wbFloatColors('Default Color'),
- wbFloat('Wind Settings - Sensibility'),
- wbFloat('Wind Settings - Flexibility')
- ]),
- wbFormIDCk(TNAM, 'Texture', [TXST])
- ]);
-
- wbRecord(CMPO, 'Component', [
- wbEDID,
- wbOBND,
- wbFULL,
- wbCUSD,
- wbInteger(DATA, 'Auto Calc Value', itU32),
- wbFormIDCk(MNAM, 'Scrap Item', [MISC]),
- wbFormIDCk(GNAM, 'Mod Scrap Scalar', [GLOB])
- ]);
-
- wbRecord(DFOB, 'Default Object', [
- wbEDID,
- wbFormID(DATA, 'Object')
- ]);
-
- wbRecord(DMGT, 'Damage Type', [
- wbEDID,
- // Before form version 78, it was an array of AVIF index, since then array of AVIF formID, coupled with a SPEL formID
- wbUnion(DNAM, 'Data', wbFormVer78Decider, [
- wbArray('Damage Types', wbInteger('Actor Value Index', itU32)),
- wbArray('Damage Types', wbStruct('Damage Type', [
- wbFormIDck('Actor Value', [AVIF, NULL]),
- wbFormIDck('Spell', [SPEL, NULL])
- ]))
- ])
- ]);
-
- wbRecord(GDRY, 'God Rays', [
- wbEDID,
- wbStruct(DATA, 'Data', [
- wbFloatColors('Back Color'),
- wbFloatColors('Fwd Color'),
- wbFloat('Intensity'),
- wbFloat('Air Color - Scale'),
- wbFloat('Back Color - Scale'),
- wbFloat('Fwd Color - Scale'),
- wbFloat('Back Phase'),
- wbFloatColors('Air Color'),
- wbFloat('Fwd Phase')
- ])
- ]);
-
-end;
-
-procedure DefineFO4r;
-begin
- wbRecord(INNR, 'Instance Naming Rules', [
- wbEDID,
- wbInteger(UNAM, 'Target', itU32, wbEnum([], [
- 0, 'None',
- $1D, 'Armor',
- $2D, 'Actor',
- $2A, 'Furniture',
- $2B, 'Weapon'
- ])),
- wbRArray('Naming Rules',
- wbRStruct('Ruleset', [
- wbInteger(VNAM, 'Count', itU32),
- // should not be sorted
- wbRArray('Names',
- wbRStruct('Name', [
- wbLString(WNAM, 'Text', 0, cpTranslate),
- wbKSIZ,
- wbKWDAs,
- wbStruct(XNAM, 'Property', [
- wbFloat('Value'),
- wbInteger('Target', itU8, wbEnum([
- { 0} 'Enchantments',
- { 1} 'BashImpactDataSet',
- { 2} 'BlockMaterial',
- { 3} 'Keywords',
- { 4} 'Weight',
- { 5} 'Value',
- { 6} 'Rating',
- { 7} 'AddonIndex',
- { 8} 'BodyPart',
- { 9} 'DamageTypeValues',
- {10} 'ActorValues',
- {11} 'Health',
- {12} 'ColorRemappingIndex',
- {13} 'MaterialSwaps'
- ])),
- wbInteger('Op', itU8, wbEnum([
- {0} '>=',
- {1} '>',
- {2} '<=',
- {3} '<',
- {4} '='
- ]))
- ]),
- wbInteger(YNAM, 'Index', itU16)
- ], []),
- cpNormal, False, nil, wbINNRAfterSet
- )
- ], [])
- )
- ]);
-
- wbRecord(KSSM, 'Sound Keyword Mapping', [
- wbEDID,
- wbFormIDCk(DNAM, 'Primary Descriptor', [SNDR]),
- wbFormIDCk(ENAM, 'Exterior Tail', [SNDR]),
- wbFormIDCk(VNAM, 'VATS Descriptor', [SNDR]),
- wbFloat(TNAM, 'VATS Threshold'),
- wbRArray('Keywords', wbFormIDCk(KNAM, 'Keyword', [KYWD])),
- wbRArrayS('Sounds', wbStructSK(RNAM, [0], 'Sound', [
- wbInteger('Reverb Class', itU32, wbReverbClassEnum),
- wbFormIDCk('Descriptor', [SNDR])
- ]))
- ]);
-
- wbRecord(LAYR, 'Layer', [
- wbEDID,
- wbFormIDCk(PNAM, 'Parent', [LAYR])
- ]);
-
- wbRecord(LENS, 'Lens Flare', [
- wbEDID,
- wbFloat(CNAM, 'Color Influence'),
- wbFloat(DNAM, 'Fade Distance Radius Scale'),
- wbInteger(LFSP, 'Count', itU32, nil, cpBenign),
- wbRArrayS('Lens Flare Sprites',
- wbRStructSK([0], 'Flare', [
- wbString(DNAM, 'Lens Flare Sprite ID'),
- wbString(FNAM, 'Texture'),
- wbStruct(LFSD, 'Lens Flare Data', [
- wbFloatColors('Tint'),
- wbFloat('Width'),
- wbFloat('Height'),
- wbFloat('Position'),
- wbFloat('Angular Fade'),
- wbFloat('Opacity'),
- wbInteger('Flags', itU32, wbFlags([
- {0x01} 'Rotates',
- {0x02} 'Shrinks When Occluded'
- ]))
- ])
- ], []),
- cpNormal, False, nil, wbLENSAfterSet
- )
- ]);
-
- {wbRecord(LSPR, 'LSPR', [
- wbEDID
- ]);
-
- wbRecord(MICN, 'MICN', [
- wbEDID
- ]);}
-
- wbRecord(MSWP, 'Material Swap',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00010000} 16, 'Custom Swap'
- ])), [
- wbEDID,
- wbString(FNAM, 'Tree Folder'), {First FNAM}
- wbRArrayS('Material Substitutions',
- wbRStructSK([0], 'Substitution', [
- wbString(BNAM, 'Original Material'),
- wbString(SNAM, 'Replacement Material'),
- wbString(FNAM, 'Tree Folder (obsolete)'), {Unused, will be moved up to First FNAM}
- wbFloat(CNAM, 'Color Remapping Index')
- ], [])
- )
- ]);
-
- wbRecord(NOCM, 'Navigation Mesh Obstacle Manager', [
- wbRArray('Unknown',
- wbRStruct('Unknown', [
- wbInteger(INDX, 'Index', itU32),
- wbRArray('Unknown', wbUnknown(DATA)),
- wbUnknown(INTV),
- wbString(NAM1, 'Model')
- ], [])
- )
- ]);
-
-end;
-
-procedure DefineFO4s;
-begin
- wbRecord(NOTE, 'Note', [
- wbEDID,
- wbVMAD,
- wbOBND,
- wbPTRN,
- wbFULL,
- wbMODL,
- wbICON,
- wbYNAM,
- wbZNAM,
- wbInteger(DNAM, 'Type', itU8, wbEnum([
- 'Sound',
- 'Voice',
- 'Program',
- 'Terminal'
- ]), cpNormal, True),
- wbStruct(DATA, '', [ // was DNAM before form version 65. Now holds value and weight
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ]),
- wbUnion(SNAM, 'Data', wbNOTEDataDecider, [
- wbByteArray('Unused', 4),
- wbFormIDCk('Sound', [SNDR]),
- wbFormIDCk('Scene', [SCEN]),
- wbFormIDCk('Terminal', [TERM])
- ]),
- wbString(PNAM, 'Program File')
- ]);
-
- wbRecord(OMOD, 'Object Modification',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000008} 4, 'Legendary Mod',
- {0x00000040} 7, 'Mod Collection'
- ])), [
- wbEDID,
- wbFULL,
- wbDESC,
- wbMODL,
- wbStruct(DATA, 'Data', [
- wbInteger('Include Count', itU32),
- wbInteger('Property Count', itU32),
- wbByteArray('Unused', 2, cpIgnore),
- wbInteger('Form Type', itU32, wbEnum([], [
- Sig2Int(ARMO), 'Armor',
- Sig2Int(NPC_), 'Non-player character',
- Sig2Int(WEAP), 'Weapon',
- Sig2Int(NONE), 'None'
- ])),
- wbByteArray('Unused', 2, cpIgnore),
- wbFormIDCk('Attach Point', [KYWD, NULL]),
- wbArray('Attach Parent Slots', wbFormIDCk('Keyword', [KYWD, NULL]), -1),
- // no way to change these in CK, legacy data leftover?
- wbArray('Items', wbStruct('Item', [
- wbByteArray('Value 1', 4),
- wbByteArray('Value 2', 4)
- ]), -1),
- // should not be sorted
- wbArray('Includes', wbStruct('Include', [
- wbFormIDCk('Mod', [OMOD]),
- wbInteger('Minimum Level', itU8),
- wbInteger('Optional', itU8, wbBoolEnum),
- wbInteger('Don''t Use All', itU8, wbBoolEnum)
- ]), wbOMODDataIncludeCounter, cpNormal, False, nil, wbOMODincludeAfterSet),
- wbObjectModProperties
- ], cpNormal, False, nil, -1, nil, wbOMODdataAfterSet),
- wbArray(MNAM, 'Target OMOD Keywords', wbFormIDCk('Keyword', [KYWD])),
- wbArray(FNAM, 'Filter Keywords', wbFormIDCk('Keyword', [KYWD])),
- wbFormIDCk(LNAM, 'Loose Mod', sigBaseObjects),
- wbInteger(NAM1, 'Priority', itU8),
- wbFLTR
- ]);
-
- wbRecord(OVIS, 'Object Visibility Manager', [
- wbRArray('Unknown',
- wbRStruct('Unknown', [
- wbFormIDCk(INDX, 'Object', [STAT]),
- wbStruct(DATA, 'Object Bounds', [
- wbFloat('X1'),
- wbFloat('Y1'),
- wbFloat('Z1'),
- wbFloat('X2'),
- wbFloat('Y2'),
- wbFloat('Z2')
- ])
- ], [])
- )
- ]);
-
- wbRecord(PKIN, 'Pack-In',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000200} 9, 'Prefab'
- ])), [
- wbEDID,
- wbOBND,
- wbFLTR,
- wbFormIDCk(CNAM, 'Cell', [CELL]),
- wbInteger(VNAM, 'Version', itU32)
- ]);
-
- wbRecord(RFGP, 'Reference Group', [
- wbEDID,
- wbString(NNAM, 'Name'),
- wbFormIDCk(RNAM, 'Reference', sigReferences),
- wbUnknown(PNAM)
- ]);
-
- {wbRecord(RGDL, 'RGDL', [
- wbEDID
- ]);}
-
- wbRecord(SCCO, 'Scene Collection', [
- wbEDID,
- wbFormIDCk(QNAM, 'Quest', [QUST]),
- wbRArray('Scenes',
- wbRStruct('Scene', [
- wbFormIDCk(SNAM, 'Scene', [SCEN]),
- wbStruct(XNAM, 'Unknown', [
- wbInteger('Unknown', itS32),
- wbInteger('Unknown', itS32)
- ])
- ], [])
- ),
- wbUnknown(VNAM, cpNormal, True),
- wbRArray('Unknown', wbStruct(XNAM, 'Unknown', [
- wbInteger('Unknown', itS32),
- wbInteger('Unknown', itS32)
- ])),
- wbUnknown(VNAM, cpNormal, True)
- ]);
-
- wbRecord(SCOL, 'Static Collection',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 4, 'Non Occluder',
- {0x00000200} 9, 'Hidden From Local Map',
- {0x00000400} 10, 'Unknown 10',
- {0x00000800} 11, 'Used as Platform',
- {0x00008000} 15, 'Has Distant LOD',
- {0x02000000} 25, 'Obstacle',
- {0x04000000} 26, 'NavMesh Generation - Filter',
- {0x08000000} 27, 'NavMesh Generation - Bounding Box',
- {0x40000000} 30, 'NavMesh Generation - Ground'
- ])), [
- wbEDID,
- wbOBNDReq,
- wbPTRN,
- wbMODL,
- wbFULL,
- wbFLTR,
- wbRStructsSK('Parts', 'Part', [0], [
- wbFormIDCk(ONAM, 'Static', [ACTI, ALCH, AMMO, BOOK, CONT, DOOR, FURN, MISC, MSTT, STAT, TERM, WEAP]),
- wbArrayS(DATA, 'Placements', wbStruct('Placement', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ]),
- wbFloat('Scale')
- ]), 0, cpNormal, True)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(SCSN, 'Audio Category Snapshot', [
- wbEDID,
- wbInteger(PNAM, 'Priority', itU16),
- wbRArray('Category Multipliers', wbStruct(CNAM, 'Category Multiplier', [
- wbFormIDCk('Categoty', [SNCT]),
- wbFloat('Multiplier')
- ]))
- ]);
-
-end;
-
-procedure DefineFO4t;
-begin
- {wbRecord(SKIL, 'SKIL', [
- wbEDID
- ]);}
-
- wbRecord(STAG, 'Animation Sound Tag Set', [
- wbEDID,
- wbRArray('Sounds', wbStruct(TNAM, 'Sound', [
- wbFormIDCk('Sound', [SNDR, NULL]),
- wbString('Action')
- ]))
- ]);
-
- wbRecord(TERM, 'Terminal',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00000004} 4, 'Unknown 4',
- {0x00002000} 13, 'Unknown 13',
- {0x00008000} 15, 'Has Distant LOD',
- {0x00010000} 16, 'Random Anim Start'
- ])), [
- wbEDID,
- wbVMADFragmentedPERK, // same fragments format as in PERK
- wbOBNDReq,
- wbPTRN,
- wbLString(NAM0, 'Header Text'),
- wbLString(WNAM, 'Welcome Text'),
- wbFULL,
- wbMODL,
- wbKSIZ,
- wbKWDAs,
- wbPRPS,
- wbUnknown(PNAM),
- wbFormIDCk(SNAM, 'Looping Sound', [SNDR]),
- wbUnknown(FNAM),
- wbCOCT,
- wbCNTOs,
- wbMNAMFurnitureMarker,
- wbByteArray(WBDT, 'Workbench Data (unused)', 0),
- wbString(XMRK, 'Marker Model'),
- wbSNAMMarkerParams,
- wbInteger(BSIZ, 'Count', itU32, nil, cpBenign),
- wbRArray('Body Text',
- wbRStruct('Item', [
- wbLString(BTXT, 'Text', 0, cpTranslate),
- wbCTDAs
- ], []),
- cpNormal, False, nil, wbTERMDisplayItemsAfterSet
- ),
- wbInteger(ISIZ, 'Count', itU32, nil, cpBenign),
- wbRArray('Menu Items',
- wbRStruct('Menu Item', [
- wbLString(ITXT, 'Item Text', 0, cpTranslate),
- wbLString(RNAM, 'Response Text', 0, cpTranslate),
- wbInteger(ANAM, 'Type', itU8, wbEnum([
- {0} 'Unknown 0',
- {1} 'Unknown 1',
- {2} 'Unknown 2',
- {3} 'Unknown 3',
- {4} 'Submenu - Terminal',
- {5} 'Submenu - Return to Top Level',
- {6} 'Submenu - Force Redraw',
- {7} 'Unknown 7',
- {8} 'Display Text'
- ]), cpNormal, True),
- wbInteger(ITID, 'Item ID', itU16),
- wbLString(UNAM, 'Display Text', 0, cpTranslate),
- wbString(VNAM, 'Show Image'),
- wbFormIDCk(TNAM, 'Submenu', [TERM]),
- wbCTDAs
- ], []),
- cpNormal, False, nil, wbTERMMenuItemsAfterSet
- )
- ]);
-
- {wbRecord(TLOD, 'TLOD', [
- wbEDID
- ]);
-
- wbRecord(TOFT, 'TOFT', [
- wbEDID
- ]);}
-
- wbRecord(TRNS, 'Transform',
- wbFlags(wbRecordFlagsFlags, wbFlagsList([
- {0x00008000} 16, 'Around Origin'
- ])), [
- wbEDID,
- wbStruct(DATA, 'Data', [
- wbPosRot,
- wbFloat('Scale'),
- wbFloat('Zoom Min'),
- wbFloat('Zoom Max')
- ], cpNormal, True, nil, 2)
- ]);
-
- wbRecord(ZOOM, 'Zoom', [
- wbEDID,
- wbStruct(GNAM, 'Data', [
- wbFloat('FOV Mult'),
- wbInteger('Overlay', itU32, wbEnum([
- { 0} 'Default',
- { 1} 'Fine',
- { 2} 'Duplex',
- { 3} 'German',
- { 4} 'Dot',
- { 5} 'Mil-Dot',
- { 6} 'Circle',
- { 7} 'Old Rangefind',
- { 8} 'Modern Rangefind',
- { 9} 'SVD',
- {10} 'Hand Painted',
- {11} 'Binoculars',
- {12} 'Cross',
- {13} 'Double Zero',
- {14} 'Rangefinder 1',
- {15} 'Rangefinder 2',
- {16} 'Rectangle'
- ])),
- wbFormIDCk('Imagespace Modifier', [IMAD, NULL]),
- wbStruct('Camera Offset', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ])
- ])
- ]);
-
-end;
-
-procedure DefineFO4u;
-begin
- wbAddGroupOrder(GMST);
- wbAddGroupOrder(KYWD);
- wbAddGroupOrder(LCRT);
- wbAddGroupOrder(AACT);
- wbAddGroupOrder(TRNS);
- wbAddGroupOrder(CMPO);
- wbAddGroupOrder(TXST);
- //wbAddGroupOrder(MICN);
- wbAddGroupOrder(GLOB);
- wbAddGroupOrder(DMGT);
- wbAddGroupOrder(CLAS);
- wbAddGroupOrder(FACT);
- wbAddGroupOrder(HDPT);
- //wbAddGroupOrder(EYES);
- wbAddGroupOrder(RACE);
- wbAddGroupOrder(SOUN);
- wbAddGroupOrder(ASPC);
- //wbAddGroupOrder(SKIL);
- wbAddGroupOrder(MGEF);
- //wbAddGroupOrder(SCPT);{>>> Unused in Skyrim, but contained in Skyrim.esm <<<}
- wbAddGroupOrder(LTEX);
- wbAddGroupOrder(ENCH);
- wbAddGroupOrder(SPEL);
- //wbAddGroupOrder(SCRL);
- wbAddGroupOrder(ACTI);
- wbAddGroupOrder(TACT);
- wbAddGroupOrder(ARMO);
- wbAddGroupOrder(BOOK);
- wbAddGroupOrder(CONT);
- wbAddGroupOrder(DOOR);
- wbAddGroupOrder(INGR);
- wbAddGroupOrder(LIGH);
- wbAddGroupOrder(MISC);
- wbAddGroupOrder(STAT);
- wbAddGroupOrder(SCOL);
- wbAddGroupOrder(MSTT);
- wbAddGroupOrder(GRAS);
- wbAddGroupOrder(TREE);
- wbAddGroupOrder(FLOR);
- wbAddGroupOrder(FURN);
- wbAddGroupOrder(WEAP);
- wbAddGroupOrder(AMMO);
- wbAddGroupOrder(NPC_);
- wbAddGroupOrder(LVLN);
- wbAddGroupOrder(KEYM);
- wbAddGroupOrder(ALCH);
- wbAddGroupOrder(IDLM);
- wbAddGroupOrder(NOTE);
- wbAddGroupOrder(PROJ);
- wbAddGroupOrder(HAZD);
- wbAddGroupOrder(BNDS);
- //wbAddGroupOrder(SLGM);
- wbAddGroupOrder(TERM);
- wbAddGroupOrder(LVLI);
- wbAddGroupOrder(WTHR);
- wbAddGroupOrder(CLMT);
- wbAddGroupOrder(SPGD);
- wbAddGroupOrder(RFCT);
- wbAddGroupOrder(REGN);
- wbAddGroupOrder(NAVI);
- wbAddGroupOrder(CELL);
- //wbAddGroupOrder(REFR);
- //wbAddGroupOrder(ACHR);
- //wbAddGroupOrder(PMIS);
- //wbAddGroupOrder(PARW);
- //wbAddGroupOrder(PGRE);
- //wbAddGroupOrder(PBEA);
- //wbAddGroupOrder(PFLA);
- //wbAddGroupOrder(PCON);
- //wbAddGroupOrder(PBAR);
- //wbAddGroupOrder(PHZD);
- wbAddGroupOrder(WRLD);
- //wbAddGroupOrder(LAND);
- //wbAddGroupOrder(NAVM);
- //wbAddGroupOrder(TLOD);
- //wbAddGroupOrder(DIAL);
- //wbAddGroupOrder(INFO);
- wbAddGroupOrder(QUST);
- wbAddGroupOrder(IDLE);
- wbAddGroupOrder(PACK);
- wbAddGroupOrder(CSTY);
- wbAddGroupOrder(LSCR);
- wbAddGroupOrder(LVSP);
- wbAddGroupOrder(ANIO);
- wbAddGroupOrder(WATR);
- wbAddGroupOrder(EFSH);
- //wbAddGroupOrder(TOFT);
- wbAddGroupOrder(EXPL);
- wbAddGroupOrder(DEBR);
- wbAddGroupOrder(IMGS);
- wbAddGroupOrder(IMAD);
- wbAddGroupOrder(FLST);
- wbAddGroupOrder(PERK);
- wbAddGroupOrder(BPTD);
- wbAddGroupOrder(ADDN);
- wbAddGroupOrder(AVIF);
- wbAddGroupOrder(CAMS);
- wbAddGroupOrder(CPTH);
- wbAddGroupOrder(VTYP);
- wbAddGroupOrder(MATT);
- wbAddGroupOrder(IPCT);
- wbAddGroupOrder(IPDS);
- wbAddGroupOrder(ARMA);
- wbAddGroupOrder(ECZN);
- wbAddGroupOrder(LCTN);
- wbAddGroupOrder(MESG);
- //wbAddGroupOrder(RGDL);{>>> Unused in Skyrim, but contained in Skyrim.esm <<<}
- wbAddGroupOrder(DOBJ);
- wbAddGroupOrder(DFOB);
- wbAddGroupOrder(LGTM);
- wbAddGroupOrder(MUSC);
- wbAddGroupOrder(FSTP);
- wbAddGroupOrder(FSTS);
- wbAddGroupOrder(SMBN);
- wbAddGroupOrder(SMQN);
- wbAddGroupOrder(SMEN);
- wbAddGroupOrder(DLBR);
- wbAddGroupOrder(MUST);
- wbAddGroupOrder(DLVW);
- //wbAddGroupOrder(WOOP);
- //wbAddGroupOrder(SHOU);
- wbAddGroupOrder(EQUP);
- wbAddGroupOrder(RELA);
- wbAddGroupOrder(SCEN);
- wbAddGroupOrder(ASTP);
- wbAddGroupOrder(OTFT);
- wbAddGroupOrder(ARTO);
- wbAddGroupOrder(MATO);
- wbAddGroupOrder(MOVT);
- wbAddGroupOrder(SNDR);
- wbAddGroupOrder(DUAL); // doesn't exist but can be created in CK
- wbAddGroupOrder(SNCT);
- wbAddGroupOrder(SOPM);
- wbAddGroupOrder(COLL);
- wbAddGroupOrder(CLFM);
- wbAddGroupOrder(REVB);
- wbAddGroupOrder(PKIN);
- wbAddGroupOrder(RFGP);
- wbAddGroupOrder(AMDL);
- wbAddGroupOrder(LAYR);
- wbAddGroupOrder(COBJ);
- wbAddGroupOrder(OMOD);
- wbAddGroupOrder(MSWP);
- wbAddGroupOrder(ZOOM);
- wbAddGroupOrder(INNR);
- wbAddGroupOrder(KSSM);
- wbAddGroupOrder(AECH);
- wbAddGroupOrder(SCCO);
- wbAddGroupOrder(AORU);
- wbAddGroupOrder(SCSN);
- wbAddGroupOrder(STAG);
- wbAddGroupOrder(NOCM);
- wbAddGroupOrder(LENS);
- //wbAddGroupOrder(LSPR);
- wbAddGroupOrder(GDRY);
- wbAddGroupOrder(OVIS);
-end;
-
-procedure DefineFO4;
-begin
- DefineFO4a;
- DefineFO4b;
- DefineFO4c;
- DefineFO4d;
- DefineFO4e;
- DefineFO4f;
- DefineFO4g;
- DefineFO4h;
- DefineFO4i;
- DefineFO4j;
- DefineFO4k;
- DefineFO4l;
- DefineFO4m;
- DefineFO4n;
- DefineFO4o;
- DefineFO4p;
- DefineFO4q;
- DefineFO4r;
- DefineFO4s;
- DefineFO4t;
- DefineFO4u;
-
- SetLength(wbOfficialDLC, 6);
- wbOfficialDLC[0] := 'DLCRobot.esm';
- wbOfficialDLC[1] := 'DLCWorkshop01.esm';
- wbOfficialDLC[2] := 'DLCCoast.esm';
- wbOfficialDLC[3] := 'DLCWorkshop02.esm';
- wbOfficialDLC[4] := 'DLCWorkshop03.esm';
- wbOfficialDLC[5] := 'DLCNukaWorld.esm';
-end;
-
-initialization
-end.
diff --git a/lib/xedit/wbDefinitionsTES3.pas b/lib/xedit/wbDefinitionsTES3.pas
deleted file mode 100644
index ec867de..0000000
--- a/lib/xedit/wbDefinitionsTES3.pas
+++ /dev/null
@@ -1,4962 +0,0 @@
-{*******************************************************************************
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
-*******************************************************************************}
-//------------------------------------------------------------------------------
-// Placeholder for future expansion
-//------------------------------------------------------------------------------
-unit wbDefinitionsTES3;
-
-interface
-
-uses
- wbInterface;
-
-var
- wbPKDTFlags: IwbFlagsDef;
- wbServiceFlags: IwbFlagsDef;
-
- wbAxisEnum: IwbEnumDef;
- wbBlendModeEnum: IwbEnumDef;
- wbBlendOpEnum: IwbEnumDef;
- wbCrimeTypeEnum: IwbEnumDef;
- wbFormTypeEnum: IwbEnumDef;
- wbFunctionsEnum: IwbEnumDef;
- wbMagicSchoolEnum: IwbEnumDef;
- wbMusicEnum: IwbEnumDef;
- wbOBMEResolutionInfo: IwbEnumDef;
- wbPKDTType: IwbEnumDef;
- wbQuadrantEnum: IwbEnumDef;
- wbSexEnum: IwbEnumDef;
- wbSkillEnum: IwbEnumDef;
- wbSoulGemEnum: IwbEnumDef;
- wbSpecializationEnum: IwbEnumDef;
- wbZTestFuncEnum: IwbEnumDef;
-
-procedure DefineTES3;
-
-implementation
-
-uses
- Types,
- Classes,
- SysUtils,
- Math,
- Variants;
-
-const
- ACBS : TwbSignature = 'ACBS';
- ACHR : TwbSignature = 'ACHR';
- ACRE : TwbSignature = 'ACRE';
- TRGT : TwbSignature = 'TRGT';
- ACTI : TwbSignature = 'ACTI';
- AIDT : TwbSignature = 'AIDT';
- ALCH : TwbSignature = 'ALCH';
- AMMO : TwbSignature = 'AMMO';
- ANAM : TwbSignature = 'ANAM';
- ANIO : TwbSignature = 'ANIO';
- APPA : TwbSignature = 'APPA';
- ARMO : TwbSignature = 'ARMO';
- ATTR : TwbSignature = 'ATTR';
- ATXT : TwbSignature = 'ATXT';
- BMDT : TwbSignature = 'BMDT';
- BNAM : TwbSignature = 'BNAM';
- BOOK : TwbSignature = 'BOOK';
- BSGN : TwbSignature = 'BSGN';
- BTXT : TwbSignature = 'BTXT';
- CELL : TwbSignature = 'CELL';
- CLAS : TwbSignature = 'CLAS';
- CLMT : TwbSignature = 'CLMT';
- CLOT : TwbSignature = 'CLOT';
- CNAM : TwbSignature = 'CNAM';
- CNTO : TwbSignature = 'CNTO';
- CONT : TwbSignature = 'CONT';
- CREA : TwbSignature = 'CREA';
- CSAD : TwbSignature = 'CSAD';
- CSCR : TwbSignature = 'CSCR';
- CSDC : TwbSignature = 'CSDC';
- CSDI : TwbSignature = 'CSDI';
- CSDT : TwbSignature = 'CSDT';
- CSTD : TwbSignature = 'CSTD';
- CSTY : TwbSignature = 'CSTY';
- CTDA : TwbSignature = 'CTDA';
- CTDT : TwbSignature = 'CTDT';
- DATA : TwbSignature = 'DATA';
- DATX : TwbSignature = 'DATX';
- DELE : TwbSignature = 'DELE';
- DESC : TwbSignature = 'DESC';
- DIAL : TwbSignature = 'DIAL';
- DNAM : TwbSignature = 'DNAM';
- DOOR : TwbSignature = 'DOOR';
- EDID : TwbSignature = 'EDID';
- EDDX : TwbSignature = 'EDDX';
- EFID : TwbSignature = 'EFID';
- EFIT : TwbSignature = 'EFIT';
- ACVA : TwbSignature = 'ACVA';
- EFII : TwbSignature = 'EFII';
- EFXX : TwbSignature = 'EFXX';
- EFIX : TwbSignature = 'EFIX';
- EFME : TwbSignature = 'EFME';
- EFSH : TwbSignature = 'EFSH';
- ENAM : TwbSignature = 'ENAM';
- ENCH : TwbSignature = 'ENCH';
- ENIT : TwbSignature = 'ENIT';
- ESCE : TwbSignature = 'ESCE';
- EYES : TwbSignature = 'EYES';
- FACT : TwbSignature = 'FACT';
- FGGA : TwbSignature = 'FGGA';
- FGGS : TwbSignature = 'FGGS';
- FGTS : TwbSignature = 'FGTS';
- FLOR : TwbSignature = 'FLOR';
- FLTV : TwbSignature = 'FLTV';
- FNAM : TwbSignature = 'FNAM';
- FULL : TwbSignature = 'FULL';
- FURN : TwbSignature = 'FURN';
- GLOB : TwbSignature = 'GLOB';
- GMST : TwbSignature = 'GMST';
- GNAM : TwbSignature = 'GNAM';
- GRAS : TwbSignature = 'GRAS';
- HAIR : TwbSignature = 'HAIR';
- HCLR : TwbSignature = 'HCLR';
- HEDR : TwbSignature = 'HEDR';
- HNAM : TwbSignature = 'HNAM';
- ICO2 : TwbSignature = 'ICO2';
- ICON : TwbSignature = 'ICON';
- IDLE : TwbSignature = 'IDLE';
- NULL : TwbSignature = 'NULL';
- INAM : TwbSignature = 'INAM';
- INDX : TwbSignature = 'INDX';
- INFO : TwbSignature = 'INFO';
- INGR : TwbSignature = 'INGR';
- JNAM : TwbSignature = 'JNAM';
- KEYM : TwbSignature = 'KEYM';
- KFFZ : TwbSignature = 'KFFZ';
- LAND : TwbSignature = 'LAND';
- LIGH : TwbSignature = 'LIGH';
- LNAM : TwbSignature = 'LNAM';
- LSCR : TwbSignature = 'LSCR';
- LTEX : TwbSignature = 'LTEX';
- LVLC : TwbSignature = 'LVLC';
- LVLD : TwbSignature = 'LVLD';
- LVLF : TwbSignature = 'LVLF';
- LVLI : TwbSignature = 'LVLI';
- LVLO : TwbSignature = 'LVLO';
- LVSP : TwbSignature = 'LVSP';
- MAST : TwbSignature = 'MAST';
- MGEF : TwbSignature = 'MGEF';
- MISC : TwbSignature = 'MISC';
- MNAM : TwbSignature = 'MNAM';
- MO2B : TwbSignature = 'MO2B';
- MO2T : TwbSignature = 'MO2T';
- MO3B : TwbSignature = 'MO3B';
- MO3T : TwbSignature = 'MO3T';
- MO4B : TwbSignature = 'MO4B';
- MO4T : TwbSignature = 'MO4T';
- MOD2 : TwbSignature = 'MOD2';
- MOD3 : TwbSignature = 'MOD3';
- MOD4 : TwbSignature = 'MOD4';
- MODB : TwbSignature = 'MODB';
- MODL : TwbSignature = 'MODL';
- MODT : TwbSignature = 'MODT';
- NAM0 : TwbSignature = 'NAM0';
- NAM1 : TwbSignature = 'NAM1';
- NAM2 : TwbSignature = 'NAM2';
- NAM9 : TwbSignature = 'NAM9';
- NAME : TwbSignature = 'NAME';
- NIFT : TwbSignature = 'NIFT';
- NIFZ : TwbSignature = 'NIFZ';
- NPC_ : TwbSignature = 'NPC_';
- OFST : TwbSignature = 'OFST';
- OBME : TwbSignature = 'OBME';
- ONAM : TwbSignature = 'ONAM';
- PACK : TwbSignature = 'PACK';
- PFIG : TwbSignature = 'PFIG';
- PFPC : TwbSignature = 'PFPC';
- PGAG : TwbSignature = 'PGAG';
- PGRD : TwbSignature = 'PGRD';
- PGRI : TwbSignature = 'PGRI';
- PGRL : TwbSignature = 'PGRL';
- PGRP : TwbSignature = 'PGRP';
- PGRR : TwbSignature = 'PGRR';
- PKDT : TwbSignature = 'PKDT';
- PKID : TwbSignature = 'PKID';
- PLDT : TwbSignature = 'PLDT';
- PNAM : TwbSignature = 'PNAM';
- PSDT : TwbSignature = 'PSDT';
- PTDT : TwbSignature = 'PTDT';
- QNAM : TwbSignature = 'QNAM';
- QSDT : TwbSignature = 'QSDT';
- QSTA : TwbSignature = 'QSTA';
- QSTI : TwbSignature = 'QSTI';
- QSTR : TwbSignature = 'QSTR';
- TPIC : TwbSignature = 'TPIC';
- QUST : TwbSignature = 'QUST';
- RACE : TwbSignature = 'RACE';
- RCLR : TwbSignature = 'RCLR';
- RDAT : TwbSignature = 'RDAT';
- RDGS : TwbSignature = 'RDGS';
- RDMD : TwbSignature = 'RDMD';
- RDMP : TwbSignature = 'RDMP';
- RDOT : TwbSignature = 'RDOT';
- RDSD : TwbSignature = 'RDSD';
- RDWT : TwbSignature = 'RDWT';
- REFR : TwbSignature = 'REFR';
- PLYR : TwbSignature = 'PLYR';
- REGN : TwbSignature = 'REGN';
- RNAM : TwbSignature = 'RNAM';
- ROAD : TwbSignature = 'ROAD';
- RPLD : TwbSignature = 'RPLD';
- RPLI : TwbSignature = 'RPLI';
- SBSP : TwbSignature = 'SBSP';
- SCDA : TwbSignature = 'SCDA';
- SCHD : TwbSignature = 'SCHD';
- SCHR : TwbSignature = 'SCHR';
- SCIT : TwbSignature = 'SCIT';
- SCPT : TwbSignature = 'SCPT';
- SCRI : TwbSignature = 'SCRI';
- SCRO : TwbSignature = 'SCRO';
- SCRV : TwbSignature = 'SCRV';
- SCTX : TwbSignature = 'SCTX';
- SCVR : TwbSignature = 'SCVR';
- SGST : TwbSignature = 'SGST';
- SKIL : TwbSignature = 'SKIL';
- SLCP : TwbSignature = 'SLCP';
- SLGM : TwbSignature = 'SLGM';
- SLSD : TwbSignature = 'SLSD';
- SNAM : TwbSignature = 'SNAM';
- SNDD : TwbSignature = 'SNDD';
- SNDX : TwbSignature = 'SNDX';
- SOUL : TwbSignature = 'SOUL';
- SOUN : TwbSignature = 'SOUN';
- SPEL : TwbSignature = 'SPEL';
- SPIT : TwbSignature = 'SPIT';
- SPLO : TwbSignature = 'SPLO';
- STAT : TwbSignature = 'STAT';
- TCLF : TwbSignature = 'TCLF';
- TCLT : TwbSignature = 'TCLT';
- TES3 : TwbSignature = 'TES3';
- TNAM : TwbSignature = 'TNAM';
- TRDT : TwbSignature = 'TRDT';
- TREE : TwbSignature = 'TREE';
- UNAM : TwbSignature = 'UNAM';
- VCLR : TwbSignature = 'VCLR';
- VHGT : TwbSignature = 'VHGT';
- VNAM : TwbSignature = 'VNAM';
- VNML : TwbSignature = 'VNML';
- VTEX : TwbSignature = 'VTEX';
- VTXT : TwbSignature = 'VTXT';
- WATR : TwbSignature = 'WATR';
- WEAP : TwbSignature = 'WEAP';
- WLST : TwbSignature = 'WLST';
- WNAM : TwbSignature = 'WNAM';
- WRLD : TwbSignature = 'WRLD';
- WTHR : TwbSignature = 'WTHR';
- XACT : TwbSignature = 'XACT';
- XCCM : TwbSignature = 'XCCM';
- XCHG : TwbSignature = 'XCHG';
- XCLC : TwbSignature = 'XCLC';
- XCLL : TwbSignature = 'XCLL';
- XCLR : TwbSignature = 'XCLR';
- XCLW : TwbSignature = 'XCLW';
- XCMT : TwbSignature = 'XCMT';
- XCNT : TwbSignature = 'XCNT';
- XCWT : TwbSignature = 'XCWT';
- XESP : TwbSignature = 'XESP';
- XGLB : TwbSignature = 'XGLB';
- XHLT : TwbSignature = 'XHLT';
- XHRS : TwbSignature = 'XHRS';
- XLCM : TwbSignature = 'XLCM';
- XLOC : TwbSignature = 'XLOC';
- XLOD : TwbSignature = 'XLOD';
- XMRC : TwbSignature = 'XMRC';
- XMRK : TwbSignature = 'XMRK';
- XNAM : TwbSignature = 'XNAM';
- XOWN : TwbSignature = 'XOWN';
- XPCI : TwbSignature = 'XPCI';
- XRGD : TwbSignature = 'XRGD';
- XRNK : TwbSignature = 'XRNK';
- XRTM : TwbSignature = 'XRTM';
- XSCL : TwbSignature = 'XSCL';
- XSED : TwbSignature = 'XSED';
- XSOL : TwbSignature = 'XSOL';
- XTEL : TwbSignature = 'XTEL';
- XTRG : TwbSignature = 'XTRG';
- XXXX : TwbSignature = 'XXXX';
- ZNAM : TwbSignature = 'ZNAM';
-
-var
- wbEDID: IwbSubRecordDef;
- wbXOWN: IwbSubRecordDef;
- wbXGLB: IwbSubRecordDef;
- wbXRGD: IwbSubRecordDef;
- wbSLSD: IwbSubRecordDef;
- wbBodyDataIndex: IwbSubRecordDef;
- wbSPLO: IwbSubRecordDef;
- wbSPLOs: IwbSubRecordArrayDef;
- wbCNTO: IwbSubRecordDef;
- wbCNTOs: IwbSubRecordArrayDef;
- wbCSDT: IwbSubRecordStructDef;
- wbCSDTs: IwbSubRecordArrayDef;
- wbFULL: IwbSubRecordDef;
- wbFULLReq: IwbSubRecordDef;
- wbXNAM: IwbSubRecordDef;
- wbXNAMs: IwbSubRecordArrayDef;
- wbDESC: IwbSubRecordDef;
- wbXSCL: IwbSubRecordDef;
- wbDATAPosRot : IwbSubRecordDef;
- wbPosRot : IwbStructDef;
- wbMODL: IwbSubRecordStructDef;
- wbCTDA: IwbSubRecordUnionDef;
- wbSCHR: IwbSubRecordUnionDef;
- wbCTDAs: IwbSubRecordArrayDef;
- wbSCROs: IwbSubRecordArrayDef;
- wbPGRP: IwbSubRecordDef;
- wbResultScript: IwbSubRecordStructDef;
-// wbResultScriptOld: IwbSubRecordStructDef;
- wbSCRI: IwbSubRecordDef;
- wbFaceGen: IwbSubRecordStructDef;
- wbENAM: IwbSubRecordDef;
- wbFGGS: IwbSubRecordDef;
- wbXLOD: IwbSubRecordDef;
- wbXESP: IwbSubRecordDef;
- wbICON: IwbSubRecordDef;
- wbEFID: IwbSubRecordDef;
- wbEFIDOBME: IwbSubRecordDef;
- wbEFIT: IwbSubRecordDef;
- wbEFITOBME: IwbSubRecordDef;
- wbEFIX: IwbSubRecordDef;
- wbSCIT: IwbSubRecordStructDef;
- wbSCITOBME: IwbSubRecordStructDef;
- wbEffects: IwbSubRecordUnionDef;
-
-function wbClmtMoonsPhaseLength(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- PhaseLength : Byte;
- Masser : Boolean;
- Secunda : Boolean;
-begin
- Result := '';
- if aType = ctToSortKey then begin
- Result := IntToHex64(aInt, 2);
- end else if aType = ctToStr then begin
- PhaseLength := aInt mod 64;
- Masser := (aInt and 64) <> 0;
- Secunda := (aInt and 128) <> 0;
- if Masser then
- if Secunda then
- Result := 'Masser, Secunda / '
- else
- Result := 'Masser / '
- else
- if Secunda then
- Result := 'Secunda / '
- else
- Result := 'No Moon / ';
- Result := Result + IntToStr(PhaseLength);
- end;
-end;
-
-function wbClmtTime(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- Result := TimeToStr( EncodeTime(aInt div 6, (aInt mod 6) * 10, 0, 0) );
-end;
-
-var
- wbCtdaTypeFlags : IwbFlagsDef;
-
-function wbCtdaType(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- s: string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and $F0 of
- $00 : Result := 'Equal to';
- $20 : Result := 'Not equal to';
- $40 : Result := 'Greater than';
- $60 : Result := 'Greater than or equal to';
- $80 : Result := 'Less than';
- $A0 : Result := 'Less than or equal to';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.ToString(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: begin
- case aInt and $F0 of
- $00, $20, $40, $60, $80, $A0 : Result := '';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.Check(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- end;
-end;
-
-function wbIdleAnam(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not $80 of
- 0: Result := 'Lower Body';
- 1: Result := 'Left Arm';
- 2: Result := 'Left Hand';
- 3: Result := 'Right Arm';
- 4: Result := 'Special Idle';
- 5: Result := 'Whole Body';
- 6: Result := 'Upper Body';
- else
- Result := '';
- end;
-
- if (aInt and $80) = 0 then
- Result := Result + ', Must return a file';
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- end;
- ctCheck: begin
- case aInt and not $80 of
- 0..6: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbScaledInt4ToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-const
- PlusMinus : array[Boolean] of string = ('+', '-');
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- ctToSortKey: begin
- Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- if Length(Result) < 22 then
- Result := StringOfChar('0', 22 - Length(Result)) + Result;
- Result := PlusMinus[aInt < 0] + Result;
- end;
- ctCheck: Result := '';
- end;
-end;
-
-function wbScaledInt4ToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- f: Extended;
-begin
- f := StrToFloat(aString);
- f := f * 10000;
- Result := Round(f);
-end;
-
-function wbHideFFFF(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- if aInt = $FFFF then
- Result := 'None'
- else
- Result := IntToStr(aInt);
-end;
-
-function wbAtxtPosition(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt div 17, 2) + IntToHex64(aInt mod 17, 2)
- else if aType = ctCheck then begin
- if (aInt < 0) or (aInt > 288) then
- Result := ''
- else
- Result := '';
- end else if aType = ctToStr then
- Result := IntToStr(aInt) + ' -> ' + IntToStr(aInt div 17) + ':' + IntToStr(aInt mod 17);
-end;
-
-function wbWthrDataClassification(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not 192 of
- 0: Result := 'None';
- 1: Result := 'Pleasant';
- 2: Result := 'Cloudy';
- 3: Result := 'Rainy';
- 4: Result := 'Snow';
- else
- Result := '';
- end;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2)
- end;
- ctCheck: begin
- case aInt and not 192 of
- 0..4: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbGLOBFNAM(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt of
- Ord('s'): Result := 'Short';
- Ord('l'): Result := 'Long';
- Ord('f'): Result := 'Float';
- else
- Result := '';
- end;
- end;
- ctToSortKey: Result := Chr(aInt);
- ctCheck: begin
- case aInt of
- Ord('s'), Ord('l'), Ord('f'): Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPlacedAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- s: string;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['NAME'];
- if Assigned(Rec) then begin
- s := Trim(Rec.Value);
- if s <> '' then
- Result := 'places ' + s;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
- end;
- end;
-end;
-
-function wbCellAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- GroupRecord : IwbGroupRecord;
- s: string;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['XCLC'];
- if Assigned(Rec) then
- Result := 'at ' + Rec.Elements[0].Value + ',' + Rec.Elements[1].Value;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and not
- (Supports(Container, IwbGroupRecord, GroupRecord) and (GroupRecord.GroupType = 1)) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := wbFormID.ToString(GroupRecord.GroupLabel, aMainRecord);
- if s <> '' then begin
- if Result <> '' then
- s := s + ' ';
- Result := 'in ' + s + Result;
- end;
- end;
-end;
-
-function wbGMSTUnionDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rEDID: IwbRecord;
- s: string;
-begin
- Result := 1;
- rEDID := aElement.Container.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > 0 then
- case s[1] of
- 's': Result := 0;
- 'f': Result := 2;
- end;
- end;
-end;
-
-function wbMISCActorValueDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- MainRecord : IwbMainRecord;
-begin
- Result := 0;
-
- if not Assigned(aElement) then
- Exit;
-
- MainRecord := aElement.ContainingMainRecord;
- if not Assigned(MainRecord) then
- Exit;
-
- if (MainRecord.Flags._Flags and $000000C0) = $000000C0 then
- Result := 1;
-end;
-
-function wbXLOCFillerDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Container.DataSize = 16 then
- Result := 1;
-end;
-
-function wbPACKPKDTDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 1;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Container.DataSize = 4 then
- Result := 0;
-end;
-
-function wbREFRXSEDDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Container.DataSize = 4 then
- Result := 1;
-end;
-
-
-type
- TCTDAFunctionParamType = (
- ptNone,
- ptInteger,
- ptVariableName, //Integer
- ptSex, //Enum: Male, Female
- ptActorValue, //Enum: wbActorValue
- ptCrimeType, //?? Enum
- ptAxis, //?? Char
- ptFormType, //?? Enum
- ptQuestStage,
-
- ptObjectReference, //REFR, ACHR, ACRE, PGRE
- ptInventoryObject, //ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, ARMA
- ptActor, //ACHR, ACRE
- ptQuest, //QUST
- ptFaction, //FACT
- ptCell, //CELL
- ptClass, //CLAS
- ptRace, //RACE
- ptActorBase, //NPC_, CREA
- ptGlobal, //GLOB
- ptWeather, //WTHR
- ptPackage, //PACK
- ptOwnerOpt, //FACT, NPC_
- ptBirthsign, //BSGN
- ptFurniture, //FURN
- ptMagicItem, //SPEL
- ptMagicEffect, //MGEF
- ptWorldspace, //WRLD
- ptReferencableObject
- );
-
- PCTDAFunction = ^TCTDAFunction;
- TCTDAFunction = record
- Index: Integer;
- Name: string;
- ParamType1: TCTDAFunctionParamType;
- ParamType2: TCTDAFunctionParamType;
- end;
-
-const
- wbCTDAFunctions : array[0..168] of TCTDAFunction = (
- (Index: 1; Name: 'GetDistance'; ParamType1: ptObjectReference),
- (Index: 5; Name: 'GetLocked'),
- (Index: 6; Name: 'GetPos'; ParamType1: ptAxis),
- (Index: 8; Name: 'GetAngle'; ParamType1: ptAxis),
- (Index: 10; Name: 'GetStartingPos'; ParamType1: ptAxis),
- (Index: 11; Name: 'GetStartingAngle'; ParamType1: ptAxis),
- (Index: 12; Name: 'GetSecondsPassed'),
- (Index: 14; Name: 'GetActorValue'; ParamType1: ptActorValue),
- (Index: 18; Name: 'GetCurrentTime'),
- (Index: 24; Name: 'GetScale'),
- (Index: 27; Name: 'GetLineOfSight'; ParamType1: ptObjectReference),
- (Index: 32; Name: 'GetInSameCell'; ParamType1: ptObjectReference),
- (Index: 35; Name: 'GetDisabled'),
- (Index: 36; Name: 'MenuMode'; ParamType1: ptInteger),
- (Index: 39; Name: 'GetDisease'),
- (Index: 40; Name: 'GetVampire'),
- (Index: 41; Name: 'GetClothingValue'),
- (Index: 42; Name: 'SameFaction'; ParamType1: ptActor),
- (Index: 43; Name: 'SameRace'; ParamType1: ptActor),
- (Index: 44; Name: 'SameSex'; ParamType1: ptActor),
- (Index: 45; Name: 'GetDetected'; ParamType1: ptActor),
- (Index: 46; Name: 'GetDead'),
- (Index: 47; Name: 'GetItemCount'; ParamType1: ptInventoryObject),
- (Index: 48; Name: 'GetGold'),
- (Index: 49; Name: 'GetSleeping'),
- (Index: 50; Name: 'GetTalkedToPC'),
- (Index: 53; Name: 'GetScriptVariable'; ParamType1: ptObjectReference; ParamType2: ptVariableName),
- (Index: 56; Name: 'GetQuestRunning'; ParamType1: ptQuest),
- (Index: 58; Name: 'GetStage'; ParamType1: ptQuest),
- (Index: 59; Name: 'GetStageDone'; ParamType1: ptQuest; ParamType2: ptQuestStage),
- (Index: 60; Name: 'GetFactionRankDifference'; ParamType1: ptFaction; ParamType2: ptActor),
- (Index: 61; Name: 'GetAlarmed'),
- (Index: 62; Name: 'IsRaining'),
- (Index: 63; Name: 'GetAttacked'),
- (Index: 64; Name: 'GetIsCreature'),
- (Index: 65; Name: 'GetLockLevel'),
- (Index: 66; Name: 'GetShouldAttack'; ParamType1: ptActor),
- (Index: 67; Name: 'GetInCell'; ParamType1: ptCell),
- (Index: 68; Name: 'GetIsClass'; ParamType1: ptClass),
- (Index: 69; Name: 'GetIsRace'; ParamType1: ptRace),
- (Index: 70; Name: 'GetIsSex'; ParamType1: ptSex),
- (Index: 71; Name: 'GetInFaction'; ParamType1: ptFaction),
- (Index: 72; Name: 'GetIsID'; ParamType1: ptReferencableObject),
- (Index: 73; Name: 'GetFactionRank'; ParamType1: ptFaction),
- (Index: 74; Name: 'GetGlobalValue'; ParamType1: ptGlobal),
- (Index: 75; Name: 'IsSnowing'),
- (Index: 76; Name: 'GetDisposition'; ParamType1: ptActor),
- (Index: 77; Name: 'GetRandomPercent'),
- (Index: 79; Name: 'GetQuestVariable'; ParamType1: ptQuest; ParamType2: ptVariableName),
- (Index: 80; Name: 'GetLevel'),
- (Index: 81; Name: 'GetArmorRating'),
- (Index: 84; Name: 'GetDeadCount'; ParamType1: ptActorBase),
- (Index: 91; Name: 'GetIsAlerted'),
- (Index: 98; Name: 'GetPlayerControlsDisabled'),
- (Index: 99; Name: 'GetHeadingAngle'; ParamType1: ptObjectReference),
- (Index: 101; Name: 'IsWeaponOut'),
- (Index: 102; Name: 'IsTorchOut'),
- (Index: 103; Name: 'IsShieldOut'),
- (Index: 104; Name: 'IsYielding'),
- (Index: 106; Name: 'IsFacingUp'),
- (Index: 107; Name: 'GetKnockedState'),
- (Index: 108; Name: 'GetWeaponAnimType'),
- (Index: 109; Name: 'GetWeaponSkillType'),
- (Index: 110; Name: 'GetCurrentAIPackage'),
- (Index: 111; Name: 'IsWaiting'),
- (Index: 112; Name: 'IsIdlePlaying'),
- (Index: 116; Name: 'GetCrimeGold'),
- (Index: 122; Name: 'GetCrime'; ParamType1: ptActor; ParamType2: ptCrimeType),
- (Index: 125; Name: 'IsGuard'),
- (Index: 127; Name: 'CanPayCrimeGold'),
- (Index: 128; Name: 'GetFatiguePercentage'),
- (Index: 129; Name: 'GetPCIsClass'; ParamType1: ptClass),
- (Index: 130; Name: 'GetPCIsRace'; ParamType1: ptRace),
- (Index: 131; Name: 'GetPCIsSex'; ParamType1: ptSex),
- (Index: 132; Name: 'GetPCInFaction'; ParamType1: ptFaction),
- (Index: 133; Name: 'SameFactionAsPC'),
- (Index: 134; Name: 'SameRaceAsPC'),
- (Index: 135; Name: 'SameSexAsPC'),
- (Index: 136; Name: 'GetIsReference'; ParamType1: ptObjectReference),
- (Index: 141; Name: 'IsTalking'),
- (Index: 142; Name: 'GetWalkSpeed'),
- (Index: 143; Name: 'GetCurrentAIProcedure'),
- (Index: 144; Name: 'GetTrespassWarningLevel'),
- (Index: 145; Name: 'IsTrespassing'),
- (Index: 146; Name: 'IsInMyOwnedCell'),
- (Index: 147; Name: 'GetWindSpeed'),
- (Index: 148; Name: 'GetCurrentWeatherPercent'),
- (Index: 149; Name: 'GetIsCurrentWeather'; ParamType1: ptWeather),
- (Index: 150; Name: 'IsContinuingPackagePCNear'),
- (Index: 153; Name: 'CanHaveFlames'),
- (Index: 154; Name: 'HasFlames'),
- (Index: 157; Name: 'GetOpenState'),
- (Index: 159; Name: 'GetSitting'),
- (Index: 160; Name: 'GetFurnitureMarkerID'),
- (Index: 161; Name: 'GetIsCurrentPackage'; ParamType1: ptPackage),
- (Index: 162; Name: 'IsCurrentFurnitureRef'; ParamType1: ptObjectReference),
- (Index: 163; Name: 'IsCurrentFurnitureObj'; ParamType1: ptFurniture),
- (Index: 170; Name: 'GetDayOfWeek'),
- (Index: 171; Name: 'IsPlayerInJail'),
- (Index: 172; Name: 'GetTalkedToPCParam'; ParamType1: ptActor),
- (Index: 175; Name: 'IsPCSleeping'),
- (Index: 176; Name: 'IsPCAMurderer'),
- (Index: 180; Name: 'GetDetectionLevel'; ParamType1: ptActor),
- (Index: 182; Name: 'GetEquipped'; ParamType1: ptInventoryObject),
- (Index: 185; Name: 'IsSwimming'),
- (Index: 190; Name: 'GetAmountSoldStolen'),
- (Index: 193; Name: 'GetPCExpelled'; ParamType1: ptFaction),
- (Index: 195; Name: 'GetPCFactionMurder'; ParamType1: ptFaction),
- (Index: 197; Name: 'GetPCFactionSteal'; ParamType1: ptFaction),
- (Index: 199; Name: 'GetPCFactionAttack'; ParamType1: ptFaction),
- (Index: 201; Name: 'GetPCFactionSubmitAuthority'; ParamType1: ptFaction),
- (Index: 203; Name: 'GetDestroyed'),
- (Index: 214; Name: 'HasMagicEffect'; ParamType1: ptMagicEffect),
- (Index: 215; Name: 'GetDoorDefaultOpen'),
- (Index: 223; Name: 'IsSpellTarget'; ParamType1: ptMagicItem),
- (Index: 224; Name: 'GetIsPlayerBirthsign'; ParamType1: ptBirthsign),
- (Index: 225; Name: 'GetPersuasionNumber'),
- (Index: 227; Name: 'HasVampireFed'),
- (Index: 228; Name: 'GetIsClassDefault'; ParamType1: ptClass),
- (Index: 229; Name: 'GetClassDefaultMatch'),
- (Index: 230; Name: 'GetInCellParam'; ParamType1: ptCell; ParamType2: ptObjectReference),
- (Index: 237; Name: 'GetIsGhost'),
- (Index: 242; Name: 'GetUnconscious'),
- (Index: 244; Name: 'GetRestrained'),
- (Index: 246; Name: 'GetIsUsedItem'; ParamType1: ptReferencableObject),
- (Index: 247; Name: 'GetIsUsedItemType'; ParamType1: ptFormType),
- (Index: 249; Name: 'GetPCFame'),
- (Index: 251; Name: 'GetPCInfamy'),
- (Index: 254; Name: 'GetIsPlayableRace'),
- (Index: 255; Name: 'GetOffersServicesNow'),
- (Index: 258; Name: 'GetUsedItemLevel'),
- (Index: 259; Name: 'GetUsedItemActivate'),
- (Index: 264; Name: 'GetBarterGold'),
- (Index: 265; Name: 'IsTimePassing'),
- (Index: 266; Name: 'IsPleasant'),
- (Index: 267; Name: 'IsCloudy'),
- (Index: 274; Name: 'GetArmorRatingUpperBody'),
- (Index: 277; Name: 'GetBaseActorValue'; ParamType1: ptActorValue),
- (Index: 278; Name: 'IsOwner'; ParamType1: ptOwnerOpt),
- (Index: 280; Name: 'IsCellOwner'; ParamType1: ptCell; ParamType2: ptOwnerOpt),
- (Index: 282; Name: 'IsHorseStolen'),
- (Index: 285; Name: 'IsLeftUp'),
- (Index: 286; Name: 'IsSneaking'),
- (Index: 287; Name: 'IsRunning'),
- (Index: 288; Name: 'GetFriendHit'; ParamType1: ptActor),
- (Index: 289; Name: 'IsInCombat'),
- (Index: 300; Name: 'IsInInterior'),
- (Index: 305; Name: 'GetInvestmentGold'),
- (Index: 306; Name: 'IsActorUsingATorch'),
- (Index: 309; Name: 'IsXBox'),
- (Index: 310; Name: 'GetInWorldspace'; ParamType1: ptWorldSpace),
- (Index: 312; Name: 'GetPCMiscStat'; ParamType1: ptInteger),
- (Index: 313; Name: 'IsActorEvil'),
- (Index: 314; Name: 'IsActorAVictim'),
- (Index: 315; Name: 'GetTotalPersuasionNumber'),
- (Index: 318; Name: 'GetIdleDoneOnce'),
- (Index: 320; Name: 'GetNoRumors'),
- (Index: 323; Name: 'WhichServiceMenu'),
- (Index: 327; Name: 'IsRidingHorse'),
- (Index: 329; Name: 'IsTurnArrest'),
- (Index: 332; Name: 'IsInDangerousWater'),
- (Index: 338; Name: 'GetIgnoreFriendlyHits'),
- (Index: 339; Name: 'IsPlayersLastRiddenHorse'),
- (Index: 353; Name: 'IsActor'),
- (Index: 354; Name: 'IsEssential'),
- (Index: 358; Name: 'IsPlayerMovingIntoNewSpace'),
- (Index: 361; Name: 'GetTimeDead'),
- (Index: 362; Name: 'GetPlayerHasLastRiddenHorse'),
- (Index: 365; Name: 'GetPlayerInSEWorld')
- );
-
-var
- wbCTDAFunctionEditInfo : string;
-
-function wbCTDAParamDescFromIndex(aIndex: Integer): PCTDAFunction;
-var
- L, H, I, C: Integer;
-begin
- Result := nil;
-
- L := Low(wbCTDAFunctions);
- H := High(wbCTDAFunctions);
- while L <= H do begin
- I := (L + H) shr 1;
- C := CmpW32(wbCTDAFunctions[I].Index, aIndex);
- if C < 0 then
- L := I + 1
- else begin
- H := I - 1;
- if C = 0 then begin
- L := I;
- Result := @wbCTDAFunctions[L];
- end;
- end;
- end;
-end;
-
-function wbCTDACompValueDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Integer(Container.ElementByName['Type'].NativeValue) and $04 <> 0 then
- Result := 1;
-end;
-
-function wbEFITOBMEParamDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- ParamInfo: Variant;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- ParamInfo := Container.ElementNativeValues['..\EFME\EFIT Param Info'];
- if VarIsNull(ParamInfo) or VarIsEmpty(ParamInfo) then
- else
- Result := ParamInfo;
-end;
-
-function wbEFIXParamDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- ParamInfo: Variant;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- ParamInfo := Container.ElementNativeValues['..\EFME\EFIX Param Info'];
- if VarIsNull(ParamInfo) or VarIsEmpty(ParamInfo) then
- else
- Result := ParamInfo;
-end;
-
-function wbCTDAParam1Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType1));
-end;
-
-function wbCTDAParam2Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType2));
-end;
-{
-function wbCTDAFunction(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Desc: PCTDAFunction;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := Desc.Name
- else
- Result := '';
- end;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctCheck: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := ''
- else
- Result := '';
- end;
- end;
-end;
-}
-function wbCTDAFunctionToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Desc : PCTDAFunction;
- i : Integer;
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := Desc.Name
- else if aType = ctToEditValue then
- Result := IntToStr(aInt)
- else
- Result := '';
- end;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctCheck: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := ''
- else
- Result := '';
- end;
- ctEditType:
- Result := 'ComboBox';
- ctEditInfo: begin
- Result := wbCTDAFunctionEditInfo;
- if Result = '' then begin
- with TStringList.Create do try
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- Add(wbCTDAFunctions[i].Name);
- Sort;
- Result := CommaText;
- finally
- Free;
- end;
- wbCTDAFunctionEditInfo := Result;
- end;
- end;
- end;
-end;
-
-function wbCTDAFunctionToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i: Integer;
-begin
- for i := Low(wbCTDAFunctions) to High(wbCTDAFunctions) do
- with wbCTDAFunctions[i] do
- if SameText(Name, aString) then begin
- Result := Index;
- Exit;
- end;
- Result := StrToInt64(aString);
-end;
-
-function wbCTDAParam2VariableNameToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
- ScriptRef : IwbElement;
- Script : IwbMainRecord;
- Variables : TStringList;
- LocalVars : IwbContainerElementRef;
- LocalVar : IwbContainerElementRef;
- i, j : Integer;
- s : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- MainRecord := nil;
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-{ if Param1.NativeValue = 0 then
- if Supports(Container.Container, IwbContainerElementRef, Container) then
- for i := 0 to Pred(Container.ElementCount) do
- if Supports(Container.Elements[i], IwbContainerElementRef, Container2) then
- if SameText(Container2.ElementValues['Function'], 'GetIsID') then begin
- Param1 := Container2.ElementByName['Parameter #1'];
- if Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Break;
- end;}
-
- if not Assigned(MainRecord) then
- Exit;
-
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) then
- MainRecord := BaseRecord;
-
- ScriptRef := MainRecord.RecordBySignature['SCRI'];
-
- if not Assigned(ScriptRef) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- if not Supports(ScriptRef.LinksTo, IwbMainRecord, Script) then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- Variables := TStringList.Create;
- else
- Variables := nil;
- end;
- try
- if Supports(Script.ElementByName['Local Variables'], IwbContainerElementRef, LocalVars) then begin
- for i := 0 to Pred(LocalVars.ElementCount) do
- if Supports(LocalVars.Elements[i], IwbContainerElementRef, LocalVar) then begin
- j := LocalVar.ElementNativeValues['SLSD\Index'];
- s := LocalVar.ElementNativeValues['SCVR'];
- if Assigned(Variables) then
- Variables.AddObject(s, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := s;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- Variables.Sort;
- Result := Variables.CommaText;
- end;
- end;
- finally
- FreeAndNil(Variables);
- end;
-end;
-
-function wbCTDAParam2VariableNameToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- BaseRecord : IwbMainRecord;
- ScriptRef : IwbElement;
- Script : IwbMainRecord;
- LocalVars : IwbContainerElementRef;
- LocalVar : IwbContainerElementRef;
- i, j : Integer;
- s : string;
-begin
- Result := StrToInt64Def(aString, Low(Cardinal));
- if Result <> Low(Cardinal) then
- Exit;
-
- if not Assigned(aElement) then
- raise Exception.Create('aElement not specified');
-
- Container := GetContainerRefFromUnionOrValue(aElement);
-
- if not Assigned(Container) then
- raise Exception.Create('Container not assigned');
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- raise Exception.Create('Could not find "Parameter #1"');
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- raise Exception.Create('"Parameter #1" does not reference a valid main record');
-
- BaseRecord := MainRecord.BaseRecord;
- if Assigned(BaseRecord) then
- MainRecord := BaseRecord;
-
- ScriptRef := MainRecord.RecordBySignature['SCRI'];
-
- if not Assigned(ScriptRef) then
- raise Exception.Create('"'+MainRecord.ShortName+'" does not contain a SCRI subrecord');
-
- if not Supports(ScriptRef.LinksTo, IwbMainRecord, Script) then
- raise Exception.Create('"'+MainRecord.ShortName+'" does not have a valid script');
-
- if Supports(Script.ElementByName['Local Variables'], IwbContainerElementRef, LocalVars) then begin
- for i := 0 to Pred(LocalVars.ElementCount) do
- if Supports(LocalVars.Elements[i], IwbContainerElementRef, LocalVar) then begin
- j := LocalVar.ElementNativeValues['SLSD\Index'];
- s := LocalVar.ElementNativeValues['SCVR'];
- if SameText(s, Trim(aString)) then begin
- Result := j;
- Exit;
- end;
- end;
- end;
-
- raise Exception.Create('Variable "'+aString+'" was not found in "'+MainRecord.ShortName+'"');
-end;
-
-function wbCTDAParam2QuestStageToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Container : IwbContainerElementRef;
- Param1 : IwbElement;
- MainRecord : IwbMainRecord;
- EditInfos : TStringList;
- Stages : IwbContainerElementRef;
- Stage : IwbContainerElementRef;
- i, j : Integer;
- s, t : string;
-begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctToEditValue: Result := IntToStr(aInt);
- ctToSortKey: begin
- Result := IntToHex64(aInt, 8);
- Exit;
- end;
- ctCheck: Result := '';
- ctEditType: Result := '';
- ctEditInfo: Result := '';
- end;
-
- if not Assigned(aElement) then Exit;
- Container := GetContainerRefFromUnionOrValue(aElement);
- if not Assigned(Container) then Exit;
-
- Param1 := Container.ElementByName['Parameter #1'];
-
- if not Assigned(Param1) then
- Exit;
-
- if not Supports(Param1.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.Signature <> QUST then begin
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- end;
- Exit;
- end;
-
- case aType of
- ctEditType: begin
- Result := 'ComboBox';
- Exit;
- end;
- ctEditInfo:
- EditInfos := TStringList.Create;
- else
- EditInfos := nil;
- end;
- try
- if Supports(MainRecord.ElementByName['Stages'], IwbContainerElementRef, Stages) then begin
- for i := 0 to Pred(Stages.ElementCount) do
- if Supports(Stages.Elements[i], IwbContainerElementRef, Stage) then begin
- j := Stage.ElementNativeValues['INDX'];
- s := Trim(Stage.ElementValues['Log Entries\Log Entry\CNAM']);
- t := IntToStr(j);
- while Length(t) < 3 do
- t := '0' + t;
- if s <> '' then
- t := t + ' ' + s;
- if Assigned(EditInfos) then
- EditInfos.AddObject(t, TObject(j))
- else if j = aInt then begin
- case aType of
- ctToStr, ctToEditValue: Result := t;
- ctCheck: Result := '';
- end;
- Exit;
- end;
- end;
- end;
-
- case aType of
- ctToStr: Result := IntToStr(aInt) + ' ';
- ctCheck: Result := '';
- ctEditInfo: begin
- EditInfos.Sort;
- Result := EditInfos.CommaText;
- end;
- end;
- finally
- FreeAndNil(EditInfos);
- end;
-end;
-
-function wbCTDAParam2QuestStageToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- i : Integer;
- s : string;
-begin
- i := 1;
- s := Trim(aString);
- while (i <= Length(s)) and (s[i] in ['0'..'9']) do
- Inc(i);
- s := Copy(s, 1, Pred(i));
-
- Result := StrToInt(s);
-end;
-
-procedure wbRemoveOFST(const aElement: IwbElement);
-var
- Container: IwbContainer;
- rOFST: IwbRecord;
-begin
- if Supports(aElement, IwbContainer, Container) then begin
- rOFST := Container.RecordBySignature[OFST];
- if Assigned(rOFST) then
- Container.RemoveElement(rOFST);
- end;
-end;
-
-procedure wbCELLAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- Container2 : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- i : Integer;
- IsInterior : Boolean;
- GroupRecord : IwbGroupRecord;
- Removed : Boolean;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Container.ElementExists['DATA'] then
- Exit;
-
- IsInterior := (Container.ElementNativeValues['DATA'] and 1) <> 0;
-
- if IsInterior then
- Container.Add('XCLL')
- else begin
- Container.Add('XCLC');
- if (Container.ElementNativeValues['DATA'] and 2) = 0 then
- if Supports(MainRecord.Container, IwbGroupRecord, GroupRecord) then
- if GroupRecord.GroupType = 1 then
- Container.ElementNativeValues['DATA'] :=
- Container.ElementNativeValues['DATA'] or 2;
- end;
-
- Removed := False;
- if Supports(Container.ElementBySignature[XCLR], IwbContainerElementRef, Container2) then begin
- for i:= Pred(Container2.ElementCount) downto 0 do
- if not Supports(Container2.Elements[i].LinksTo, IwbMainRecord, MainRecord) or (MainRecord.Signature <> 'REGN') then begin
- if not Removed then begin
- Removed := True;
- Container2.MarkModifiedRecursive;
- end;
- Container2.RemoveElement(i);
- end;
- if Container2.ElementCount < 1 then
- Container2.Remove;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbMGEFAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- _File : IwbFile;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- _File := MainRecord._File;
-
- if not Assigned(_File) then
- Exit;
-
- if not SameText(_File.FileName, 'Oblivion.esm') then
- Exit;
-
- if SameText(MainRecord.EditorID, 'RSFI') or
- SameText(MainRecord.EditorID, 'RSFR') or
- SameText(MainRecord.EditorID, 'RSPA') or
- SameText(MainRecord.EditorID, 'RSSH') then begin
-
- Container.ElementNativeValues['DATA - Data\Flags'] :=
- Cardinal(Container.ElementNativeValues['DATA - Data\Flags']) or $8;
-
- end;
-
- if SameText(MainRecord.EditorID, 'REAN') then begin
-
- Container.ElementNativeValues['DATA - Data\Flags'] :=
- Cardinal(Container.ElementNativeValues['DATA - Data\Flags']) and not $20000;
-
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-
-procedure wbEFITAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- Element : IwbElement;
- ActorValue: Variant;
- MainRecord: IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if Container.ElementCount < 1 then
- Exit;
-
- Element := Container.ElementByName['Magic effect name'];
- if not Assigned(Element) then
- Exit;
- if not Supports(Element.LinksTo, IwbMainRecord, MainRecord) then
- Exit;
- if MainRecord.Signature <> 'MGEF' then
- Exit;
-
- if (MainRecord.ElementNativeValues['DATA - Data\Flags'] and $01000000) = 0 then
- Exit;
-
- ActorValue := MainRecord.ElementNativeValues['DATA - Data\Assoc. Item'];
- if VarIsNull(ActorValue) or VarIsClear(ActorValue) then
- Exit;
- if VarCompareValue(ActorValue, Container.ElementNativeValues['Actor Value']) <> vrEqual then
- Container.ElementNativeValues['Actor Value'] := ActorValue;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbREFRAfterLoad(const aElement: IwbElement);
-var
- Container: IwbContainerElementRef;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
- if Container.ElementCount < 1 then
- Exit;
-
- Container.RemoveElement('XPCI');
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbLIGHAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if Container.ElementExists['DATA'] then begin
- if SameValue(Container.ElementNativeValues['DATA\Falloff Exponent'], 0.0) then
- Container.ElementNativeValues['DATA\Falloff Exponent'] := 1.0;
- if SameValue(Container.ElementNativeValues['DATA\FOV'], 0.0) then
- Container.ElementNativeValues['DATA\FOV'] := 90.0;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbLVLAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- Chance : Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- Container.RemoveElement('DATA');
-
- Chance := Container.ElementNativeValues['LVLD'];
- if (Chance and $80) <> 0 then begin
- Chance := Chance and not $80;
- Container.ElementNativeValues['LVLD'] := Chance;
- Container.ElementNativeValues['LVLF'] := Container.ElementNativeValues['LVLF'] or $01;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbRPLDAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainer;
- a, b : Single;
- NeedsFlip : Boolean;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainer, Container) then
- Exit;
-
- NeedsFlip := False;
- if Container.ElementCount > 1 then begin
- a := (Container.Elements[0] as IwbContainer).Elements[0].NativeValue;
- b := (Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[0].NativeValue;
- case CompareValue(a, b) of
- EqualsValue: begin
- a := (Container.Elements[0] as IwbContainer).Elements[1].NativeValue;
- b := (Container.Elements[Pred(Container.ElementCount)] as IwbContainer).Elements[1].NativeValue;
- NeedsFlip := CompareValue(a, b) = GreaterThanValue;
- end;
- GreaterThanValue:
- NeedsFlip := True;
- end;
- end;
- if NeedsFlip then
- Container.ReverseElements;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbPGRDAfterLoad(const aElement: IwbElement);
-var
- Container : IwbContainerElementRef;
- MainRecord : IwbMainRecord;
- Points : IwbContainerElementRef;
- Connections : IwbContainerElementRef;
- i, j : Integer;
- Point : IwbContainerElementRef;
- Connection : IwbContainerElementRef;
- Removed : Boolean;
- FirstRemoved: Boolean;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Container) then
- Exit;
-
- if Container.ElementCount < 1 then
- Exit;
-
- if not Supports(aElement, IwbMainRecord, MainRecord) then
- Exit;
-
- if MainRecord.IsDeleted then
- Exit;
-
- if not Supports(Container.ElementBySignature['PGRP'], IwbContainerElementRef, Points) then
- Exit;
-
- if not Container.ElementExists['PGAG'] then
- Container.Add('PGAG').DataSize := (Points.ElementCount + 7) div 8;
-
- MainRecord.IsCompressed := True;
-
- if not Supports(Container.ElementBySignature['PGRR'], IwbContainerElementRef, Connections) then
- Exit;
-
- if Points.ElementCount < Connections.ElementCount then
- Exit;
-
- FirstRemoved := False;
- for i := Pred(Connections.ElementCount) downto 0 do begin
- Connection := Connections.Elements[i] as IwbContainerElementRef;
-
- Removed := False;
- j := Connection.ElementCount;
- while j > 0 do begin
- Dec(j);
- if Connection.Elements[j].NativeValue = 65535 then begin
- if not FirstRemoved then begin
- FirstRemoved := True;
- Connections.MarkModifiedRecursive;
- end;
- Connection.Elements[j].Remove;
- Removed := True;
- end else
- Break;
- end;
-
- if Removed then begin
- Point := Points.Elements[i] as IwbContainerElementRef;
- Point.ElementNativeValues['Connections'] := Connection.ElementCount;
- end;
-
- end;
-
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbPGRRPointAfterLoad(const aElement: IwbElement);
-var
- Connections : IwbContainerElementRef;
- i : Integer;
-// Index : Integer;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Connections) then
- Exit;
- for i := Pred(Connections.ElementCount) downto 0 do
- if Connections.Elements[i].NativeValue = 65535 then begin
- Connections.RemoveElement(i);
- end;
-{ if Removed then begin
- Index := aElement.Container.ElementCount;
- (aElement.ContainingMainRecord.RecordBySignature['PGRP'].Elements[Index] as IwbContainer).Elements[3].NativeValue := Connections.ElementCount;
- end;}
- finally
- wbEndInternalEdit;
- end;
-end;
-
-procedure wbPGRIPointerAfterLoad(const aElement: IwbElement);
-var
- Connections : IwbContainerElementRef;
- i, j : Integer;
- s : string;
- Keys : TStringList;
-begin
- if wbBeginInternalEdit then try
- if not Supports(aElement, IwbContainerElementRef, Connections) then
- Exit;
-
- Keys := TStringList.Create;
- try
- Keys.Sorted := True;
- Keys.Duplicates := dupError;
- for i := Pred(Connections.ElementCount) downto 0 do begin
- s := Connections.Elements[i].SortKey[True];
- if Keys.Find(s, j) then
- Connections.RemoveElement(i, True)
- else
- Keys.Add(s);
- end;
- finally
- Keys.Free;
- end;
- finally
- wbEndInternalEdit;
- end;
-end;
-
-{
-function wbPGRPConnectionsCallback(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Point : IwbContainerElementRef;
- s : string;
- i : Integer;
- PGRP : IwbContainerElementRef;
- PGRD : IwbMainRecord;
- PGRR : IwbContainerElementRef;
- Cons : IwbContainerElementRef;
-begin
- Result := '';
- if aType = ctCheck then
- Exit;
-
- if wbFixupPGRD and (aInt > 0) and Assigned(aElement) and (aElement.ElementStates * [esModified] = []) then begin
- Point := aElement.Container as IwbContainerElementRef;
- if Assigned(Point) then begin
- s := Trim(Point.Name);
- i := Pos('#', s);
- if i > 0 then begin
- i := StrToIntDef(Copy(s, i+1, High(Integer)), -1);
- if i >= 0 then begin
- PGRP := Point.Container as IwbContainerElementRef;
- if Assigned(PGRP) then begin
- if Supports(PGRP.Container, IwbMainRecord, PGRD) then begin
- if (csInitDone in PGRD.ContainerStates) and (PGRD.Signature = 'PGRD') then begin
- PGRR := PGRD.RecordBySignature['PGRR'] as IwbContainerElementRef;
- if Assigned(PGRR) and (PGRR.ElementCount > 0) and (csInitDone in PGRR.ContainerStates) then begin
- if (i < PGRR.ElementCount) then begin
- if Supports(PGRR.Elements[i], IwbContainer, Cons) then begin
- aInt := Cons.ElementCount;
- end;
- end;
- end;
- PGRR := nil;
- end;
- end;
- end;
- end;
- end;
- end;
- end;
-
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 2)
- else if aType = ctToStr then
- Result := IntToStr(aInt);
-end;
-}
-
-function wbPxDTLocationDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Result := Container.ElementByName['Type'].NativeValue;
-end;
-
-function wbCalcPGRRSize(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Cardinal;
-var
- Index: Integer;
-begin
- Index := aElement.Container.ElementCount;
- Result := ((aElement.Container.Container as IwbMainRecord).RecordBySignature['PGRP'].Elements[Pred(Index)] as IwbContainer).Elements[3].NativeValue;
-end;
-
-function wbMGEFFAssocItemDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- s: string;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- s := Container.ElementByName['Flags'].SortKey[False];
- if s[17] = '1' then
- Result := 1
- else if s[18] = '1' then
- Result := 2
- else if s[19] = '1' then
- Result := 3
- else if s[25] = '1' then
- Result := 4;
-end;
-
-function wbEDDXDontShow(const aElement: IwbElement): Boolean;
-var
- MainRecord : IwbMainRecord;
-begin
- Result := True;
-
- if Supports(aElement.Container, IwbMainRecord, MainRecord) then
- Result := not Assigned(MainRecord.ElementBySignature[OBME]);
-end;
-
-function wbOBMEDontShow(const aElement: IwbElement): Boolean;
-var
- _File: IwbFile;
-begin
- if not Assigned(aElement) then begin
- Result := True;
- Exit;
- end;
-
- Result := False;
-
- _File := aElement._File;
- if Assigned(_File) and SameText(_File.FileName, 'Oblivion.esm') then
- Result := True;
-end;
-
-procedure DefineTES3;
-begin
- wbHeaderSignature := 'TES3';
-
- wbRecordFlags := wbInteger('Record Flags', itU32, wbFlags([
- {0x00000001}'ESM',
- {0x00000002}'',
- {0x00000004}'',
- {0x00000008}'',
- {0x00000010}'',
- {0x00000020}'Deleted',
- {0x00000040}'Border Region / Actor Value',
- {0x00000080}'Turn Off Fire / Actor Value',
- {0x00000100}'',
- {0x00000200}'Casts shadows',
- {0x00000400}'Quest item / Persistent reference / Show in Menu',
- {0x00000800}'Initially disabled',
- {0x00001000}'Ignored',
- {0x00002000}'',
- {0x00004000}'',
- {0x00008000}'Visible when distant',
- {0x00010000}'',
- {0x00020000}'Dangerous / Off limits (Interior cell)',
- {0x00040000}'Compressed ',
- {0x00080000}'Can''t wait'
- ]));
-
- wbMainRecordHeader := wbStruct('Record Header', [
- wbString('Signature', 4, cpCritical),
- wbInteger('Data Size', itU32, nil, cpIgnore),
- wbRecordFlags,
- wbFormID('FormID', cpFormID),
- wbByteArray('Unknown', 4, cpIgnore)
- ]);
-
- wbSizeOfMainRecordStruct := 20;
-
- wbIgnoreRecords.Add(XXXX);
-
- wbXRGD := wbByteArray(XRGD, 'Ragdoll Data');
-
- wbMusicEnum := wbEnum(['Default', 'Public', 'Dungeon']);
-
- wbEDID := wbString(EDID, 'Editor ID', 0, cpBenign);
- wbFULL := wbString(FULL, 'Name', 0, cpTranslate);
- wbFULLReq := wbString(FULL, 'Name', 0, cpNormal, True);
- wbDESC := wbString(DESC, 'Description', 0, cpTranslate);
- wbXSCL := wbFloat(XSCL, 'Scale');
-
- wbPosRot :=
- wbStruct('Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ]);
-
- wbDATAPosRot :=
- wbStruct(DATA, 'Position/Rotation', [
- wbStruct('Position', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]),
- wbStruct('Rotation', [
- wbFloat('X', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Y', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize),
- wbFloat('Z', cpNormal, True, wbRotationFactor, wbRotationScale, nil, RadiansNormalize)
- ])
- ], cpNormal, True);
-
- wbMODL :=
- wbRStructSK([0], 'Model', [
- wbString(MODL, 'Model Filename'),
- wbFloat(MODB, 'Bound Radius', cpBenign),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore)
-// wbArray(MODT, 'Unknown',
-// wbByteArray('Unknown', 24, cpBenign),
-// 0, nil, cpBenign)
- ], []);
-
- wbSCRI := wbFormIDCk(SCRI, 'Script', [SCPT]);
- wbENAM := wbFormIDCk(ENAM, 'Enchantment', [ENCH]);
-
- wbXLOD := wbArray(XLOD, 'Distant LOD Data', wbFloat('Unknown'), 3);
- wbXESP := wbStruct(XESP, 'Enable Parent', [
- wbFormIDCk('Reference', [PLYR, REFR, ACRE, ACHR]),
- wbInteger('Flags', itU8, wbFlags([
- 'Set Enable State to Opposite of Parent'
- ])),
- wbByteArray('Unused', 3)
- ]);
-
- wbRecord(ACHR, 'Placed NPC', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [NPC_], False, cpNormal, True),
- wbRStruct('Unused', [
- wbFormIDCk(XPCI, 'Unused', [CELL]),
- wbString(FULL, 'Unused')
- ], []),
- wbXLOD,
- wbXESP,
- wbFormIDCk(XMRC, 'Merchant container', [REFR], True),
- wbFormIDCk(XHRS, 'Horse', [ACRE], True),
- wbXRGD,
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo, cpNormal, False, wbREFRAfterLoad);
-
- wbXOWN := wbFormIDCk(XOWN, 'Owner', [FACT, NPC_]);
- wbXGLB := wbFormIDCk(XGLB, 'Global variable', [GLOB]);
-
- wbRecord(ACRE, 'Placed Creature', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [CREA], False, cpNormal, True),
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32),
- wbXGLB
- ], []),
- wbXESP,
- wbXRGD,
- wbXSCL,
- wbDATAPosRot
- ], True, wbPlacedAddInfo);
-
- wbRecord(ACTI, 'Activator', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbFormIDCk(SNAM, 'Sound', [SOUN])
- ]);
-
- wbICON := wbString(ICON, 'Icon filename');
-
- wbActorValueEnum :=
- wbEnum([
- 'Strength',
- 'Intelligence',
- 'Willpower',
- 'Agility',
- 'Speed',
- 'Endurance',
- 'Personality',
- 'Luck',
- 'Health',
- 'Magicka',
- 'Fatigue',
- 'Encumbrance',
- 'Armorer',
- 'Athletics',
- 'Blade',
- 'Block',
- 'Blunt',
- 'Hand To Hand',
- 'Heavy Armor',
- 'Alchemy',
- 'Alteration',
- 'Conjuration',
- 'Destruction',
- 'Illusion',
- 'Mysticism',
- 'Restoration',
- 'Acrobatics',
- 'Light Armor',
- 'Marksman',
- 'Mercantile',
- 'Security',
- 'Sneak',
- 'Speechcraft',
- {33} 'Aggression',
- {34} 'Confidence',
- {35} 'Energy',
- {36} 'Responsibility',
- {37} 'Bounty',
- {38} 'Fame',
- {39} 'Infamy',
- {40} 'Magicka Multiplier',
- {41} 'Night Eye Bonus',
- {42} 'Attack Bonus',
- {43} 'Defend Bonus',
- {44} 'Casting Penalty',
- {45} 'Blindness',
- {46} 'Chameleon',
- {47} 'Invisibility',
- {48} 'Paralysis',
- {49} 'Silence',
- {50} 'Confusion',
- {51} 'Detect Item Range',
- {52} 'Spell Absorb Chance',
- {53} 'Spell Reflect Chance',
- {54} 'Swim Speed Multiplier',
- {55} 'Water Breathing',
- {56} 'Water Walking',
- {57} 'Stunted Magicka',
- {58} 'Detect Life Range',
- {59} 'Reflect Damage',
- {60} 'Telekinesis',
- {61} 'Resist Fire',
- {62} 'Resist Frost',
- {63} 'Resist Disease',
- {64} 'Resist Magic',
- {65} 'Resist Normal Weapons',
- {66} 'Resist Paralysis',
- {67} 'Resist Poison',
- {68} 'Resist Shock',
- {69} 'Vampirism',
- {70} 'Darkness',
- {71} 'Resist Water Damage'
- ], [
- -1, 'None'
- ]);
-
- wbSkillEnum :=
- wbEnum([
- 'Armorer',
- 'Athletics',
- 'Blade',
- 'Block',
- 'Blunt',
- 'Hand To Hand',
- 'Heavy Armor',
- 'Alchemy',
- 'Alteration',
- 'Conjuration',
- 'Destruction',
- 'Illusion',
- 'Mysticism',
- 'Restoration',
- 'Acrobatics',
- 'Light Armor',
- 'Marksman',
- 'Mercantile',
- 'Security',
- 'Sneak',
- 'Speechcraft'
- ], [
- -1, 'None'
- ]);
-
-
- wbEFID := wbInteger(EFID, 'Magic effect name', itU32, wbChar4, cpNormal, True);
-
- wbEFIDOBME := wbStringMgefCode(EFID, 'Magic Effect Code', 4, cpNormal, True);
-
- wbEFIT :=
- wbStructSK(EFIT, [4, 5], '', [
- wbInteger('Magic effect name', itU32, wbChar4),
- wbInteger('Magnitude', itU32),
- wbInteger('Area', itU32),
- wbInteger('Duration', itU32),
- wbInteger('Type', itU32, wbEnum(['Self', 'Touch', 'Target'])),
- wbInteger('Actor Value', itS32, wbActorValueEnum)
- ], cpNormal, True, nil, -1, wbEFITAfterLoad);
-
- wbEFITOBME :=
- wbStructSK(EFIT, [4, 5], '', [
- wbStringMgefCode('Magic Effect Code', 4),
- wbInteger('Magnitude', itU32),
- wbInteger('Area', itU32),
- wbInteger('Duration', itU32),
- wbInteger('Type', itU32, wbEnum(['Self', 'Touch', 'Target'])),
- wbUnion('Param #1', wbEFITOBMEParamDecider, [
- wbByteArray('Param #1 - Unknown Type', 4),
- wbFormID('Param #1 - FormID'),
- wbStringMgefCode('Param #1 - Magic Effect Code', 4),
- wbFormIDCk('Param #1 - Actor Value', [ACVA])
- ])
- ], cpNormal, True, nil, -1{, wbEFITAfterLoad});
-
- wbEFIX :=
- wbStructSK(EFIX, [3], '', [
- wbInteger('Override Mask', itU32, wbFlags([])),
- wbInteger('Flags', itU32, wbFlags([])),
- wbFloat('Base Cost'),
- wbUnion('Param #2', wbEFIXParamDecider, [
- wbByteArray('Param #2 - Unknown Type', 4),
- wbFormID('Param #2 - FormID'),
- wbStringMgefCode('Param #2 - Magic Effect Code', 4),
- wbFormIDCk('Param #2 - Actor Value', [ACVA])
- ])
- ], cpNormal, True, nil, -1, wbEFITAfterLoad);
-
- wbMagicSchoolEnum :=
- wbEnum([
- 'Alteration',
- 'Conjuration',
- 'Destruction',
- 'Illusion',
- 'Mysticism',
- 'Restoration'
- ]);
-
- wbSCIT :=
- wbRStructSK([0], 'Script effect', [
- wbStructSK(SCIT, [0], 'Script effect data', [
- wbFormIDCk('Script effect', [NULL, SCPT]),
- wbInteger('Magic school', itU32, wbMagicSchoolEnum),
- wbInteger('Visual effect name', itU32, wbChar4),
- wbInteger('Flags', itU8, wbFlags(['Hostile'])),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 1),
- wbFULLReq
- ], []);
-
- wbSCITOBME :=
- wbRStructSK([0], 'Script effect', [
- wbStructSK(SCIT, [0], 'Script effect data', [
- wbFormIDCk('Script effect', [NULL, SCPT]),
- wbInteger('Magic school', itU32, wbMagicSchoolEnum),
- wbStringMgefCode('Visual Effect Code', 4),
- wbInteger('Flags', itU8, wbFlags(['Hostile'])),
- wbByteArray('Unused', 3)
- ], cpNormal, True, nil, 1),
- wbFULLReq
- ], []);
-
-
- wbOBMEResolutionInfo := wbEnum(['None', 'FormID', 'Magic Effect Code', 'Actor Value']);
-
- wbEffects :=
- wbRUnion('Effects', [
- wbRStruct('Effects', [
- wbRStructs('Effects','Effect', [
- wbEFID,
- wbEFIT,
- wbSCIT
- ], [])
- ], []),
- wbRStruct('Effects', [
- wbRStructs('Effects','Effect', [
- wbStruct(EFME, 'Oblivion Magic Extender', [
- wbInteger('Record Version', itU8),
- wbStruct('OBME Version', [
- wbInteger('Beta', itU8),
- wbInteger('Minor', itU8),
- wbInteger('Major', itU8)
- ]),
- wbInteger('EFIT Param Info', itU8, wbOBMEResolutionInfo),
- wbInteger('EFIX Param Info', itU8, wbOBMEResolutionInfo),
- wbByteArray('Unused', $0A)
- ]),
- wbEFIDOBME,
- wbEFITOBME,
- wbSCITOBME,
- wbString(EFII, 'Icon'),
- wbEFIX
- ], []),
- wbEmpty(EFXX, 'Effects End Marker', cpNormal, True),
- wbFULLReq
- ], [])
- ], []);
-
- wbRecord(ALCH, 'Potion', [
- wbEDID,
- wbStruct(OBME, 'Oblivion Magic Extender', [
- wbInteger('Record Version', itU8),
- wbStruct('OBME Version', [
- wbInteger('Beta', itU8),
- wbInteger('Minor', itU8),
- wbInteger('Major', itU8)
- ]),
- wbByteArray('Unused', $1C)
- ], cpNormal, False, wbOBMEDontShow),
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbFloat(DATA, 'Weight', cpNormal, True),
- wbStruct(ENIT, '', [
- wbInteger('Value', itS32),
- wbInteger('Flags', itU8, wbFlags(['No auto-calculation', 'Food item'])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffects
- ]);
-
- wbRecord(AMMO, 'Ammunition', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbICON,
- wbFormIDCk(ENAM, 'Enchantment', [ENCH]),
- wbInteger(ANAM, 'Enchantment Points', itU16),
- wbStruct(DATA, '', [
- wbFloat('Speed'),
- wbInteger('Flags', itU8, wbFlags(['Ignores Normal Weapon Resistance'])),
- wbByteArray('Unused', 3),
- wbInteger('Value', itU32),
- wbFloat('Weight'),
- wbInteger('Damage', itU16)
- ], cpNormal, True)
- ]);
-
- wbRecord(ANIO, 'Animated Object', [
- wbEDID,
- wbMODL,
- wbFormIDCk(DATA, 'IDLE animation', [IDLE], False, cpNormal, True)
- ]);
-
- wbRecord(APPA, 'Alchemical Apparatus', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbStruct(DATA, '', [
- wbInteger('Type', itU8, wbEnum(['Mortar and Pestle', 'Alembic', 'Calcinator', 'Retort'])),
- wbInteger('Value', itU32),
- wbFloat('Weight'),
- wbFloat('Quality')
- ], cpNormal, True)
- ]);
-
- wbRecord(ARMO, 'Armor', [
- wbEDID,
- wbFULL,
- wbSCRI,
- wbENAM,
- wbInteger(ANAM, 'Enchantment Points', itU16),
- wbStruct(BMDT, '', [
- wbInteger('Biped Flags', itU16, wbFlags([
- {0x00000001} 'Head',
- {0x00000002} 'Hair',
- {0x00000004} 'Upper Body',
- {0x00000008} 'Lower Body',
- {0x00000010} 'Hand',
- {0x00000020} 'Foot',
- {0x00000040} 'Right Ring',
- {0x00000080} 'Left Ring',
- {0x00000100} 'Amulet',
- {0x00000200} 'Weapon',
- {0x00000400} 'Back Weapon',
- {0x00000800} 'Side Weapon',
- {0x00001000} 'Quiver',
- {0x00002000} 'Shield',
- {0x00004000} 'Torch',
- {0x00008000} 'Tail'
- ])),
- wbInteger('General Flags', itU8, wbFlags([
- {0x0001} 'Hide Rings',
- {0x0002} 'Hide Amulets',
- {0x0004} '',
- {0x0008} '',
- {0x0010} '',
- {0x0020} '',
- {0x0040} 'Non-Playable',
- {0x0080} 'Heavy armor'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbRStruct('Male biped model', [
- wbString(MODL, 'Model Filename'),
- wbFloat(MODB, 'Bound Radius', cpBenign),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbFloat(MO2B, 'Bound Radius', cpBenign),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbString(ICON, 'Male icon filename'),
- wbRStruct('Female biped model', [
- wbString(MOD3, 'Model Filename'),
- wbFloat(MO3B, 'Bound Radius', cpBenign),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbRStruct('Female world model', [
- wbString(MOD4, 'Model Filename'),
- wbFloat(MO4B, 'Bound Radius', cpBenign),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbString(ICO2, 'Female icon filename'),
- wbStruct(DATA, '', [
- wbInteger('Armor', itU16, wbDiv(100)),
- wbInteger('Value', itU32),
- wbInteger('Health', itU32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbRecord(BOOK, 'Book', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbENAM,
- wbInteger(ANAM, 'Enchantment Points', itU16),
- wbDESC,
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags(['Scroll', 'Can''t be taken'])),
- wbInteger('Teaches', itS8, wbSkillEnum),
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True)
- ], True);
-
- wbSPLO := wbFormIDCk(SPLO, 'Spell', [SPEL, LVSP]);
- wbSPLOs := wbRArrayS('Spells', wbSPLO);
-
- wbRecord(BSGN, 'Birthsign', [
- wbEDID,
- wbFULL,
- wbICON,
- wbDESC,
- wbSPLOs
- ]);
-
- wbRecord(CELL, 'Cell', [
- wbEDID,
- wbFULL,
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Is Interior Cell',
- {0x02} 'Has water',
- {0x04} 'Invert Fast Travel behavior',
- {0x08} 'Force hide land (exterior cell) / Oblivion interior (interior cell)',
- {0x10} '',
- {0x20} 'Public place',
- {0x40} 'Hand changed',
- {0x80} 'Behave like exterior'
- ]), cpNormal, True),
- wbStruct(XCLC, 'Grid', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32)
- ]),
- wbStruct(XCLL, 'Lighting', [
- wbStruct('Ambient Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Directional Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Fog Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fog Near'),
- wbFloat('Fog Far'),
- wbInteger('Directional Rotation XY', itS32),
- wbInteger('Directional Rotation Z', itS32),
- wbFloat('Directional Fade', cpNormal, False, 1, -1, nil, nil, 1.0),
- wbFloat('Fog Clip Dist')
- ]),
- wbArrayS(XCLR, 'Regions', wbFormIDCk('Region', [REGN])),
- wbInteger(XCMT, 'Music', itU8, wbMusicEnum),
- wbFloat(XCLW, 'Water Height', cpBenign),
- wbFormIDCk(XCCM, 'Climate', [CLMT]),
- wbFormIDCk(XCWT, 'Water', [WATR]),
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32),
- wbXGLB
- ], [XCLW, XCMT])
- ], True, wbCellAddInfo, cpNormal, False, wbCELLAfterLoad);
-
- wbServiceFlags :=
- wbFlags([
- {0x00000001} 'Weapons',
- {0x00000002} 'Armor',
- {0x00000004} 'Clothing',
- {0x00000008} 'Books',
- {0x00000010} 'Ingredients',
- {0x00000020} '',
- {0x00000040} '',
- {0x00000080} 'Lights',
- {0x00000100} 'Apparatus',
- {0x00000200} '',
- {0x00000400} 'Miscellaneous',
- {0x00000800} 'Spells',
- {0x00001000} 'Magic Items',
- {0x00002000} 'Potions',
- {0x00004000} 'Training',
- {0x00008000} '',
- {0x00010000} 'Recharge',
- {0x00020000} 'Repair'
- ]);
-
- wbSpecializationEnum := wbEnum(['Combat', 'Magic', 'Stealth']);
-
- wbRecord(CLAS, 'Class', [
- wbEDID,
- wbFULL,
- wbDESC,
- wbICON,
- wbStruct(DATA, '', [
- wbArrayS('Primary Attributes', wbInteger('Primary Attribute', itS32, wbActorValueEnum), 2),
- wbInteger('Specialization', itU32, wbSpecializationEnum),
- wbArrayS('Major Skills', wbInteger('Major Skill', itS32, wbActorValueEnum), 7),
- wbInteger('Flags', itU32, wbFlags(['Playable', 'Guard'])),
- wbInteger('Buys/Sells and Services', itU32, wbServiceFlags),
- wbInteger('Teaches', itS8, wbSkillEnum),
- wbInteger('Maximum training level', itU8),
- wbInteger('Unused', itU16)
- ], cpNormal, True, nil, 5)
- ]);
-
- wbRecord(CLMT, 'Climate', [
- wbEDID,
- wbArrayS(WLST, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR]),
- wbInteger('Chance', itS32)
- ])),
- wbString(FNAM, 'Sun Texture'),
- wbString(GNAM, 'Sun Glare Texture'),
- wbMODL,
- wbStruct(TNAM, 'Timing', [
- wbStruct('Sunrise', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbStruct('Sunset', [
- wbInteger('Begin', itU8, wbClmtTime),
- wbInteger('End', itU8, wbClmtTime)
- ]),
- wbInteger('Volatility', itU8),
- wbInteger('Moons / Phase Length', itU8, wbClmtMoonsPhaseLength)
- ], cpNormal, True)
- ]);
-
- wbRecord(CLOT, 'Clothing', [
- wbEDID,
- wbFULL,
- wbSCRI,
- wbENAM,
- wbInteger(ANAM, 'Enchantment Points', itU16),
- wbStruct(BMDT, '', [
- wbInteger('Biped Flags', itU16, wbFlags([
- {0x00000001} 'Head',
- {0x00000002} 'Hair',
- {0x00000004} 'Upper Body',
- {0x00000008} 'Lower Body',
- {0x00000010} 'Hand',
- {0x00000020} 'Foot',
- {0x00000040} 'Right Ring',
- {0x00000080} 'Left Ring',
- {0x00000100} 'Amulet',
- {0x00000200} 'Weapon',
- {0x00000400} 'Back Weapon',
- {0x00000800} 'Side Weapon',
- {0x00001000} 'Quiver',
- {0x00002000} 'Shield',
- {0x00004000} 'Torch',
- {0x00008000} 'Tail'
- ])),
- wbInteger('General Flags', itU8, wbFlags([
- {0x0001} 'Hide Rings',
- {0x0002} 'Hide Amulets',
- {0x0004} '',
- {0x0008} '',
- {0x0010} '',
- {0x0020} '',
- {0x0040} 'Non-Playable',
- {0x0080} '' {Heavy armor}
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbRStruct('Male biped model', [
- wbString(MODL, 'Model Filename'),
- wbFloat(MODB, 'Bound Radius', cpBenign),
- wbByteArray(MODT, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbRStruct('Male world model', [
- wbString(MOD2, 'Model Filename'),
- wbFloat(MO2B, 'Bound Radius', cpBenign),
- wbByteArray(MO2T, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbString(ICON, 'Male icon filename'),
- wbRStruct('Female biped model', [
- wbString(MOD3, 'Model Filename'),
- wbFloat(MO3B, 'Bound Radius', cpBenign),
- wbByteArray(MO3T, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbRStruct('Female world model', [
- wbString(MOD4, 'Model Filename'),
- wbFloat(MO4B, 'Bound Radius', cpBenign),
- wbByteArray(MO4T, 'Texture Files Hashes', 0, cpIgnore)
- ], []),
- wbString(ICO2, 'Female icon filename'),
- wbStruct(DATA, '', [
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbCNTO :=
- wbStructSK(CNTO, [0], 'Item', [
- wbFormIDCk('Item', [ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, LVLI, KEYM, CLOT, ALCH, APPA, LIGH]),
- wbInteger('Count', itS32)
- ]);
-
- wbCNTOs := wbRArrayS('Items', wbCNTO);
-
- wbRecord(CONT, 'Container', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbCNTOs,
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags(['', 'Respawns'])),
- wbFloat('Weight')
- ], cpNormal, True),
- wbFormIDCk(SNAM, 'Open sound', [SOUN]),
- wbFormIDCk(QNAM, 'Close sound', [SOUN])
- ]);
-
- wbCSDT := wbRStructSK([0], 'Sound Type', [
- wbInteger(CSDT, 'Type', itU32,wbEnum([
- {0x00} 'Left Foot',
- {0x01} 'Right Foot',
- {0x02} 'Left Back Foot',
- {0x03} 'Right Back Foot',
- {0x04} 'Idle',
- {0x05} 'Aware',
- {0x06} 'Attack',
- {0x07} 'Hit',
- {0x08} 'Death',
- {0x09} 'Weapon'
- ])),
- wbRArrayS('Sounds', wbRStructSK([0], 'Sound', [
- wbFormIDCk(CSDI, 'Sound', [SOUN], False, cpNormal, True),
- wbInteger(CSDC, 'Sound Chance', itU8, nil, cpNormal, True)
- ], []), cpNormal, True)
- ], []);
-
- wbCSDTs := wbRArrayS('Sound Types', wbCSDT);
-
- wbSoulGemEnum := wbEnum([
- {0} 'None',
- {1} 'Petty',
- {2} 'Lesser',
- {3} 'Common',
- {4} 'Greater',
- {5} 'Grand'
- ]);
-
- wbRecord(CREA, 'Creature', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbCNTOs,
- wbSPLOs,
- wbArrayS(NIFZ, 'Models', wbStringLC('Model')),
- wbByteArray(NIFT, 'Texture Files Hashes', 0, cpIgnore),
- wbStruct(ACBS, 'Configuration', [
- wbInteger('Flags', itU32, wbFlags([
- {0x000001} 'Biped',
- {0x000002} 'Essential',
- {0x000004} 'Weapon & Shield',
- {0x000008} 'Respawn',
- {0x000010} 'Swims',
- {0x000020} 'Flies',
- {0x000040} 'Walks',
- {0x000080} 'PC Level Offset',
- {0x000100} 'Unused', //??
- {0x000200} 'No Low Level Processing',
- {0x000400} 'Unused', //??
- {0x000800} 'No Blood Spray',
- {0x001000} 'No Blood Decal',
- {0x002000} '',
- {0x004000} '',
- {0x008000} 'No Head',
- {0x010000} 'No Right Arm',
- {0x020000} 'No Left Arm',
- {0x040000} 'No Combat in Water',
- {0x080000} 'No Shadow',
- {0x100000} 'No Corpse Check'
- ])),
- wbInteger('Base spell points', itU16),
- wbInteger('Fatigue', itU16),
- wbInteger('Barter gold', itU16),
- wbInteger('Level (offset)', itS16),
- wbInteger('Calc min', itU16),
- wbInteger('Calc max', itU16)
- ], cpNormal, True),
- wbRArrayS('Factions',
- wbStructSK(SNAM, [0], 'Faction', [
- wbFormIDCk('Faction', [FACT]),
- wbInteger('Rank', itU8),
- wbByteArray('Unused', 3)
- ])
- ),
- wbFormIDCk(INAM, 'Death item', [LVLI]),
- wbSCRI,
- wbStruct(AIDT, 'AI Data', [
- wbInteger('Aggression', itU8),
- wbInteger('Confidence', itU8),
- wbInteger('Energy Level', itU8),
- wbInteger('Responsibility', itU8),
- wbInteger('Buys/Sells and Services', itU32, wbServiceFlags),
- wbInteger('Teaches', itS8, wbSkillEnum),
- wbInteger('Maximum training level', itU8),
- wbByteArray('Unused', 2)
- ], cpNormal, True),
- wbRArray('AI Packages', wbFormIDCk(PKID, 'AI Package', [PACK])),
- wbArrayS(KFFZ, 'Animations', wbStringLC('Animation')),
- wbStruct(DATA, 'Creature Data', [
- wbInteger('Type', itU8, wbEnum([
- 'Creature',
- 'Daedra',
- 'Undead',
- 'Humanoid',
- 'Horse',
- 'Giant'
- ])),
- wbInteger('Combat Skill', itU8),
- wbInteger('Magic Skill', itU8),
- wbInteger('Stealth Skill', itU8),
- wbInteger('Soul', itU8, wbSoulGemEnum),
- wbByteArray('Unused', 1),
- wbInteger('Health', itU16),
- wbByteArray('Unused', 2),
- wbInteger('Attack Damage', itU16),
- wbInteger('Strength', itU8),
- wbInteger('Intelligence', itU8),
- wbInteger('Willpower', itU8),
- wbInteger('Agility', itU8),
- wbInteger('Speed', itU8),
- wbInteger('Endurance', itU8),
- wbInteger('Personality', itU8),
- wbInteger('Luck', itU8)
- ], cpNormal, True),
- wbInteger(RNAM, 'Attack reach', itU8, nil, cpNormal, True),
- wbFormIDCk(ZNAM, 'Combat Style', [CSTY]),
- wbFloat(TNAM, 'Turning Speed', cpNormal, True),
- wbFloat(BNAM, 'Base Scale', cpNormal, True),
- wbFloat(WNAM, 'Foot Weight', cpNormal, True),
- wbString(NAM0, 'Blood Spray'),
- wbString(NAM1, 'Blood Decal'),
- wbFormIDCk(CSCR, 'Inherits Sounds from', [CREA]),
- wbCSDTs
- ], True);
-
- wbRecord(CSTY, 'Combat Style', [
- wbEDID,
- wbStruct(CSTD, 'Standard', [
- {000}wbInteger('Dodge % Chance', itU8),
- {001}wbInteger('Left/Right % Chance', itU8),
- {002}wbByteArray('Unused', 2),
- {004}wbFloat('Dodge L/R Timer (min)'),
- {008}wbFloat('Dodge L/R Timer (max)'),
- {012}wbFloat('Dodge Forward Timer (min)'),
- {016}wbFloat('Dodge Forward Timer (max)'),
- {020}wbFloat('Dodge Back Timer Min'),
- {024}wbFloat('Dodge Back Timer Max'),
- {028}wbFloat('Idle Timer min'),
- {032}wbFloat('Idle Timer max'),
- {036}wbInteger('Block % Chance', itU8),
- {037}wbInteger('Attack % Chance', itU8),
- {038}wbByteArray('Unused', 2),
- {040}wbFloat('Recoil/Stagger Bonus to Attack'),
- {044}wbFloat('Unconscious Bonus to Attack'),
- {048}wbFloat('Hand-To-Hand Bonus to Attack'),
- {052}wbInteger('Power Attack % Chance', itU8),
- {053}wbByteArray('Unused', 3),
- {056}wbFloat('Recoil/Stagger Bonus to Power'),
- {060}wbFloat('Unconscious Bonus to Power Attack'),
- {064}wbInteger('Power Attack - Normal', itU8),
- {065}wbInteger('Power Attack - Forward', itU8),
- {066}wbInteger('Power Attack - Back', itU8),
- {067}wbInteger('Power Attack - Left', itU8),
- {068}wbInteger('Power Attack - Right', itU8),
- {069}wbByteArray('Unused', 3),
- {072}wbFloat('Hold Timer (min)'),
- {076}wbFloat('Hold Timer (max)'),
- {080}wbInteger('Flags 1', itU8, wbFlags([
- 'Advanced',
- 'Choose Attack using % Chance',
- 'Ignore Allies in Area',
- 'Will Yield',
- 'Rejects Yields',
- 'Fleeing Disabled',
- 'Prefers Ranged',
- 'Melee Alert OK'
- ])),
- {081}wbInteger('Acrobatic Dodge % Chance', itU8),
- {082}wbByteArray('Unused', 2),
- {084}wbFloat('Range Mult (Optimal)'),
- {088}wbFloat('Range Mult (Max)'),
- {092}wbFloat('Switch Distance (Melee)'),
- {096}wbFloat('Switch Distance (Ranged)'),
- {100}wbFloat('Buff standoff Distance'),
- {104}wbFloat('Ranged standoff Distance'),
- {108}wbFloat('Group standoff Distance'),
- {112}wbInteger('Rushing Attack % Chance', itU8),
- {113}wbByteArray('Unused', 3),
- {116}wbFloat('Rushing Attack Distance Mult'),
- {120}wbInteger('Flags 2', itU32, wbFlags([
- 'Do Not Acquire'
- ]))
- ], cpNormal, True, nil, 31),
- wbStruct(CSAD, 'Advanced', [
- wbFloat('Dodge Fatigue Mod Mult'),
- wbFloat('Dodge Fatigue Mod Base'),
- wbFloat('Encumb. Speed Mod Base'),
- wbFloat('Encumb. Speed Mod Mult'),
- wbFloat('Dodge While Under Attack Mult'),
- wbFloat('Dodge Not Under Attack Mult'),
- wbFloat('Dodge Back While Under Attack Mult'),
- wbFloat('Dodge Back Not Under Attack Mult'),
- wbFloat('Dodge Forward While Attacking Mult'),
- wbFloat('Dodge Forward Not Attacking Mult'),
- wbFloat('Block Skill Modifier Mult'),
- wbFloat('Block Skill Modifier Base'),
- wbFloat('Block While Under Attack Mult'),
- wbFloat('Block Not Under Attack Mult'),
- wbFloat('Attack Skill Modifier Mult'),
- wbFloat('Attack Skill Modifier Base'),
- wbFloat('Attack While Under Attack Mult'),
- wbFloat('Attack Not Under Attack Mult'),
- wbFloat('Attack During Block Mult'),
- wbFloat('Power Att. Fatigue Mod Base'),
- wbFloat('Power Att. Fatigue Mod Mult')
- ])
- ]);
-
- wbRecord(DIAL, 'Dialog Topic', [
- wbEDID,
- wbRArrayS('Quests', wbFormIDCk(QSTI, 'Quest', [QUST], False, cpBenign)),
- wbRArrayS('Quests?', wbFormIDCk(QSTR, 'Quest?', [QUST], False, cpBenign)),
- wbFULL,
- wbInteger(DATA, 'Type', itU8, wbEnum([
- {0} 'Topic',
- {1} 'Conversation',
- {2} 'Combat',
- {3} 'Persuasion',
- {4} 'Detection',
- {5} 'Service',
- {6} 'Miscellaneous'
- ]), cpNormal, True)
- ], True);
-
- wbRecord(DOOR, 'Door', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbFormIDCk(SNAM, 'Open sound', [SOUN]),
- wbFormIDCk(ANAM, 'Close sound', [SOUN]),
- wbFormIDCk(BNAM, 'Loop sound', [SOUN]),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- {0x01} 'Oblivion gate',
- {0x02} 'Automatic door',
- {0x04} 'Hidden',
- {0x08} 'Minimal use'
- ]), cpNormal, True),
- wbRArrayS('Random teleport destinations', wbFormIDCk(TNAM, 'Destination', [CELL, WRLD]))
- ]);
-
- wbBlendModeEnum := wbEnum([
- '',
- 'Zero',
- 'One',
- 'Source Color',
- 'Source Inverse Color',
- 'Source Alpha',
- 'Source Inverted Alpha',
- 'Dest Alpha',
- 'Dest Inverted Alpha',
- 'Dest Color',
- 'Dest Inverse Color',
- 'Source Alpha SAT'
- ]);
-
- wbBlendOpEnum := wbEnum([
- '',
- 'Add',
- 'Subtract',
- 'Reverse Subtract',
- 'Minimum',
- 'Maximum'
- ]);
- wbZTestFuncEnum := wbEnum([
- '',
- '',
- '',
- 'Equal To',
- 'Normal',
- 'Greater Than',
- '',
- 'Greater Than or Equal Than',
- 'Always Show'
- ]);
-
- wbRecord(EFSH, 'Effect Shader', [
- wbEDID,
- wbString(ICON, 'Fill Texture'),
- wbString(ICO2, 'Particle Shader Texture'),
- wbStruct(DATA, '', [
- wbInteger('Flags', itU8, wbFlags([
- {0} 'No Membrane Shader',
- {1} '',
- {2} '',
- {3} 'No Particle Shader',
- {4} 'Edge Effect - Inverse',
- {5} 'Membrane Shader - Affect Skin Only'
- ])),
- wbByteArray('Unused', 3),
- wbInteger('Membrane Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Membrane Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Membrane Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbStruct('Fill/Texture Effect - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Fill/Texture Effect - Alpha Fade In Time'),
- wbFloat('Fill/Texture Effect - Full Alpha Time'),
- wbFloat('Fill/Texture Effect - Alpha Fade Out Time'),
- wbFloat('Fill/Texture Effect - Presistent Alpha Ratio'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Amplitude'),
- wbFloat('Fill/Texture Effect - Alpha Pulse Frequency'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (U)'),
- wbFloat('Fill/Texture Effect - Texture Animation Speed (V)'),
- wbFloat('Edge Effect - Fall Off'),
- wbStruct('Edge Effect - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Edge Effect - Alpha Fade In Time'),
- wbFloat('Edge Effect - Full Alpha Time'),
- wbFloat('Edge Effect - Alpha Fade Out Time'),
- wbFloat('Edge Effect - Persistent Alpha Ratio'),
- wbFloat('Edge Effect - Alpha Pulse Amplitude'),
- wbFloat('Edge Effect - Alpha Pusle Frequence'),
- wbFloat('Fill/Texture Effect - Full Alpha Ratio'),
- wbFloat('Edge Effect - Full Alpha Ratio'),
- wbInteger('Membrane Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Source Blend Mode', itU32, wbBlendModeEnum),
- wbInteger('Particle Shader - Blend Operation', itU32, wbBlendOpEnum),
- wbInteger('Particle Shader - Z Test Function', itU32, wbZTestFuncEnum),
- wbInteger('Particle Shader - Dest Blend Mode', itU32, wbBlendModeEnum),
- wbFloat('Particle Shader - Particle Birth Ramp Up Time'),
- wbFloat('Particle Shader - Full Particle Birth Time'),
- wbFloat('Particle Shader - Particle Birth Ramp Down Time'),
- wbFloat('Particle Shader - Full Particle Birth Ratio'),
- wbFloat('Particle Shader - Persistant Particle Birth Ratio'),
- wbFloat('Particle Shader - Particle Lifetime'),
- wbFloat('Particle Shader - Particle Lifetime +/-'),
- wbFloat('Particle Shader - Initial Speed Along Normal'),
- wbFloat('Particle Shader - Acceleration Along Normal'),
- wbFloat('Particle Shader - Initial Velocity #1'),
- wbFloat('Particle Shader - Initial Velocity #2'),
- wbFloat('Particle Shader - Initial Velocity #3'),
- wbFloat('Particle Shader - Acceleration #1'),
- wbFloat('Particle Shader - Acceleration #2'),
- wbFloat('Particle Shader - Acceleration #3'),
- wbFloat('Particle Shader - Scale Key 1'),
- wbFloat('Particle Shader - Scale Key 2'),
- wbFloat('Particle Shader - Scale Key 1 Time'),
- wbFloat('Particle Shader - Scale Key 2 Time'),
- wbStruct('Color Key 1 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Color Key 2 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Color Key 3 - Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbFloat('Color Key 1 - Color Alpha'),
- wbFloat('Color Key 2 - Color Alpha'),
- wbFloat('Color Key 3 - Color Alpha'),
- wbFloat('Color Key 1 - Color Key Time'),
- wbFloat('Color Key 2 - Color Key Time'),
- wbFloat('Color Key 3 - Color Key Time')
- ], cpNormal, True, nil, 25)
- ]);
-
- wbRecord(ENCH, 'Enchantment', [
- wbEDID,
- wbStruct(OBME, 'Oblivion Magic Extender', [
- wbInteger('Record Version', itU8),
- wbStruct('OBME Version', [
- wbInteger('Beta', itU8),
- wbInteger('Minor', itU8),
- wbInteger('Major', itU8)
- ]),
- wbByteArray('Unused', $1C)
- ], cpNormal, False, wbOBMEDontShow),
- wbFULL,
- wbStruct(ENIT, '', [
- wbInteger('Type', itU32, wbEnum([
- {0} 'Scroll',
- {1} 'Staff',
- {2} 'Weapon',
- {3} 'Apparel'
- ])),
- wbInteger('Charge Amount', itU32),
- wbInteger('Enchant Cost', itU32),
- wbInteger('Flags', itU8, wbFlags(['Manual Enchant Cost (Autocalc Off)'])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffects
- ]);
-
- wbRecord(EYES, 'Eyes', [
- wbEDID,
- wbFULL,
- wbString(ICON, 'Texture', 0, cpNormal, True),
- wbInteger(DATA, 'Flags', itU8, wbFlags(['Playable']), cpNormal, True)
- ]);
-
- wbXNAM :=
- wbStructSK(XNAM, [0], 'Relation', [
- wbFormIDCk('Faction', [FACT, RACE]),
- wbInteger('Modifier', itS32)
- ]);
-
- wbXNAMs := wbRArrayS('Relations', wbXNAM);
-
- wbRecord(FACT, 'Faction', [
- wbEDID,
- wbFULL,
- wbXNAMs,
- wbInteger(DATA, 'Flags', itU8, wbFlags(['Hidden from Player', 'Evil', 'Special Combat']), cpNormal, True),
- wbFloat(CNAM, 'Crime Gold Multiplier', cpNormal, True, 1, -1, nil, nil, 1.0),
- wbRStructsSK('Ranks', 'Rank', [0], [
- wbInteger(RNAM, 'Rank#', itS32),
- wbString(MNAM, 'Male', 0, cpTranslate),
- wbString(FNAM, 'Female', 0, cpTranslate),
- wbString(INAM, 'Insignia')
- ], [])
- ]);
-
- wbRecord(FLOR, 'Flora', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbFormIDCk(PFIG, 'Ingredient', [INGR]),
- wbStruct(PFPC, 'Seasonal ingredient production', [
- wbInteger('Spring', itU8),
- wbInteger('Summer ', itU8),
- wbInteger('Fall', itU8),
- wbInteger('Winter', itU8)
- ], cpNormal, True)
- ]);
-
- wbRecord(FURN, 'Furniture', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbSCRI,
- wbByteArray(MNAM, 'Marker Flags', 0, cpNormal, True)
- ]);
-
- wbRecord(GLOB, 'Global', [
- wbEDID,
- wbInteger(FNAM, 'Type', itU8, wbGLOBFNAM, nil, cpNormal, True),
- wbFloat(FLTV, 'Value', cpNormal, True)
- ]);
-
- wbRecord(GMST, 'Game Setting', [
- wbEDID,
- wbUnion(DATA, 'Value', wbGMSTUnionDecider, [
- wbString('', 0, cpTranslate),
- wbInteger('', itS32),
- wbFloat('')
- ], cpNormal, True)
- ]);
-
- wbRecord(GRAS, 'Grass', [
- wbEDID,
- wbMODL,
- wbStruct(DATA, '', [
- wbInteger('Density', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbByteArray('Unused', 1),
- wbInteger('Unit from water amount', itU16),
- wbByteArray('Unused', 2),
- wbInteger('Unit from water type', itU32, wbEnum([
- 'Above - At Least',
- 'Above - At Most',
- 'Below - At Least',
- 'Below - At Most',
- 'Either - At Least',
- 'Either - At Most',
- 'Either - At Most Above',
- 'Either - At Most Below'
- ])),
- wbFloat('Position Range'),
- wbFloat('Height Range'),
- wbFloat('Color Range'),
- wbFloat('Wave Period'),
- wbInteger('Flags', itU8, wbFlags([
- 'Vertex Lighting',
- 'Uniform Scaling',
- 'Fit to Slope'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True)
- ]);
-
- wbRecord(HAIR, 'Hair', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbString(ICON, 'Texture', 0, cpNormal, True),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- 'Playable',
- 'Not Male',
- 'Not Female',
- 'Fixed'
- ]), cpNormal, True)
- ]);
-
- wbCrimeTypeEnum :=
- wbEnum([
- 'Steal',
- 'Pickpocket',
- 'Trespass',
- 'Attack',
- 'Murder',
- 'Steal Horse'
- ], [
- -1, 'None'
- ]);
-
- wbFormTypeEnum :=
- wbEnum([], [
- $03, 'Game Setting',
- $04, 'Global',
- $05, 'Class',
- $06, 'Faction',
- $07, 'Hair',
- $08, 'Eyes',
- $09, 'Race',
- $0A, 'Sound',
- $0B, 'Skill',
- $0C, 'Magic Effect',
- $0D, 'Script',
- $0E, 'Land Texture',
- $0F, 'Enchantment',
- $10, 'Spell',
- $11, 'BirthSign',
- $12, 'Activator',
- $13, 'Apparatus',
- $14, 'Armor',
- $15, 'Book',
- $16, 'Clothing',
- $17, 'Container',
- $18, 'Door',
- $19, 'Ingredient',
- $1A, 'Light',
- $1B, 'Misc',
- $1C, 'Static',
- $1D, 'Grass',
- $1E, 'Tree',
- $1F, 'Flora',
- $20, 'Furniture',
- $21, 'Weapon',
- $22, 'Ammi',
- $23, 'NPC',
- $24, 'Creature',
- $25, 'Leveled Creature',
- $26, 'Soul Gem',
- $27, 'Key',
- $28, 'Alchemy',
- $29, 'SubSpace',
- $2A, 'Sigil Stone',
- $2B, 'Leveled Item',
- $2D, 'Weather',
- $2E, 'Climate',
- $2F, 'Region',
- $30, 'Cell',
- $31, 'Placed Object',
- $32, 'Placed NPC',
- $33, 'Placed Creature',
- $34, 'Path Grid',
- $35, 'Worldspace',
- $36, 'Landscape',
- $38, 'Road',
- $39, 'Dialog Topic',
- $3A, 'Dialog Response',
- $3B, 'Quest',
- $3C, 'Idle Animation',
- $3D, 'Package',
- $3E, 'Combat Style',
- $3F, 'Load Screen',
- $40, 'Leveled Spell',
- $41, 'Animated Object',
- $42, 'Water',
- $43, 'Effect Shader'
- ]);
-
- wbSexEnum :=
- wbEnum(['Male','Female']);
-
- wbAxisEnum :=
- wbEnum([], [
- 88, 'X',
- 89, 'Y',
- 90, 'Z'
- ]);
-
- wbCTDA :=
- wbRUnion('Condition', [
- wbStruct(CTDA, 'Condition', [
- wbInteger('Type', itU8, wbCtdaType),
- wbByteArray('Unused', 3),
- wbUnion('Comparison Value', wbCTDACompValueDecider, [
- wbFloat('Comparison Value - Float'),
- wbFormIDCk('Comparison Value - Global', [GLOB])
- ]),
- wbInteger('Function', itU32, wbCTDAFunctionToStr, wbCTDAFunctionToInt),
- wbUnion('Parameter #1', wbCTDAParam1Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name (INVALID)', itS32),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbFormIDCk('Actor Value', [ACVA]),
-// {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {09} wbInteger('Quest Stage (INVALID)', itS32),
- {10} wbFormIDCk('Object Reference', [PLYR, REFR, ACHR, ACRE, TRGT]),
- {12} wbFormIDCk('Inventory Object', [ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH]),
- {13} wbFormIDCk('Actor', [PLYR, ACHR, ACRE, TRGT]),
- {14} wbFormIDCk('Quest', [QUST]),
- {15} wbFormIDCk('Faction', [FACT]),
- {16} wbFormIDCk('Cell', [CELL]),
- {17} wbFormIDCk('Class', [CLAS]),
- {18} wbFormIDCk('Race', [RACE]),
- {19} wbFormIDCk('Actor Base', [NPC_, CREA, ACTI]),
- {20} wbFormIDCk('Global', [GLOB]),
- {21} wbFormIDCk('Weather', [WTHR]),
- {22} wbFormIDCk('Package', [PACK]),
- {23} wbFormIDCk('Owner', [FACT, NPC_]),
- {24} wbFormIDCk('Birthsign', [BSGN]),
- {25} wbFormIDCk('Furniture', [FURN]),
- {26} wbFormIDCk('Magic Item', [SPEL]),
- {27} wbFormIDCk('Magic Effect', [MGEF]),
- {28} wbFormIDCk('Worldspace', [WRLD]),
- {29} wbFormIDCk('Referenceable Object', [CREA, NPC_, TREE, SBSP, LVLC, SOUN, ACTI, DOOR, FLOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH, GRAS])
- ]),
- wbUnion('Parameter #2', wbCTDAParam2Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name', itS32, wbCTDAParam2VariableNameToStr, wbCTDAParam2VariableNameToInt),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbFormIDCk('Actor Value', [ACVA]),
-// {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {09} wbInteger('Quest Stage', itS32, wbCTDAParam2QuestStageToStr, wbCTDAParam2QuestStageToInt),
- {10} wbFormIDCk('Object Reference', [PLYR, REFR, ACHR, ACRE, TRGT]),
- {12} wbFormIDCk('Inventory Object', [ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH]),
- {13} wbFormIDCk('Actor', [PLYR, ACHR, ACRE, TRGT]),
- {14} wbFormIDCk('Quest', [QUST]),
- {15} wbFormIDCk('Faction', [FACT]),
- {16} wbFormIDCk('Cell', [CELL]),
- {17} wbFormIDCk('Class', [CLAS]),
- {18} wbFormIDCk('Race', [RACE]),
- {19} wbFormIDCk('Actor Base', [NPC_, CREA, ACTI]),
- {20} wbFormIDCk('Global', [GLOB]),
- {21} wbFormIDCk('Weather', [WTHR]),
- {22} wbFormIDCk('Package', [PACK]),
- {23} wbFormIDCk('Owner', [FACT, NPC_]),
- {24} wbFormIDCk('Birthsign', [BSGN]),
- {25} wbFormIDCk('Furniture', [FURN]),
- {26} wbFormIDCk('Magic Item', [SPEL]),
- {27} wbFormIDCk('Magic Effect', [MGEF]),
- {28} wbFormIDCk('Worldspace', [WRLD]),
- {29} wbFormIDCk('Referenceable Object', [CREA, NPC_, TREE, SBSP, LVLC, SOUN, ACTI, DOOR, FLOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH, GRAS])
- ]),
- wbInteger('Unused', itU32, nil, cpIgnore)
- ], cpNormal, False, nil, 6),
- wbStruct(CTDT, 'Condition (old format)', [
- wbInteger('Type', itU8, wbCtdaType),
- wbByteArray('Unused', 3),
- wbUnion('Comparison Value', wbCTDACompValueDecider, [
- wbFloat('Comparison Value - Float'),
- wbFormIDCk('Comparison Value - Global', [GLOB])
- ]),
- wbInteger('Function', itU32, wbCTDAFunctionToStr, wbCTDAFunctionToInt),
- wbUnion('Parameter #1', wbCTDAParam1Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name (INVALID)', itS32),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbFormIDCk('Actor Value', [ACVA]),
-// {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {09} wbInteger('Quest Stage (INVALID)', itS32),
- {10} wbFormIDCk('Object Reference', [PLYR, REFR, ACHR, ACRE, TRGT]),
- {12} wbFormIDCk('Inventory Object', [ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH]),
- {13} wbFormIDCk('Actor', [PLYR, ACHR, ACRE, TRGT]),
- {14} wbFormIDCk('Quest', [QUST]),
- {15} wbFormIDCk('Faction', [FACT]),
- {16} wbFormIDCk('Cell', [CELL]),
- {17} wbFormIDCk('Class', [CLAS]),
- {18} wbFormIDCk('Race', [RACE]),
- {19} wbFormIDCk('Actor Base', [NPC_, CREA, ACTI]),
- {20} wbFormIDCk('Global', [GLOB]),
- {21} wbFormIDCk('Weather', [WTHR]),
- {22} wbFormIDCk('Package', [PACK]),
- {23} wbFormIDCk('Owner', [FACT, NPC_]),
- {24} wbFormIDCk('Birthsign', [BSGN]),
- {25} wbFormIDCk('Furniture', [FURN]),
- {26} wbFormIDCk('Magic Item', [SPEL]),
- {27} wbFormIDCk('Magic Effect', [MGEF]),
- {28} wbFormIDCk('Worldspace', [WRLD]),
- {29} wbFormIDCk('Referenceable Object', [CREA, NPC_, TREE, SBSP, LVLC, SOUN, ACTI, DOOR, FLOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH, GRAS])
- ]),
- wbUnion('Parameter #2', wbCTDAParam2Decider, [
- {00} wbByteArray('Unknown', 4),
- {01} wbByteArray('None', 4, cpIgnore),
- {02} wbInteger('Integer', itS32),
- {03} wbInteger('Variable Name', itS32, wbCTDAParam2VariableNameToStr, wbCTDAParam2VariableNameToInt),
- {04} wbInteger('Sex', itU32, wbSexEnum),
- {05} wbFormIDCk('Actor Value', [ACVA]),
-// {05} wbInteger('Actor Value', itS32, wbActorValueEnum),
- {06} wbInteger('Crime Type', itU32, wbCrimeTypeEnum),
- {07} wbInteger('Axis', itU32, wbAxisEnum),
- {08} wbInteger('Form Type', itU32, wbFormTypeEnum),
- {09} wbInteger('Quest Stage', itS32, wbCTDAParam2QuestStageToStr, wbCTDAParam2QuestStageToInt),
- {10} wbFormIDCk('Object Reference', [PLYR, REFR, ACHR, ACRE, TRGT]),
- {12} wbFormIDCk('Inventory Object', [ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH]),
- {13} wbFormIDCk('Actor', [PLYR, ACHR, ACRE, TRGT]),
- {14} wbFormIDCk('Quest', [QUST]),
- {15} wbFormIDCk('Faction', [FACT]),
- {16} wbFormIDCk('Cell', [CELL]),
- {17} wbFormIDCk('Class', [CLAS]),
- {18} wbFormIDCk('Race', [RACE]),
- {19} wbFormIDCk('Actor Base', [NPC_, CREA, ACTI]),
- {20} wbFormIDCk('Global', [GLOB]),
- {21} wbFormIDCk('Weather', [WTHR]),
- {22} wbFormIDCk('Package', [PACK]),
- {23} wbFormIDCk('Owner', [FACT, NPC_]),
- {24} wbFormIDCk('Birthsign', [BSGN]),
- {25} wbFormIDCk('Furniture', [FURN]),
- {26} wbFormIDCk('Magic Item', [SPEL]),
- {27} wbFormIDCk('Magic Effect', [MGEF]),
- {28} wbFormIDCk('Worldspace', [WRLD]),
- {29} wbFormIDCk('Referenceable Object', [CREA, NPC_, TREE, SBSP, LVLC, SOUN, ACTI, DOOR, FLOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH, GRAS])
- ]),
- wbEmpty('Unused', cpIgnore)
- ])
- ], []);
-
- wbCTDAs := wbRArray('Conditions', wbCTDA);
-
- wbSCHR :=
- wbRUnion('Basic Script Data', [
- wbStruct(SCHR, 'Basic Script Data', [
- wbByteArray('Unused', 4),
- wbInteger('RefCount', itU32),
- wbInteger('CompiledSize', itU32),
- wbInteger('VariableCount', itU32),
- wbInteger('Type', itU32, wbEnum([
- 'Object',
- 'Quest'
- ], [
- $100, 'Magic Effect'
- ]))
- ]),
- wbStruct(SCHD, 'Basic Script Data', [
- wbByteArray('Unused', 4),
- wbInteger('RefCount', itU32),
- wbInteger('CompiledSize', itU32),
- wbInteger('VariableCount', itU32),
- wbInteger('Type', itU32, wbEnum([
- 'Object',
- 'Quest'
- ], [
- $100, 'Magic Effect'
- ]))
- ])
- ], []);
-
- wbSCROs :=
- wbRArray('References',
- wbRUnion('', [
- wbFormIDCk(SCRO, 'Global Reference',
- [ACTI, DOOR, FLOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP,
- INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH, QUST, PLYR, PACK, LVLI,
- FACT, ACHR, REFR, ACRE, GLOB, DIAL, CELL, SOUN, MGEF, WTHR, CLAS, EFSH, RACE,
- LVLC, CSTY, WRLD, SCPT, BSGN, TREE, NULL]),
- wbInteger(SCRV, 'Local Variable', itU32)
- ], [])
- );
-
- wbResultScript := wbRStruct('Result Script', [
- wbSCHR,
- wbByteArray(SCDA, 'Compiled result script'),
- wbStringScript(SCTX, 'Result script source'),
- wbSCROs
- ], []);
-{
- wbResultScriptOld := wbRStruct('Result Script (Old Format?)', [
- wbByteArray(SCHD, 'Unknown (Script Header?)'),
- wbByteArray(SCDA, 'Compiled result script'),
- wbStringScript(SCTX, 'Result script source'),
- wbSCROs
- ], []);
-}
- wbRecord(IDLE, 'Idle Animation', [
- wbEDID,
- wbMODL,
- wbCTDAs,
- wbInteger(ANAM, 'Animation Group Section', itU8, wbIdleAnam, nil, cpNormal, True),
- wbArray(DATA, 'Related Idle Animations', wbFormIDCk('Related Idle Animation', [IDLE, NULL]), ['Parent', 'Previous Sibling'], cpNormal, True)
- ]);
-
- wbRecord(INFO, 'Dialog response', [
- wbStruct(DATA, '', [
- wbInteger('Type', itU8, wbEnum([
- {0} 'Topic',
- {1} 'Conversation',
- {2} 'Combat',
- {3} 'Persuasion',
- {4} 'Detection',
- {5} 'Service',
- {6} 'Miscellaneous'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- {0x0001} 'Goodbye',
- {0x0002} 'Random',
- {0x0004} 'Say Once',
- {0x0008} '',
- {0x0010} 'Info Refusal',
- {0x0020} 'Random End',
- {0x0040} 'Run for Rumors'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCk(QSTI, 'Quest', [QUST], False, cpNormal, True),
- wbFormIDCk(TPIC, 'Topic', [DIAL]),
- wbFormIDCk(PNAM, 'Previous INFO', [INFO, NULL]),
- wbRArray('Add topics', wbFormIDCk(NAME, 'Topic', [DIAL])),
- wbRArray('Responses',
- wbRStruct('Response', [
- wbStruct(TRDT, 'Response Data', [
- wbInteger('Emotion Type', itU32, wbEnum([
- {0} 'Neutral',
- {1} 'Anger',
- {2} 'Disgust',
- {3} 'Fear',
- {4} 'Sad',
- {5} 'Happy',
- {6} 'Surprise'
- ])),
- wbInteger('Emotion Value', itS32),
- wbByteArray('Unused', 4),
- wbInteger('Response number', itU8),
- wbByteArray('Unused', 3)
- ]),
- wbString(NAM1, 'Response Text', 0, cpTranslate),
- wbString(NAM2, 'Actor notes', 0, cpTranslate)
- ], [])
- ),
- wbCTDAs,
- wbRArray('Choices', wbFormIDCk(TCLT, 'Choice', [DIAL])),
- wbRArray('Link From', wbFormIDCk(TCLF, 'Topic', [DIAL])),
- wbResultScript
- ]);
-
- wbRecord(INGR, 'Ingredient', [
- wbEDID,
- wbStruct(OBME, 'Oblivion Magic Extender', [
- wbInteger('Record Version', itU8),
- wbStruct('OBME Version', [
- wbInteger('Beta', itU8),
- wbInteger('Minor', itU8),
- wbInteger('Major', itU8)
- ]),
- wbByteArray('Unused', $1C)
- ], cpNormal, False, wbOBMEDontShow),
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbFloat(DATA, 'Weight', cpNormal, True),
- wbStruct(ENIT, '', [
- wbInteger('Value', itS32),
- wbInteger('Flags', itU8, wbFlags(['No auto-calculation', 'Food item'])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffects
- ]);
-
- wbRecord(KEYM, 'Key', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbStruct(DATA, '', [
- wbInteger('Value', itS32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbQuadrantEnum := wbEnum([
- {0} 'Bottom Left',
- {1} 'Bottom Right',
- {2} 'Top Left',
- {3} 'Top Right'
- ]);
-
- if wbSimpleRecords then begin
-
- wbRecord(LAND, 'Landscape', [
- wbByteArray(DATA, 'Unknown'),
- wbByteArray(VNML, 'Vertex Normals'),
- wbByteArray(VHGT, 'Vertext Height Map'),
- wbByteArray(VCLR, 'Vertex Colours'),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ]),
- wbByteArray(VTXT, 'Alpha Layer Data')
- ], [])
- ], [])),
-
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL]))
- ]);
-
- end else begin
-
- wbRecord(LAND, 'Landscape', [
- wbByteArray(DATA, 'Unknown'),
-// wbStruct(DATA, '', [
-// wbInteger('Flags', itU8, wbFlags([])),
-// wbByteArray('Unknown')
-// ]),
- wbArray(VNML, 'Vertex Normals', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
- wbStruct(VHGT, 'Vertext Height Map', [
- wbFloat('Offset'),
- wbArray('Rows', wbStruct('Row', [
- wbArray('Columns', wbInteger('Column', itU8), 33)
- ]), 33),
- wbByteArray('Unused', 3)
- ]),
- wbArray(VCLR, 'Vertex Colours', wbStruct('Row', [
- wbArray('Columns', wbStruct('Column', [
- wbInteger('X', itU8),
- wbInteger('Y', itU8),
- wbInteger('Z', itU8)
- ]), 33)
- ]), 33),
-
- wbRArrayS('Layers', wbRUnion('Layer', [
- wbRStructSK([0],'Base Layer', [
- wbStructSK(BTXT, [1, 3], 'Base Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ])
- ], []),
- wbRStructSK([0],'Alpha Layer', [
- wbStructSK(ATXT, [1, 3], 'Alpha Layer Header', [
- wbFormIDCk('Texture', [LTEX, NULL]),
- wbInteger('Quadrant', itU8, wbQuadrantEnum),
- wbByteArray('Unused', 1),
- wbInteger('Layer', itS16)
- ]),
- wbArrayS(VTXT, 'Alpha Layer Data', wbStructSK([0], 'Cell', [
- wbInteger('Position', itU16, wbAtxtPosition),
- wbByteArray('Unused', 2),
- wbFloat('Opacity')
- ]))
- ], [])
- ], [])),
-
- wbArray(VTEX, 'Textures', wbFormIDCk('Texture', [LTEX, NULL]))
- ]);
-
- end;
-
- wbRecord(LIGH, 'Light', [
- wbEDID,
- wbMODL,
- wbSCRI,
- wbFULL,
- wbICON,
- wbStruct(DATA, '', [
- wbInteger('Time', itS32),
- wbInteger('Radius', itU32),
- wbStruct('Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbInteger('Unused', itU8)
- ]),
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Dynamic',
- {0x00000002} 'Can be Carried',
- {0x00000004} 'Negative',
- {0x00000008} 'Flicker',
- {0x00000010} 'Unused',
- {0x00000020} 'Off By Default',
- {0x00000040} 'Flicker Slow',
- {0x00000080} 'Pulse',
- {0x00000100} 'Pulse Slow',
- {0x00000200} 'Spot Light',
- {0x00000400} 'Spot Shadow'
- ])),
- wbFloat('Falloff Exponent'),
- wbFloat('FOV'),
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True, nil, 6),
- wbFloat(FNAM, 'Fade value', cpNormal, True, 1, -1, nil, nil, 1.0),
- wbFormIDCk(SNAM, 'Sound', [SOUN])
- ], False, nil, cpNormal, False, wbLIGHAfterLoad);
-
- wbRecord(LSCR, 'Load Screen', [
- wbEDID,
- wbICON,
- wbDESC,
- wbRArrayS('Locations', wbStructSK(LNAM, [0, 1], 'Location', [
- wbFormIDCk('Direct', [CELL, WRLD, NULL]),
- wbStructSK([0, 1], 'Indirect', [
- wbFormIDCk('World', [NULL, WRLD]),
- wbStructSK([0,1], 'Grid', [
- wbInteger('Y', itS16),
- wbInteger('X', itS16)
- ])
- ])
- ]))
- ]);
-
- wbRecord(LTEX, 'Landscape Texture', [
- wbEDID,
- wbICON,
- wbStruct(HNAM, 'Havok Data', [
- wbInteger('Material Type', itU8, wbEnum([
- {00} 'STONE',
- {01} 'CLOTH',
- {02} 'DIRT',
- {03} 'GLASS',
- {04} 'GRASS',
- {05} 'METAL',
- {06} 'ORGANIC',
- {07} 'SKIN',
- {08} 'WATER',
- {09} 'WOOD',
- {10} 'HEAVY STONE',
- {11} 'HEAVY METAL',
- {12} 'HEAVY WOOD',
- {13} 'CHAIN',
- {14} 'SNOW'
- ]), cpNormal, True, nil, nil, 2),
- wbInteger('Friction', itU8, nil, cpNormal, True, nil, nil, 30),
- wbInteger('Restitution', itU8, nil, cpNormal, True, nil, nil, 30)
- ], cpNormal, True),
- wbInteger(SNAM, 'Texture Specular Exponent', itU8, nil, cpNormal, True, False, nil, nil, 30),
- wbRArrayS('Grasses', wbFormIDCk(GNAM, 'Grass', [GRAS]))
- ]);
-
- wbRecord(LVLC, 'Leveled Creature', [
- wbEDID,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count'
- ]), cpNormal, True),
- wbRArrayS('Leveled List Entries',
- wbStructExSK(LVLO , [0, 2], [3], 'Leveled List Entry', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [NPC_, CREA, LVLC]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ], cpNormal, False, nil, 3),
- cpNormal, True),
- wbSCRI,
- wbFormIDCk(TNAM, 'Creature template', [NPC_, CREA])
- ], True, nil, cpNormal, False, wbLVLAfterLoad);
-
- wbRecord(LVLI, 'Leveled Item', [
- wbEDID,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count'
- ]), cpNormal, True),
- wbRArrayS('Leveled List Entries',
- wbStructExSK(LVLO , [0, 2], [3], 'Leveled List Entry', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, LVLI, KEYM, CLOT, ALCH, APPA, LIGH]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ], cpNormal, False, nil, 3),
- cpNormal, True),
- wbByteArray(DATA, 'Unused', 1)
- ], False, nil, cpNormal, False, wbLVLAfterLoad);
-
- wbRecord(LVSP, 'Leveled Spell', [
- wbEDID,
- wbInteger(LVLD, 'Chance none', itU8, nil, cpNormal, True),
- wbInteger(LVLF, 'Flags', itU8, wbFlags([
- {0x01} 'Calculate from all levels <= player''s level',
- {0x02} 'Calculate for each item in count',
- {0x04} 'Use all spells'
- ]), cpNormal, True),
- wbRArrayS('Leveled List Entries',
- wbStructExSK(LVLO , [0, 2], [3], 'Leveled List Entry', [
- wbInteger('Level', itS16),
- wbByteArray('Unused', 2),
- wbFormIDCk('Reference', [SPEL, LVSP]),
- wbInteger('Count', itS16),
- wbByteArray('Unused', 2)
- ], cpNormal, False, nil, 3),
- cpNormal, True)
- ], False, nil, cpNormal, False, wbLVLAfterLoad);
-
- wbRecord(MGEF, 'Magic Effect', [
- wbStringMgefCode(EDID, 'Magic Effect Code'),
- wbStruct(OBME, 'Oblivion Magic Extender', [
- wbInteger('Record Version', itU8),
- wbStruct('OBME Version', [
- wbInteger('Beta', itU8),
- wbInteger('Minor', itU8),
- wbInteger('Major', itU8)
- ]),
- wbInteger('Param A Info', itU8, wbOBMEResolutionInfo),
- wbInteger('Param B Info', itU8, wbOBMEResolutionInfo),
- wbByteArray('Unused', 2),
- wbString('Handler', 4),
- wbInteger('Flag Overrides', itU32, wbFlags([
- { 0} '',
- { 1} '',
- { 2} 'ParamFlagA',
- { 3} 'Beneficial',
- { 4} '',
- { 5} '',
- { 6} '',
- { 7} '',
- { 8} '',
- { 9} '',
- {10} '',
- {11} '',
- {12} '',
- {13} '',
- {14} '',
- {15} '',
- {16} 'ParamFlagB',
- {17} 'Magnitude Is Range',
- {18} 'Atomic Resistance',
- {19} 'ParamFlagC',
- {20} 'ParamFlagD',
- {21} '',
- {22} '',
- {23} '',
- {24} '',
- {25} '',
- {26} '',
- {27} '',
- {28} '',
- {29} '',
- {30} 'Hidden'
- ])),
- wbByteArray('ParamB', 4),
- wbByteArray('Unused', $1C)
- ], cpNormal, False, wbOBMEDontShow),
- wbString(EDDX, 'EditorID', 0, cpNormal, False, wbEDDXDontShow),
- wbFULL,
- wbDESC,
- wbICON,
- wbMODL,
- wbStruct(DATA, 'Data', [
- wbInteger('Flags', itU32, wbFlags([
- {0x00000001} 'Hostile',
- {0x00000002} 'Recover',
- {0x00000004} 'Detrimental',
- {0x00000008} 'Magnitude %',
- {0x00000010} 'Self',
- {0x00000020} 'Touch',
- {0x00000040} 'Target',
- {0x00000080} 'No duration',
- {0x00000100} 'No magnitude',
- {0x00000200} 'No area',
- {0x00000400} 'FX persist',
- {0x00000800} 'Spellmaking',
- {0x00001000} 'Enchanting',
- {0x00002000} 'No Ingredient',
- {0x00004000} '',
- {0x00008000} '',
- {0x00010000} 'Use weapon',
- {0x00020000} 'Use armor',
- {0x00040000} 'Use creature',
- {0x00080000} 'Use skill',
- {0x00100000} 'Use attribute',
- {0x00200000} '',
- {0x00400000} '',
- {0x00800000} '',
- {0x01000000} 'Use actor value',
- {0x02000000} 'Spray projectile type (or Fog if Bolt is specified as well)',
- {0x04000000} 'Bolt projectile type',
- {0x08000000} 'No hit effect'
- ])),
- wbFloat('Base cost'),
- wbUnion('Assoc. Item', wbMGEFFAssocItemDecider, [
- wbFormIDCk('Unused', [NULL]),
- wbFormIDCk('Assoc. Weapon', [WEAP]),
- wbFormIDCk('Assoc. Armor', [ARMO, NULL{?}]),
- wbFormIDCk('Assoc. Creature', [CREA, LVLC, NPC_]),
- wbInteger('Assoc. Actor Value', itS32, wbActorValueEnum)
- ]),
- wbInteger('Magic School', itS32, wbMagicSchoolEnum),
- wbInteger('Resist value', itS32, wbActorValueEnum),
- wbInteger('Counter Effect Count', itU16), //!!! must be updated automatically when ESCE length changes!
- wbByteArray('Unused', 2),
- wbFormIDCk('Light', [LIGH, NULL]),
- wbFloat('Projectile speed'),
- wbFormIDCk('Effect Shader', [EFSH, NULL]),
- wbFormIDCk('Enchant effect', [EFSH, NULL]),
- wbFormIDCk('Casting sound', [NULL, SOUN]),
- wbFormIDCk('Bolt sound', [NULL, SOUN]),
- wbFormIDCk('Hit sound', [NULL, SOUN]),
- wbFormIDCk('Area sound', [NULL, SOUN]),
- wbFloat('Constant Effect enchantment factor'),
- wbFloat('Constant Effect barter factor')
- ], cpNormal, True, nil, 10),
- wbArrayS(ESCE, 'Counter Effects', wbStringMgefCode('Counter Effect Code', 4){wbInteger('Counter Effect', itU32, wbChar4)})
- ], False, nil, cpNormal, False, wbMGEFAfterLoad);
-
- wbRecord(MISC, 'Misc. Item', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbStruct(DATA, '', [
- wbUnion('', wbMISCActorValueDecider, [
- wbInteger('Value', itS32),
- wbFormIDCk('Actor Value', [ACVA])
- ]),
- wbUnion('', wbMISCActorValueDecider, [
- wbFloat('Weight'),
- wbInteger('Group', itU32, wbEnum([], [
- $40E00000, ' [NONE]',
- $40400000, 'AI',
- $00000000, 'Attribute',
- $40C00000, 'Combat',
- $40A00000, 'Misc',
- $40000000, 'Skill',
- $40800000, 'Social',
- $3F800000, 'Stat'
- ]))
- ])
- ], cpNormal, True)
- ]);
-
- wbFaceGen := wbRStruct('FaceGen Data', [
- wbByteArray(FGGS, 'FaceGen Geometry-Symmetric', 0, cpNormal, True),
- wbByteArray(FGGA, 'FaceGen Geometry-Asymmetric', 0, cpNormal, True),
- wbByteArray(FGTS, 'FaceGen Texture-Symmetric', 0, cpNormal, True)
- ], [], cpNormal, True);
-
- wbRecord(NPC_, 'Non-Player Character', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbStruct(ACBS, 'Configuration', [
- wbInteger('Flags', itU32, wbFlags([
- {0x000001} 'Female',
- {0x000002} 'Essential',
- {0x000004} '',
- {0x000008} 'Respawn',
- {0x000010} 'Auto-calc stats',
- {0x000020} '',
- {0x000040} '',
- {0x000080} 'PC Level Offset',
- {0x000100} '',
- {0x000200} 'No Low Level Processing',
- {0x000400} '',
- {0x000800} '',
- {0x001000} '',
- {0x002000} 'No Rumors',
- {0x004000} 'Summonable',
- {0x008000} 'No Persuasion',
- {0x010000} '',
- {0x020000} '',
- {0x040000} '',
- {0x080000} '',
- {0x100000} 'Can Corpse Check'
- ])),
- wbInteger('Base spell points', itU16),
- wbInteger('Fatigue', itU16),
- wbInteger('Barter gold', itU16),
- wbInteger('Level (offset)', itS16),
- wbInteger('Calc min', itU16),
- wbInteger('Calc max', itU16)
- ], cpNormal, True),
- wbRArrayS('Factions',
- wbStructSK(SNAM, [0], 'Faction', [
- wbFormIDCk('Faction', [FACT]),
- wbInteger('Rank', itU8),
- wbByteArray('Unused', 3)
- ])
- ),
- wbFormIDCk(INAM, 'Death item', [LVLI]),
- wbFormIDCk(RNAM, 'Race', [RACE], False, cpNormal, True),
- wbCNTOs,
- wbSPLOs,
- wbSCRI,
- wbStruct(AIDT, 'AI Data', [
- wbInteger('Aggression', itU8),
- wbInteger('Confidence', itU8),
- wbInteger('Energy Level', itU8),
- wbInteger('Responsibility', itU8),
- wbInteger('Buys/Sells and Services', itU32, wbServiceFlags),
- wbInteger('Teaches', itS8, wbSkillEnum),
- wbInteger('Maximum training level', itU8),
- wbByteArray('Unused', 2)
- ], cpNormal, True),
- wbRArray('AI Packages', wbFormIDCk(PKID, 'AI Package', [PACK])),
- wbArrayS(KFFZ, 'Animations', wbString('Animation')),
- wbFormIDCk(CNAM, 'Class', [CLAS], False, cpNormal, True),
- wbStruct(DATA, 'Stats', [
- wbInteger('Armorer', itU8),
- wbInteger('Athletics', itU8),
- wbInteger('Blade', itU8),
- wbInteger('Block', itU8),
- wbInteger('Blunt', itU8),
- wbInteger('Hand to Hand', itU8),
- wbInteger('Heavy Armor', itU8),
- wbInteger('Alchemy', itU8),
- wbInteger('Alteration', itU8),
- wbInteger('Conjuration', itU8),
- wbInteger('Destruction', itU8),
- wbInteger('Illusion', itU8),
- wbInteger('Mysticism', itU8),
- wbInteger('Restoration', itU8),
- wbInteger('Acrobatics', itU8),
- wbInteger('Light Armor', itU8),
- wbInteger('Marksman', itU8),
- wbInteger('Mercantile', itU8),
- wbInteger('Security', itU8),
- wbInteger('Sneak', itU8),
- wbInteger('Speechcraft', itU8),
- wbInteger('Health', itU16),
- wbByteArray('Unused', 2),
- wbInteger('Strength', itU8),
- wbInteger('Intelligence', itU8),
- wbInteger('Willpower', itU8),
- wbInteger('Agility', itU8),
- wbInteger('Speed', itU8),
- wbInteger('Endurance', itU8),
- wbInteger('Personality', itU8),
- wbInteger('Luck', itU8)
- ], cpNormal, True),
- wbFormIDCk(HNAM, 'Hair', [HAIR]),
- wbFloat(LNAM, 'Hair length'),
- wbArray(ENAM, 'Eyes', wbFormIDCk('Eyes', [EYES])),
- wbStruct(HCLR, 'Hair color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCk(ZNAM, 'Combat Style', [CSTY]),
- wbFaceGen,
- wbByteArray(FNAM, 'Unknown', 0, cpBenign)
- ], True);
-
- wbPKDTFlags := wbFlags([
- {0x00000001} 'Offers services',
- {0x00000002} 'Must reach location',
- {0x00000004} 'Must complete',
- {0x00000008} 'Lock doors at package start',
- {0x00000010} 'Lock doors at package end',
- {0x00000020} 'Lock doors at location',
- {0x00000040} 'Unlock doors at package start',
- {0x00000080} 'Unlock doors at package end',
- {0x00000100} 'Unlock doors at location',
- {0x00000200} 'Continue if PC near',
- {0x00000400} 'Once per day',
- {0x00000800} 'Unused',
- {0x00001000} 'Skip fallout behavior',
- {0x00002000} 'Always run',
- {0x00004000} '',
- {0x00008000} '',
- {0x00010000} '',
- {0x00020000} 'Always sneak',
- {0x00040000} 'Allow swimming',
- {0x00080000} 'Allow falls',
- {0x00100000} 'Armor unequipped',
- {0x00200000} 'Weapons unequipped',
- {0x00400000} 'Defensive combat',
- {0x00800000} 'Use horse',
- {0x01000000} 'No idle anims',
- {0x02000000} '',
- {0x04000000} '',
- {0x08000000} '',
- {0x10000000} '',
- {0x20000000} '',
- {0x40000000} '',
- {0x80000000} ''
- ]);
-
- wbPKDTType := wbEnum([
- {0} 'Find',
- {1} 'Follow',
- {2} 'Escort',
- {3} 'Eat',
- {4} 'Sleep',
- {5} 'Wander',
- {6} 'Travel',
- {7} 'Accompany',
- {8} 'Use item at',
- {9} 'Ambush',
- {10} 'Flee not combat',
- {11} 'Cast magic'
- ]);
-
- wbRecord(PACK, 'AI Package', [
- wbEDID,
- wbUnion(PKDT, 'General', wbPACKPKDTDecider, [
- wbStruct('General', [
- wbInteger('Flags', itU16, wbPKDTFlags),
- wbInteger('Type', itU8, wbPKDTType),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('General', [
- wbInteger('Flags', itU32, wbPKDTFlags),
- wbInteger('Type', itU8, wbPKDTType),
- wbByteArray('Unused', 3)
- ])
- ]),
- wbStruct(PLDT, 'Location', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Near reference',
- {1} 'In cell',
- {2} 'Near current location',
- {3} 'Near editor location',
- {4} 'Object ID',
- {5} 'Object type'
- ])),
- wbUnion('Location', wbPxDTLocationDecider, [
- wbFormIDCk('Reference', [REFR, ACHR, ACRE, PLYR], True),
- wbFormIDCk('Cell', [CELL]),
- wbFormIDCk('Unused', [NULL]),
- wbFormIDCk('Unused', [NULL]),
- wbFormIDCk('Object ID', [ACTI, DOOR, FLOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH]),
- wbInteger('Object type', itU32)
- ]),
- wbInteger('Radius', itS32)
- ]),
- wbStruct(PSDT, 'Schedule', [
- wbInteger('Month', itS8),
- wbInteger('Day of week', itS8, wbEnum([
- 'Sundas',
- 'Morndas',
- 'Tirdas',
- 'Middas',
- 'Turdas',
- 'Fredas',
- 'Loredas',
- 'Morndas to Fredas',
- 'Loredas, Sundas',
- 'Morndas, Middas, Fredas',
- 'Tirdas, Turdas'
- ], [
- -1, 'Any'
- ])),
- wbInteger('Date', itU8),
- wbInteger('Time', itS8),
- wbInteger('Duration', itS32)
- ]),
- wbStruct(PTDT, 'Target', [
- wbInteger('Type', itS32, wbEnum([
- {0} 'Specific reference',
- {1} 'Object ID',
- {2} 'Object type'
- ])),
- wbUnion('Target', wbPxDTLocationDecider, [
- wbFormIDCk('Reference', [ACHR, ACRE, REFR, PLYR], True),
- wbFormIDCk('Object ID', [ACTI, DOOR, FLOR, STAT, FURN, CREA, SPEL, NPC_, CONT, ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH]),
- wbInteger('Object type', itU32)
- ]),
- wbInteger('Count', itS32)
- ]),
- wbCTDAs
- ]);
-
- wbPGRP :=
- wbArray(PGRP, 'Points', wbStruct('Point', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z (Even = Red/Orange, Odd = Blue)'),
- wbInteger('Connections', itU8{, wbPGRPConnectionsCallback}),
- wbByteArray('Unused', 3)
- ]), 0, nil, nil, cpNormal, True);
-
- {The Connection Count in the PGRP record specifies how many entries in this
- array belong to each point. If the first 4 points in the PGRP array have
- Connection Counts 2, 5, 2, 4 then the first 2 entries are the connections
- of point 0, then next 5 are the connections of point 1, the next 2 of point 2,
- the next 4 of point 3 and so on..., this can currently not be represented
- declaratively }
-
- wbRecord(PGRD, 'Path Grid', [
- wbInteger(DATA, 'Point Count', itU16, nil, cpNormal, True),
- wbPGRP,
- wbByteArray(PGAG, 'Unknown'),
- wbArray(PGRR, 'Point-to-Point Connections',
- wbArrayS('Point', wbInteger('Point', itU16), wbCalcPGRRSize{, cpNormal, False, wbPGRRPointAfterLoad})
- ),
- wbArrayS(PGRI, 'Inter-Cell Connections', wbStructSK([0,2,3,4], 'Inter-Cell Connection', [
- wbInteger('Point', itU16),
- wbByteArray('Unused', 2),
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]), 0, cpNormal, False, wbPGRIPointerAfterLoad),
- wbRArrayS('Point-to-Reference Mappings',
- wbStructSK(PGRL, [0], 'Point-to-Reference Mapping', [
- wbFormIDCk('Reference', [REFR]),
- wbArrayS('Points', wbInteger('Point', itU32))
- ])
- )
- ], False, nil, cpNormal, False, wbPGRDAfterLoad);
-
- wbRecord(QUST, 'Quest', [
- wbEDID,
- wbSCRI,
- wbFULL,
- wbICON,
- wbStruct(DATA, 'General', [
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Start game enabled',
- {0x02} '',
- {0x04} 'Allow repeated conversation topics',
- {0x08} 'Allow repeated stages'
- ])),
- wbInteger('Priority', itU8)
- ], cpNormal, True),
- wbCTDAs,
- wbRArrayS('Stages', wbRStructSK([0], 'Stage', [
- wbInteger(INDX, 'Stage index', itS16),
- wbRArray('Log Entries', wbRStruct('Log Entry', [
- wbInteger(QSDT, 'Stage Flags', itU8, wbFlags([
- {0x01} 'Complete quest'
- ])),
- wbCTDAs,
- wbString(CNAM, 'Log Entry', 0, cpTranslate),
- wbResultScript
- ], []))
- ], [])),
- wbRArray('Targets', wbRStruct('Target', [
- wbStruct(QSTA, 'Target', [
- wbFormIDCk('Target', [REFR, ACRE, ACHR], True),
- wbInteger('Flags', itU8, wbFlags([
- {0x01} 'Compass marker ignores locks'
- ])),
- wbByteArray('Unused', 3)
- ]),
- wbCTDAs
- ], []))
- ]);
-
- wbBodyDataIndex :=
- wbInteger(INDX, 'Index', itU32, wbEnum([
- 'Upper Body',
- 'Lower Body',
- 'Hand',
- 'Foot',
- 'Tail'
- ]));
-
- wbRecord(RACE, 'Race', [
- wbEDID,
- wbFULL,
- wbDESC,
- wbSPLOs,
- wbXNAMs,
- wbStruct(DATA, '', [
- wbArrayS('Skill Boosts', wbStructSK([0], 'Skill Boost', [
- wbInteger('Skill', itS8, wbActorValueEnum),
- wbInteger('Boost', itS8)
- ]), 7),
- wbByteArray('Unused', 2),
- wbFloat('Male Height'),
- wbFloat('Female Height'),
- wbFloat('Male Weight'),
- wbFloat('Female Weight'),
- wbInteger('Flags', itU32, wbFlags([
- 'Playable'
- ]))
- ], cpNormal, True),
- wbStruct(VNAM, 'Voice', [
- wbFormIDCk('Male', [RACE, NULL]),
- wbFormIDCk('Female', [RACE, NULL])
- ]),
- wbStruct(DNAM, 'Default Hair', [
- wbFormIDCk('Male', [HAIR]),
- wbFormIDCk('Female', [HAIR])
- ]),
- wbInteger(CNAM, 'Default Hair Color', itU8, nil, cpNormal, True),
- wbFloat(PNAM, 'FaceGen - Main clamp', cpNormal, True),
- wbFloat(UNAM, 'FaceGen - Face clamp', cpNormal, True),
- wbStruct(ATTR, 'Base Attributes', [
- wbStruct('Male', [
- wbInteger('Strength', itU8),
- wbInteger('Intelligence', itU8),
- wbInteger('Willpower', itU8),
- wbInteger('Agility', itU8),
- wbInteger('Speed', itU8),
- wbInteger('Endurance', itU8),
- wbInteger('Personality', itU8),
- wbInteger('Luck', itU8)
- ]),
- wbStruct('Female', [
- wbInteger('Strength', itU8),
- wbInteger('Intelligence', itU8),
- wbInteger('Willpower', itU8),
- wbInteger('Agility', itU8),
- wbInteger('Speed', itU8),
- wbInteger('Endurance', itU8),
- wbInteger('Personality', itU8),
- wbInteger('Luck', itU8)
- ])
- ]),
- wbRStruct('Face Data', [
- wbEmpty(NAM0, 'Face Data Marker'),
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbInteger(INDX, 'Index', itU32, wbEnum([
- 'Head',
- 'Ear (Male)',
- 'Ear (Female)',
- 'Mouth',
- 'Teeth (Lower)',
- 'Teeth (Upper)',
- 'Tongue',
- 'Eye (Left)',
- 'Eye (Right)'
- ])),
- wbMODL,
- wbICON
- ], []))
- ], [], cpNormal, True),
- wbEmpty(NAM1, 'Body Data Marker', cpNormal, True),
- wbRStruct('Male Body Data', [
- wbEmpty(MNAM, 'Male Body Data Marker'),
- wbMODL,
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbBodyDataIndex,
- wbICON
- ], []))
- ], [], cpNormal, True),
- wbRStruct('Female Body Data', [
- wbEmpty(FNAM, 'Female Body Data Marker'),
- wbMODL,
- wbRArrayS('Parts', wbRStructSK([0], 'Part', [
- wbBodyDataIndex,
- wbICON
- ], []))
- ], [], cpNormal, True),
- wbArrayS(HNAM, 'Hairs', wbFormIDCk('Hair', [HAIR]), 0, cpNormal, True),
- wbArrayS(ENAM, 'Eyes', wbFormIDCk('Eye', [EYES]), 0, cpNormal, True),
- wbFaceGen,
- wbByteArray(SNAM, 'Unknown', 2, cpNormal, True)
- ], True);
-
- wbRecord(REFR, 'Placed Object', [
- wbEDID,
- wbFormIDCk(NAME, 'Base', [TREE, SBSP, LVLC, SOUN, ACTI, DOOR, FLOR, STAT, FURN, CONT, ARMO, AMMO, MISC, WEAP, INGR, SLGM, SGST, BOOK, KEYM, CLOT, ALCH, APPA, LIGH, GRAS], False, cpNormal, True),
- wbStruct(XTEL, 'Teleport Destination', [
- wbFormIDCk('Door', [REFR], True),
- wbPosRot
- ]),
- wbStruct(XLOC, 'Lock information', [
- wbInteger('Lock Level', itU8),
- wbByteArray('Unused', 3),
- wbFormIDCk('Key', [KEYM, NULL]),
- wbUnion('Unused', wbXLOCFillerDecider, [
- wbEmpty('Unused'),
- wbByteArray('Unused', 4)
- ]),
- wbInteger('Flags', itU8, wbFlags(['', '', 'Leveled Lock'])),
- wbByteArray('Unused', 3)
- ]),
- wbRStruct('Ownership', [
- wbXOWN,
- wbInteger(XRNK, 'Faction rank', itS32),
- wbXGLB
- ], [XLOC]),
- wbXESP,
- wbFormIDCk(XTRG, 'Target', [REFR, ACHR, ACRE], True),
- wbUnion(XSED, '', wbREFRXSEDDecider, [
- wbInteger('SpeedTree Seed', itU8),
- wbInteger('SpeedTree Seed (old format)', itU8{itU32 CS just cuts it off...})
- ]),
- wbXLOD,
- wbFloat(XCHG, 'Charge'),
- wbInteger(XHLT, 'Health', itS32),
- wbRStruct('Unused', [
- wbFormIDCk(XPCI, 'Unused', [CELL]),
- wbString(FULL, 'Unused')
- ], []),
- wbInteger(XLCM, 'Level Modifier', itS32),
- wbFormIDCk(XRTM, 'Unknown', [REFR]),
- wbInteger(XACT, 'Action Flag', itU32, wbFlags([
- 'Use Default',
- 'Activate',
- 'Open',
- 'Open by Default'
- ])),
- wbInteger(XCNT, 'Count', itS32),
- wbRStruct('Map Marker', [
- wbEmpty(XMRK, 'Map Marker Start Marker'),
- wbInteger(FNAM, 'Map Flags', itU8, wbFlags([
- {0x01} 'Visible',
- {0x02} 'Can Travel To'
- ]), cpNormal, True),
- wbFULLReq,
- wbStruct(TNAM, '', [
- wbInteger('Type', itU8, wbEnum([
- {0x00} 'None?',
- {0x01} 'Camp',
- {0x02} 'Cave',
- {0x03} 'City',
- {0x04} 'Elven Ruin',
- {0x05} 'Fort Ruin',
- {0x06} 'Mine',
- {0x07} 'Landmark',
- {0x08} 'Tavern',
- {0x09} 'Settlement',
- {0x0A} 'Daedric Shrine',
- {0x0B} 'Oblivion Gate',
- {0x0C} 'Unknown? (door icon)'
- ])),
- wbByteArray('Unused', 1)
- ], cpNormal, True)
- ], []),
- wbEmpty(ONAM, 'Open by Default'),
- wbXSCL,
- wbInteger(XSOL, 'Contained Soul', itU8, wbSoulGemEnum),
- wbDATAPosRot
- ], True, wbPlacedAddInfo, cpNormal, False, wbREFRAfterLoad);
-
- wbRecord(REGN, 'Region', [
- wbEDID,
- wbICON,
- wbStruct(RCLR, 'Map Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ], cpNormal, True),
- wbFormIDCk(WNAM, 'Worldspace', [WRLD]),
-
- wbRArray('Region Areas', wbRStruct('Region Area', [
- wbInteger(RPLI, 'Edge Fall-off', itU32),
- wbArray(RPLD, 'Region Point List Data', wbStruct('Point', [
- wbFloat('X'),
- wbFloat('Y')
- ]), 0, wbRPLDAfterLoad)
- ], []), cpNormal, True),
-
- wbRArrayS('Region Data Entries', wbRStructSK([0], 'Region Data Entry', [
- {always starts with an RDAT}
- wbStructSK(RDAT, [0], 'Data Header', [
- wbInteger('Type', itU32, wbEnum([
- {0}'',
- {1}'',
- {2}'Objects',
- {3}'Weather',
- {4}'Map',
- {5}'',
- {6}'Grass',
- {7}'Sound',
- {8}'',
- {9}''
- ])),
- wbInteger('Flags', itU8, wbFlags([
- 'Override'
- ])),
- wbInteger('Priority', itU8),
- wbByteArray('Unused', 2)
- ], cpNormal, True, nil, 3),
-
- {followed by one of these: }
-
- {--- Objects ---}
- wbArray(RDOT, 'Objects', wbStruct('Object', [
- wbFormIDCk('Object', [TREE, FLOR, STAT, LTEX]),
- wbInteger('Parent Index', itU16, wbHideFFFF),
- wbByteArray('Unused', 2),
- wbFloat('Density'),
- wbInteger('Clustering', itU8),
- wbInteger('Min Slope', itU8),
- wbInteger('Max Slope', itU8),
- wbInteger('Flags', itU8, wbFlags([
- {0}'Conform to slope',
- {1}'Paint Vertices',
- {2}'Size Variance +/-',
- {3}'X +/-',
- {4}'Y +/-',
- {5}'Z +/-',
- {6}'Tree',
- {7}'Huge Rock'
- ])),
- wbInteger('Radius wrt Parent', itU16),
- wbInteger('Radius', itU16),
- wbByteArray('Unknown', 4),
- wbFloat('Max Height'),
- wbFloat('Sink'),
- wbFloat('Sink Variance'),
- wbFloat('Size Variance'),
- wbStruct('Angle Variance', [
- wbInteger('X', itU16),
- wbInteger('Y', itU16),
- wbInteger('Z', itU16)
- ]),
- wbByteArray('Unused', 2),
- wbByteArray('Unknown', 4)
- ])),
-
- {--- Map ---}
- wbString(RDMP, 'Map Name', 0, cpTranslate),
-
- {--- Grass ---}
- wbArrayS(RDGS, 'Grasses', wbStructSK([0], 'Grass', [
- wbFormIDCk('Grass', [GRAS]),
- wbByteArray('Unused', 4)
- ])),
-
- {--- Sound ---}
- wbInteger(RDMD, 'Music Type', itU32, wbMusicEnum),
- wbArrayS(RDSD, 'Sounds', wbStructSK([0], 'Sound', [
- wbFormIDCk('Sound', [SOUN]),
- wbInteger('Flags', itU32, wbFlags([
- 'Pleasant',
- 'Cloudy',
- 'Rainy',
- 'Snowy'
- ])),
- wbInteger('Chance', itU32, wbScaledInt4ToStr, wbScaledInt4ToInt)
- ])),
-
- {--- Weather ---}
- wbArrayS(RDWT, 'Weather Types', wbStructSK([0], 'Weather Type', [
- wbFormIDCk('Weather', [WTHR]),
- wbInteger('Chance', itU32)
- ]))
- ], []))
- ], True);
-
- wbRecord(ROAD, 'Road', [
- wbPGRP,
- wbArray(PGRR, 'Point-to-Point Connections (complex structure can''t be represented, see source)',
- {The Connection Count in the PGRP record specifies how many entries in this
- array belong to each point. If the first 4 points in the PGRP array have
- Connection Counts 2, 5, 2, 4 then the first 2 entries are the connections
- of point 0, then next 5 are the connections of point 1, the next 2 of point 2,
- the next 4 of point 3 and so on..., this can currently not be represented
- declaratively }
- wbStruct('Point', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ]), 0, nil, nil, cpNormal, True)
- ]);
-
- wbRecord(SBSP, 'Subspace', [
- wbEDID,
- wbStruct(DNAM, '', [
- wbFloat('X'),
- wbFloat('Y'),
- wbFloat('Z')
- ], cpNormal, True)
- ]);
-
- wbSLSD := wbStructSK(SLSD, [0], 'Local Variable Data', [
- wbInteger('Index', itU32),
- wbByteArray('Unused', 12),
- wbInteger('Flags', itU8, wbFlags(['IsLongOrShort']), cpCritical),
- wbByteArray('Unused')
- ]);
-
- wbRecord(SCPT, 'Script', [
- wbEDID,
- wbByteArray(SCHD, 'Unknown (Script Header?)'),
- wbSCHR,
- wbByteArray(SCDA, 'Compiled Script'),
- wbStringScript(SCTX, 'Script Source', 0, cpNormal, True),
- wbRArrayS('Local Variables', wbRStructSK([0], 'Local Variable', [
- wbSLSD,
- wbString(SCVR, 'Name', 0, cpCritical)
- ], [])),
- wbSCROs
- ]);
-
- wbRecord(SGST, 'Sigil Stone', [
- wbEDID,
- wbStruct(OBME, 'Oblivion Magic Extender', [
- wbInteger('Record Version', itU8),
- wbStruct('OBME Version', [
- wbInteger('Beta', itU8),
- wbInteger('Minor', itU8),
- wbInteger('Major', itU8)
- ]),
- wbByteArray('Unused', $1C)
- ], cpNormal, False, wbOBMEDontShow),
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbEffects,
- wbStruct(DATA, '', [
- wbInteger('Uses ', itU8),
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True)
- ]);
-
- wbRecord(SKIL, 'Skill', [
- wbEDID,
- wbInteger(INDX, 'Skill', itS32, wbActorValueEnum, cpNormal, True),
- wbDESC,
- wbICON,
- wbStruct(DATA, 'Skill Data', [
- wbInteger('Action', itS32, wbActorValueEnum),
- wbInteger('Attribute', itS32, wbActorValueEnum),
- wbInteger('Specialization', itU32, wbSpecializationEnum),
- wbArray('Use Values', wbFloat('Use Value'), 2)
- ], cpNormal, True),
- wbString(ANAM, 'Apprentice Text', 0, cpTranslate, True),
- wbString(JNAM, 'Journeyman Text', 0, cpTranslate, True),
- wbString(ENAM, 'Expert Text', 0, cpTranslate, True),
- wbString(MNAM, 'Master Text', 0, cpTranslate, True)
- ]);
-
- wbRecord(SLGM, 'Soul Gem', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbStruct(DATA, '', [
- wbInteger('Value', itU32),
- wbFloat('Weight')
- ], cpNormal, True),
- wbInteger(SOUL, 'Contained Soul', itU8, wbSoulGemEnum, cpNormal, True),
- wbInteger(SLCP, 'Maximum Capacity', itU8, wbSoulGemEnum, cpNormal, True)
- ]);
-
- wbRecord(SOUN, 'Sound', [
- wbEDID,
- wbString(FNAM, 'Sound Filename'),
- wbRUnion('Sound Data', [
- wbStruct(SNDX, 'Sound Data', [
- wbInteger('Minimum attentuation distance', itU8, wbMul(5)),
- wbInteger('Maximum attentuation distance', itU8, wbMul(100)),
- wbInteger('Frequency adjustment %', itS8),
- wbByteArray('Unused', 1),
- wbInteger('Flags', itU16, wbFlags([
- {0x0001} 'Random Frequency Shift',
- {0x0002} 'Play At Random',
- {0x0004} 'Environment Ignored',
- {0x0008} 'Random Location',
- {0x0010} 'Loop',
- {0x0020} 'Menu Sound',
- {0x0040} '2D',
- {0x0080} '360 LFE'
- ])),
- wbByteArray('Unused', 2),
- wbInteger('Static attentuation cdB', itS16),
- wbInteger('Stop time ', itU8),
- wbInteger('Start time ', itU8)
- ], cpNormal, True),
- wbStruct(SNDD, 'Sound Data', [
- wbInteger('Minimum attentuation distance', itU8, wbMul(5)),
- wbInteger('Maximum attentuation distance', itU8, wbMul(100)),
- wbInteger('Frequency adjustment %', itS8),
- wbByteArray('Unused', 1),
- wbInteger('Flags', itU16, wbFlags([
- {0x0001} 'Random Frequency Shift',
- {0x0002} 'Play At Random',
- {0x0004} 'Environment Ignored',
- {0x0008} 'Random Location',
- {0x0010} 'Loop',
- {0x0020} 'Menu Sound',
- {0x0040} '2D',
- {0x0080} '360 LFE'
- ])),
- wbByteArray('Unused', 2),
- wbEmpty('Unused'),
- wbEmpty('Unused'),
- wbEmpty('Unused')
- ], cpNormal, True)
- ], [], cpNormal, True)
- ]);
-
- wbRecord(SPEL, 'Spell', [
- wbEDID,
- wbStruct(OBME, 'Oblivion Magic Extender', [
- wbInteger('Record Version', itU8),
- wbStruct('OBME Version', [
- wbInteger('Beta', itU8),
- wbInteger('Minor', itU8),
- wbInteger('Major', itU8)
- ]),
- wbByteArray('Unused', $1C)
- ], cpNormal, False, wbOBMEDontShow),
- wbFULL,
- wbStruct(SPIT, '', [
- wbInteger('Type', itU32, wbEnum([
- {0} 'Spell',
- {1} 'Disease',
- {2} 'Power',
- {3} 'Lesser Power',
- {4} 'Ability',
- {5} 'Poison'
- ])),
- wbInteger('Cost', itU32),
- wbInteger('Level', itU32, wbEnum([
- {0} 'Novice',
- {1} 'Apprentice',
- {2} 'Journeyman',
- {3} 'Expert',
- {4} 'Master'
- ])),
- wbInteger('Flags', itU8, wbFlags([
- {0x00000001} 'Manual Spell Cost',
- {0x00000002} 'Immune to Silence 1',
- {0x00000004} 'Player Start Spell',
- {0x00000008} 'Immune to Silence 2',
- {0x00000010} 'Area Effect Ignores LOS',
- {0x00000020} 'Script Effect Always Applies',
- {0x00000040} 'Disallow Spell Absorb/Reflect',
- {0x00000080} 'Touch Spell Explodes w/ no Target'
- ])),
- wbByteArray('Unused', 3)
- ], cpNormal, True),
- wbEffects
- ]);
-
- wbRecord(STAT, 'Static', [
- wbEDID,
- wbMODL
- ]);
-
- wbRecord(TES3, 'Main File Header', [
- wbStruct(HEDR, 'Header', [
- wbFloat('Version'),
- wbInteger('Number of Records', itU32),
- wbInteger('Next Object ID', itU32)
- ], cpNormal, True),
- wbByteArray(OFST, 'Unknown', 0, cpIgnore),
- wbByteArray(DELE, 'Unknown', 0, cpIgnore),
- wbString(CNAM, 'Author', 0, cpTranslate, True),
- wbString(SNAM, 'Description', 0, cpTranslate),
- wbRArray('Master Files', wbRStruct('Master File', [
- wbString(MAST, 'Filename', 0, cpNormal, True),
- wbByteArray(DATA, 'Unused', 8, cpIgnore, True)
- ], []))
- ], False, nil, cpNormal, True, wbRemoveOFST);
-
- wbRecord(TREE, 'Tree', [
- wbEDID,
- wbMODL,
- wbICON,
- wbArrayS(SNAM, 'SpeedTree Seeds', wbInteger('SpeedTree Seed', itU32)),
- wbStruct(CNAM, 'Tree Data', [
- wbFloat('Leaf Curvature'),
- wbFloat('Minimum Leaf Angle'),
- wbFloat('Maximum Leaf Angle'),
- wbFloat('Branch Dimming Value'),
- wbFloat('Leaf Dimming Value'),
- wbInteger('Shadow Radius', itS32),
- wbFloat('Rock Speed'),
- wbFloat('Rustle Speed')
- ], cpNormal, True),
- wbStruct(BNAM, 'Billboard Dimensions', [
- wbFloat('Width'),
- wbFloat('Height')
- ], cpNormal, True)
- ]);
-
- wbRecord(WATR, 'Water', [
- wbEDID,
- wbString(TNAM, 'Texture', 0, cpNormal, True),
- wbInteger(ANAM, 'Opacity', itU8, nil, cpNormal, True),
- wbInteger(FNAM, 'Flags', itU8, wbFlags([
- {0}'Causes Damage',
- {1}'Reflective'
- ]), cpNormal, True),
- wbString(MNAM, 'Material ID'),
- wbFormIDCk(SNAM, 'Sound', [SOUN]),
- wbStruct(DATA, '', [
- wbFloat('Wind Velocity'),
- wbFloat('Wind Direction'),
- wbFloat('Wave Amplitude'),
- wbFloat('Wave Frequency'),
- wbFloat('Sun Power'),
- wbFloat('Reflectivity Amount'),
- wbFloat('Fresnel Amount'),
- wbFloat('Scroll X Speed'),
- wbFloat('Scroll Y Speed'),
- wbFloat('Fog Distance - Near Plane'),
- wbFloat('Fog Distance - Far Plane'),
- wbStruct('Shallow Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Deep Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbStruct('Reflection Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- wbInteger('Texture Blend', itU8),
- wbByteArray('Unused', 3),
- wbFloat('Rain Simulator - Force'),
- wbFloat('Rain Simulator - Velocity'),
- wbFloat('Rain Simulator - Falloff'),
- wbFloat('Rain Simulator - Dampner'),
- wbFloat('Rain Simulator - Starting Size'),
- wbFloat('Displacement Simulator - Force'),
- wbFloat('Displacement Simulator - Velocity'),
- wbFloat('Displacement Simulator - Falloff'),
- wbFloat('Displacement Simulator - Dampner'),
- wbFloat('Displacement Simulator - Starting Size'),
- wbInteger('Damage', itU16)
- ], cpNormal, True, nil, 0),
- wbStruct(GNAM, 'Related Waters', [
- wbFormIDCk('Daytime', [WATR, NULL]),
- wbFormIDCk('Nighttime', [WATR, NULL]),
- wbFormIDCk('Underwater', [WATR, NULL])
- ], cpNormal, True)
- ]);
-
- wbRecord(WEAP, 'Weapon', [
- wbEDID,
- wbFULL,
- wbMODL,
- wbICON,
- wbSCRI,
- wbENAM,
- wbInteger(ANAM, 'Enchantment Points', itU16),
- wbStruct(DATA, '', [
- wbInteger('Type', itU32, wbEnum([
- {0} 'Blade One Hand',
- {1} 'Blade Two Hand',
- {2} 'Blunt One Hand',
- {3} 'Blunt Two Hand',
- {4} 'Staff',
- {5} 'Bow'
- ])),
- wbFloat('Speed'),
- wbFloat('Reach'),
- wbInteger('Flags', itU32, wbFlags(['Ignores Normal Weapon Resistance'])),
- wbInteger('Value', itU32),
- wbInteger('Health', itU32),
- wbFloat('Weight'),
- wbInteger('Damage', itU16)
- ], cpNormal, True)
- ]);
-
- wbRecord(WRLD, 'Worldspace', [
- wbEDID,
- wbFULL,
- wbFormIDCk(WNAM, 'Parent Worldspace', [WRLD]),
- wbFormIDCk(CNAM, 'Climate', [CLMT]),
- wbFormIDCk(NAM2, 'Water', [WATR]),
- wbICON,
- wbStruct(MNAM, 'Map Data', [
- wbStruct('Uable Dimensions', [
- wbInteger('X', itS32),
- wbInteger('Y', itS32)
- ]),
- wbStruct('Cell Coordinates', [
- wbStruct('NW Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ]),
- wbStruct('SE Cell', [
- wbInteger('X', itS16),
- wbInteger('Y', itS16)
- ])
- ])
- ]),
- wbInteger(DATA, 'Flags', itU8, wbFlags([
- {0x01} 'Small world',
- {0x02} 'Can''t fast travel',
- {0x04} 'Oblivion worldspace',
- {0x08} '',
- {0x10} 'No LOD water'
- ]), cpNormal, True),
- wbArray(NAM0, 'Unknown', wbFloat(''), 0, nil, nil, cpNormal, True),
- wbArray(NAM9, 'Unknown', wbFloat(''), 0, nil, nil, cpNormal, True),
- wbInteger(SNAM, 'Music', itU32, wbMusicEnum),
- wbByteArray(OFST, 'Unknown')
- ], False, nil, cpNormal, False, wbRemoveOFST);
-
- wbRecord(WTHR, 'Weather', [
- wbEDID,
- wbString(CNAM, 'Texture Lower Layer'),
- wbString(DNAM, 'Texture Upper Layer'),
- wbMODL,
- wbArray(NAM0, 'Colors by Types/Times',
- wbArray('Type',
- wbStruct('Time', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8),
- wbByteArray('Unused', 1)
- ]),
- ['Sunrise', 'Day', 'Sunset', 'Night']
- ),
- ['Sky-Upper','Fog','Clouds-Lower','Ambient','Sunlight','Sun','Stars','Sky-Lower','Horizon','Clouds-Upper']
- , cpNormal, True),
- wbStruct(FNAM, 'Fog Distance', [
- wbFloat('Day Near'),
- wbFloat('Day Far'),
- wbFloat('Night Near'),
- wbFloat('Night Far')
- ], cpNormal, True),
- wbStruct(HNAM, 'HDR Data', [
- wbFloat('Eye Adapt Speed'),
- wbFloat('Blur Radius'),
- wbFloat('Blur Passes'),
- wbFloat('Emissive Mult'),
- wbFloat('Target LUM'),
- wbFloat('Upper LUM Clamp'),
- wbFloat('Bright Scale'),
- wbFloat('Bright Clamp'),
- wbFloat('LUM Ramp No Tex'),
- wbFloat('LUM Ramp Min'),
- wbFloat('LUM Ramp Max'),
- wbFloat('Sunlight Dimmer'),
- wbFloat('Grass Dimmer'),
- wbFloat('Tree Dimmer')
- ], cpNormal, True),
- wbStruct(DATA, '', [
- wbInteger('Wind Speed', itU8),
- wbInteger('Cloud Speed (Lower)', itU8),
- wbInteger('Cloud Speed (Upper)', itU8),
- wbInteger('Trans Delta', itU8),
- wbInteger('Sun Glare', itU8),
- wbInteger('Sun Damage', itU8),
- wbInteger('Precipitation - Begin Fade In', itU8),
- wbInteger('Precipitation - End Fade Out', itU8),
- wbInteger('Thunder/Lightning - Begin Fade In', itU8),
- wbInteger('Thunder/Lightning - End Fade Out', itU8),
- wbInteger('Thunder/Lightning - Frequency', itU8),
- wbInteger('Weather Classification', itU8, wbWthrDataClassification),
- wbStruct('Lightning Color', [
- wbInteger('Red', itU8),
- wbInteger('Green', itU8),
- wbInteger('Blue', itU8)
- ])
- ], cpNormal, True),
- wbRArray('Sounds', wbStruct(SNAM, 'Sound', [
- wbFormIDCk('Sound', [SOUN]),
- wbInteger('Type', itU32, wbEnum([
- {0}'Default',
- {1}'Precip',
- {2}'Wind',
- {3}'Thunder'
- ]))
- ]))
- ]);
-
- wbAddGroupOrder(GMST);
- wbAddGroupOrder(GLOB);
- wbAddGroupOrder(CLAS);
- wbAddGroupOrder(FACT);
- wbAddGroupOrder(HAIR);
- wbAddGroupOrder(EYES);
- wbAddGroupOrder(RACE);
- wbAddGroupOrder(SOUN);
- wbAddGroupOrder(SKIL);
- wbAddGroupOrder(MGEF);
- wbAddGroupOrder(SCPT);
- wbAddGroupOrder(LTEX);
- wbAddGroupOrder(ENCH);
- wbAddGroupOrder(SPEL);
- wbAddGroupOrder(BSGN);
- wbAddGroupOrder(ACTI);
- wbAddGroupOrder(APPA);
- wbAddGroupOrder(ARMO);
- wbAddGroupOrder(BOOK);
- wbAddGroupOrder(CLOT);
- wbAddGroupOrder(CONT);
- wbAddGroupOrder(DOOR);
- wbAddGroupOrder(INGR);
- wbAddGroupOrder(LIGH);
- wbAddGroupOrder(MISC);
- wbAddGroupOrder(STAT);
- wbAddGroupOrder(GRAS);
- wbAddGroupOrder(TREE);
- wbAddGroupOrder(FLOR);
- wbAddGroupOrder(FURN);
- wbAddGroupOrder(WEAP);
- wbAddGroupOrder(AMMO);
- wbAddGroupOrder(NPC_);
- wbAddGroupOrder(CREA);
- wbAddGroupOrder(LVLC);
- wbAddGroupOrder(SLGM);
- wbAddGroupOrder(KEYM);
- wbAddGroupOrder(ALCH);
- wbAddGroupOrder(SBSP);
- wbAddGroupOrder(SGST);
- wbAddGroupOrder(LVLI);
- wbAddGroupOrder(WTHR);
- wbAddGroupOrder(CLMT);
- wbAddGroupOrder(REGN);
- wbAddGroupOrder(CELL);
- wbAddGroupOrder(WRLD);
- wbAddGroupOrder(DIAL);
- wbAddGroupOrder(QUST);
- wbAddGroupOrder(IDLE);
- wbAddGroupOrder(PACK);
- wbAddGroupOrder(CSTY);
- wbAddGroupOrder(LSCR);
- wbAddGroupOrder(LVSP);
- wbAddGroupOrder(ANIO);
- wbAddGroupOrder(WATR);
- wbAddGroupOrder(EFSH);
-end;
-
-initialization
-end.
diff --git a/lib/xedit/wbDefinitionsTES4.pas b/lib/xedit/wbDefinitionsTES4.pas
deleted file mode 100644
index 546f29e..0000000
--- a/lib/xedit/wbDefinitionsTES4.pas
+++ /dev/null
@@ -1,5174 +0,0 @@
-{*******************************************************************************
-
- The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
-*******************************************************************************}
-
-unit wbDefinitionsTES4;
-
-{$I wbDefines.inc}
-
-interface
-
-uses
- wbInterface;
-
-var
- wbPKDTFlags: IwbFlagsDef;
- wbServiceFlags: IwbFlagsDef;
-
- wbAxisEnum: IwbEnumDef;
- wbBlendModeEnum: IwbEnumDef;
- wbBlendOpEnum: IwbEnumDef;
- wbCrimeTypeEnum: IwbEnumDef;
- wbFormTypeEnum: IwbEnumDef;
- wbFunctionsEnum: IwbEnumDef;
- wbMagicSchoolEnum: IwbEnumDef;
- wbMusicEnum: IwbEnumDef;
- wbOBMEResolutionInfo: IwbEnumDef;
- wbPKDTType: IwbEnumDef;
- wbQuadrantEnum: IwbEnumDef;
- wbSexEnum: IwbEnumDef;
- wbSkillEnum: IwbEnumDef;
- wbSoulGemEnum: IwbEnumDef;
- wbSpecializationEnum: IwbEnumDef;
- wbZTestFuncEnum: IwbEnumDef;
-
-procedure DefineTES4;
-
-implementation
-
-uses
- Types,
- Classes,
- SysUtils,
- Math,
- Variants,
- wbHelpers;
-
-const
- ACBS : TwbSignature = 'ACBS';
- ACHR : TwbSignature = 'ACHR';
- ACRE : TwbSignature = 'ACRE';
- TRGT : TwbSignature = 'TRGT';
- ACTI : TwbSignature = 'ACTI';
- AIDT : TwbSignature = 'AIDT';
- ALCH : TwbSignature = 'ALCH';
- AMMO : TwbSignature = 'AMMO';
- ANAM : TwbSignature = 'ANAM';
- ANIO : TwbSignature = 'ANIO';
- APPA : TwbSignature = 'APPA';
- ARMO : TwbSignature = 'ARMO';
- ATTR : TwbSignature = 'ATTR';
- ATXT : TwbSignature = 'ATXT';
- BMDT : TwbSignature = 'BMDT';
- BNAM : TwbSignature = 'BNAM';
- BOOK : TwbSignature = 'BOOK';
- BSGN : TwbSignature = 'BSGN';
- BTXT : TwbSignature = 'BTXT';
- CELL : TwbSignature = 'CELL';
- CLAS : TwbSignature = 'CLAS';
- CLMT : TwbSignature = 'CLMT';
- CLOT : TwbSignature = 'CLOT';
- CNAM : TwbSignature = 'CNAM';
- CNTO : TwbSignature = 'CNTO';
- CONT : TwbSignature = 'CONT';
- CREA : TwbSignature = 'CREA';
- CSAD : TwbSignature = 'CSAD';
- CSCR : TwbSignature = 'CSCR';
- CSDC : TwbSignature = 'CSDC';
- CSDI : TwbSignature = 'CSDI';
- CSDT : TwbSignature = 'CSDT';
- CSTD : TwbSignature = 'CSTD';
- CSTY : TwbSignature = 'CSTY';
- CTDA : TwbSignature = 'CTDA';
- CTDT : TwbSignature = 'CTDT';
- DATA : TwbSignature = 'DATA';
- DATX : TwbSignature = 'DATX';
- DELE : TwbSignature = 'DELE';
- DESC : TwbSignature = 'DESC';
- DIAL : TwbSignature = 'DIAL';
- DNAM : TwbSignature = 'DNAM';
- DOOR : TwbSignature = 'DOOR';
- EDID : TwbSignature = 'EDID';
- EDDX : TwbSignature = 'EDDX';
- EFID : TwbSignature = 'EFID';
- EFIT : TwbSignature = 'EFIT';
- ACVA : TwbSignature = 'ACVA';
- EFII : TwbSignature = 'EFII';
- EFXX : TwbSignature = 'EFXX';
- EFIX : TwbSignature = 'EFIX';
- EFME : TwbSignature = 'EFME';
- EFSH : TwbSignature = 'EFSH';
- ENAM : TwbSignature = 'ENAM';
- ENCH : TwbSignature = 'ENCH';
- ENIT : TwbSignature = 'ENIT';
- ESCE : TwbSignature = 'ESCE';
- EYES : TwbSignature = 'EYES';
- FACT : TwbSignature = 'FACT';
- FGGA : TwbSignature = 'FGGA';
- FGGS : TwbSignature = 'FGGS';
- FGTS : TwbSignature = 'FGTS';
- FLOR : TwbSignature = 'FLOR';
- FLTV : TwbSignature = 'FLTV';
- FNAM : TwbSignature = 'FNAM';
- FULL : TwbSignature = 'FULL';
- FURN : TwbSignature = 'FURN';
- GLOB : TwbSignature = 'GLOB';
- GMST : TwbSignature = 'GMST';
- GNAM : TwbSignature = 'GNAM';
- GRAS : TwbSignature = 'GRAS';
- HAIR : TwbSignature = 'HAIR';
- HCLR : TwbSignature = 'HCLR';
- HEDR : TwbSignature = 'HEDR';
- HNAM : TwbSignature = 'HNAM';
- ICO2 : TwbSignature = 'ICO2';
- ICON : TwbSignature = 'ICON';
- IDLE : TwbSignature = 'IDLE';
- NULL : TwbSignature = 'NULL';
- INAM : TwbSignature = 'INAM';
- INDX : TwbSignature = 'INDX';
- INFO : TwbSignature = 'INFO';
- INGR : TwbSignature = 'INGR';
- JNAM : TwbSignature = 'JNAM';
- KEYM : TwbSignature = 'KEYM';
- KFFZ : TwbSignature = 'KFFZ';
- LAND : TwbSignature = 'LAND';
- LIGH : TwbSignature = 'LIGH';
- LNAM : TwbSignature = 'LNAM';
- LSCR : TwbSignature = 'LSCR';
- LTEX : TwbSignature = 'LTEX';
- LVLC : TwbSignature = 'LVLC';
- LVLD : TwbSignature = 'LVLD';
- LVLF : TwbSignature = 'LVLF';
- LVLI : TwbSignature = 'LVLI';
- LVLO : TwbSignature = 'LVLO';
- LVSP : TwbSignature = 'LVSP';
- MAST : TwbSignature = 'MAST';
- MGEF : TwbSignature = 'MGEF';
- MISC : TwbSignature = 'MISC';
- MNAM : TwbSignature = 'MNAM';
- MO2B : TwbSignature = 'MO2B';
- MO2T : TwbSignature = 'MO2T';
- MO3B : TwbSignature = 'MO3B';
- MO3T : TwbSignature = 'MO3T';
- MO4B : TwbSignature = 'MO4B';
- MO4T : TwbSignature = 'MO4T';
- MOD2 : TwbSignature = 'MOD2';
- MOD3 : TwbSignature = 'MOD3';
- MOD4 : TwbSignature = 'MOD4';
- MODB : TwbSignature = 'MODB';
- MODL : TwbSignature = 'MODL';
- MODT : TwbSignature = 'MODT';
- NAM0 : TwbSignature = 'NAM0';
- NAM1 : TwbSignature = 'NAM1';
- NAM2 : TwbSignature = 'NAM2';
- NAM9 : TwbSignature = 'NAM9';
- NAME : TwbSignature = 'NAME';
- NIFT : TwbSignature = 'NIFT';
- NIFZ : TwbSignature = 'NIFZ';
- NPC_ : TwbSignature = 'NPC_';
- OFST : TwbSignature = 'OFST';
- OBME : TwbSignature = 'OBME';
- ONAM : TwbSignature = 'ONAM';
- PACK : TwbSignature = 'PACK';
- PFIG : TwbSignature = 'PFIG';
- PFPC : TwbSignature = 'PFPC';
- PGAG : TwbSignature = 'PGAG';
- PGRD : TwbSignature = 'PGRD';
- PGRI : TwbSignature = 'PGRI';
- PGRL : TwbSignature = 'PGRL';
- PGRP : TwbSignature = 'PGRP';
- PGRR : TwbSignature = 'PGRR';
- PKDT : TwbSignature = 'PKDT';
- PKID : TwbSignature = 'PKID';
- PLDT : TwbSignature = 'PLDT';
- PNAM : TwbSignature = 'PNAM';
- PSDT : TwbSignature = 'PSDT';
- PTDT : TwbSignature = 'PTDT';
- QNAM : TwbSignature = 'QNAM';
- QSDT : TwbSignature = 'QSDT';
- QSTA : TwbSignature = 'QSTA';
- QSTI : TwbSignature = 'QSTI';
- QSTR : TwbSignature = 'QSTR';
- TPIC : TwbSignature = 'TPIC';
- QUST : TwbSignature = 'QUST';
- RACE : TwbSignature = 'RACE';
- RCLR : TwbSignature = 'RCLR';
- RDAT : TwbSignature = 'RDAT';
- RDGS : TwbSignature = 'RDGS';
- RDMD : TwbSignature = 'RDMD';
- RDMP : TwbSignature = 'RDMP';
- RDOT : TwbSignature = 'RDOT';
- RDSD : TwbSignature = 'RDSD';
- RDWT : TwbSignature = 'RDWT';
- REFR : TwbSignature = 'REFR';
- PLYR : TwbSignature = 'PLYR';
- REGN : TwbSignature = 'REGN';
- RNAM : TwbSignature = 'RNAM';
- ROAD : TwbSignature = 'ROAD';
- RPLD : TwbSignature = 'RPLD';
- RPLI : TwbSignature = 'RPLI';
- SBSP : TwbSignature = 'SBSP';
- SCDA : TwbSignature = 'SCDA';
- SCHD : TwbSignature = 'SCHD';
- SCHR : TwbSignature = 'SCHR';
- SCIT : TwbSignature = 'SCIT';
- SCPT : TwbSignature = 'SCPT';
- SCRI : TwbSignature = 'SCRI';
- SCRO : TwbSignature = 'SCRO';
- SCRV : TwbSignature = 'SCRV';
- SCTX : TwbSignature = 'SCTX';
- SCVR : TwbSignature = 'SCVR';
- SGST : TwbSignature = 'SGST';
- SKIL : TwbSignature = 'SKIL';
- SLCP : TwbSignature = 'SLCP';
- SLGM : TwbSignature = 'SLGM';
- SLSD : TwbSignature = 'SLSD';
- SNAM : TwbSignature = 'SNAM';
- SNDD : TwbSignature = 'SNDD';
- SNDX : TwbSignature = 'SNDX';
- SOUL : TwbSignature = 'SOUL';
- SOUN : TwbSignature = 'SOUN';
- SPEL : TwbSignature = 'SPEL';
- SPIT : TwbSignature = 'SPIT';
- SPLO : TwbSignature = 'SPLO';
- STAT : TwbSignature = 'STAT';
- TCLF : TwbSignature = 'TCLF';
- TCLT : TwbSignature = 'TCLT';
- TES4 : TwbSignature = 'TES4';
- TNAM : TwbSignature = 'TNAM';
- TRDT : TwbSignature = 'TRDT';
- TREE : TwbSignature = 'TREE';
- UNAM : TwbSignature = 'UNAM';
- VCLR : TwbSignature = 'VCLR';
- VHGT : TwbSignature = 'VHGT';
- VNAM : TwbSignature = 'VNAM';
- VNML : TwbSignature = 'VNML';
- VTEX : TwbSignature = 'VTEX';
- VTXT : TwbSignature = 'VTXT';
- WATR : TwbSignature = 'WATR';
- WEAP : TwbSignature = 'WEAP';
- WLST : TwbSignature = 'WLST';
- WNAM : TwbSignature = 'WNAM';
- WRLD : TwbSignature = 'WRLD';
- WTHR : TwbSignature = 'WTHR';
- XACT : TwbSignature = 'XACT';
- XCCM : TwbSignature = 'XCCM';
- XCHG : TwbSignature = 'XCHG';
- XCLC : TwbSignature = 'XCLC';
- XCLL : TwbSignature = 'XCLL';
- XCLR : TwbSignature = 'XCLR';
- XCLW : TwbSignature = 'XCLW';
- XCMT : TwbSignature = 'XCMT';
- XCNT : TwbSignature = 'XCNT';
- XCWT : TwbSignature = 'XCWT';
- XESP : TwbSignature = 'XESP';
- XGLB : TwbSignature = 'XGLB';
- XHLT : TwbSignature = 'XHLT';
- XHRS : TwbSignature = 'XHRS';
- XLCM : TwbSignature = 'XLCM';
- XLOC : TwbSignature = 'XLOC';
- XLOD : TwbSignature = 'XLOD';
- XMRC : TwbSignature = 'XMRC';
- XMRK : TwbSignature = 'XMRK';
- XNAM : TwbSignature = 'XNAM';
- XOWN : TwbSignature = 'XOWN';
- XPCI : TwbSignature = 'XPCI';
- XRGD : TwbSignature = 'XRGD';
- XRNK : TwbSignature = 'XRNK';
- XRTM : TwbSignature = 'XRTM';
- XSCL : TwbSignature = 'XSCL';
- XSED : TwbSignature = 'XSED';
- XSOL : TwbSignature = 'XSOL';
- XTEL : TwbSignature = 'XTEL';
- XTRG : TwbSignature = 'XTRG';
- XXXX : TwbSignature = 'XXXX';
- ZNAM : TwbSignature = 'ZNAM';
-
-var
- wbEDID: IwbSubRecordDef;
- wbXOWN: IwbSubRecordDef;
- wbXGLB: IwbSubRecordDef;
- wbXRGD: IwbSubRecordDef;
- wbSLSD: IwbSubRecordDef;
- wbBodyDataIndex: IwbSubRecordDef;
- wbSPLO: IwbSubRecordDef;
- wbSPLOs: IwbSubRecordArrayDef;
- wbCNTO: IwbSubRecordDef;
- wbCNTOs: IwbSubRecordArrayDef;
- wbCSDT: IwbSubRecordStructDef;
- wbCSDTs: IwbSubRecordArrayDef;
- wbFULL: IwbSubRecordDef;
- wbFULLReq: IwbSubRecordDef;
- wbXNAM: IwbSubRecordDef;
- wbXNAMs: IwbSubRecordArrayDef;
- wbDESC: IwbSubRecordDef;
- wbXSCL: IwbSubRecordDef;
- wbDATAPosRot : IwbSubRecordDef;
- wbPosRot : IwbStructDef;
- wbMODL: IwbSubRecordStructDef;
- wbCTDA: IwbSubRecordUnionDef;
- wbSCHR: IwbSubRecordUnionDef;
- wbCTDAs: IwbSubRecordArrayDef;
- wbSCROs: IwbSubRecordArrayDef;
- wbPGRP: IwbSubRecordDef;
- wbResultScript: IwbSubRecordStructDef;
-// wbResultScriptOld: IwbSubRecordStructDef;
- wbSCRI: IwbSubRecordDef;
- wbFaceGen: IwbSubRecordStructDef;
- wbENAM: IwbSubRecordDef;
- wbFGGS: IwbSubRecordDef;
- wbXLOD: IwbSubRecordDef;
- wbXESP: IwbSubRecordDef;
- wbICON: IwbSubRecordDef;
- wbEFID: IwbSubRecordDef;
- wbEFIDOBME: IwbSubRecordDef;
- wbEFIT: IwbSubRecordDef;
- wbEFITOBME: IwbSubRecordDef;
- wbEFIX: IwbSubRecordDef;
- wbSCIT: IwbSubRecordStructDef;
- wbSCITOBME: IwbSubRecordStructDef;
-// wbEffects: IwbSubRecordUnionDef;
- wbEffects: IwbSubRecordArrayDef;
-
-function wbClmtMoonsPhaseLength(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- PhaseLength : Byte;
- Masser : Boolean;
- Secunda : Boolean;
-begin
- Result := '';
- if aType = ctToSortKey then begin
- Result := IntToHex64(aInt, 2);
- end else if aType = ctToStr then begin
- PhaseLength := aInt mod 64;
- Masser := (aInt and 64) <> 0;
- Secunda := (aInt and 128) <> 0;
- if Masser then
- if Secunda then
- Result := 'Masser, Secunda / '
- else
- Result := 'Masser / '
- else
- if Secunda then
- Result := 'Secunda / '
- else
- Result := 'No Moon / ';
- Result := Result + IntToStr(PhaseLength);
- end;
-end;
-
-function wbClmtTime(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- Result := TimeToStr( EncodeTime(aInt div 6, (aInt mod 6) * 10, 0, 0) );
-end;
-
-var
- wbCtdaTypeFlags : IwbFlagsDef;
-
-function wbCtdaType(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- s: string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and $F0 of
- $00 : Result := 'Equal to';
- $20 : Result := 'Not equal to';
- $40 : Result := 'Greater than';
- $60 : Result := 'Greater than or equal to';
- $80 : Result := 'Less than';
- $A0 : Result := 'Less than or equal to';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.ToString(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- Exit;
- end;
- ctCheck: begin
- case aInt and $F0 of
- $00, $20, $40, $60, $80, $A0 : Result := '';
- else
- Result := ''
- end;
-
- if not Assigned(wbCtdaTypeFlags) then
- wbCtdaTypeFlags := wbFlags([
- {0x01} 'Or',
- {0x02} 'Run on target',
- {0x04} 'Use global'
- ]);
-
- s := wbCtdaTypeFlags.Check(aInt and $0F, aElement);
-
- if s <> '' then
- Result := Result + ' / ' + s;
- end;
- end;
-end;
-
-function wbIdleAnam(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not $80 of
- 0: Result := 'Lower Body';
- 1: Result := 'Left Arm';
- 2: Result := 'Left Hand';
- 3: Result := 'Right Arm';
- 4: Result := 'Special Idle';
- 5: Result := 'Whole Body';
- 6: Result := 'Upper Body';
- else
- Result := '';
- end;
-
- if (aInt and $80) = 0 then
- Result := Result + ', Must return a file';
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2);
- end;
- ctCheck: begin
- case aInt and not $80 of
- 0..6: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbScaledInt4ToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-const
- PlusMinus : array[Boolean] of string = ('+', '-');
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- ctToSortKey: begin
- Result := FloatToStrF(aInt / 10000, ffFixed, 99, 4);
- if Length(Result) < 22 then
- Result := StringOfChar('0', 22 - Length(Result)) + Result;
- Result := PlusMinus[aInt < 0] + Result;
- end;
- ctCheck: Result := '';
- end;
-end;
-
-function wbScaledInt4ToInt(const aString: string; const aElement: IwbElement): Int64;
-var
- f: Extended;
-begin
- f := StrToFloat(aString);
- f := f * 10000;
- Result := Round(f);
-end;
-
-function wbHideFFFF(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt, 4)
- else if aType = ctToStr then
- if aInt = $FFFF then
- Result := 'None'
- else
- Result := IntToStr(aInt);
-end;
-
-function wbAtxtPosition(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- if aType = ctToSortKey then
- Result := IntToHex64(aInt div 17, 2) + IntToHex64(aInt mod 17, 2)
- else if aType = ctCheck then begin
- if (aInt < 0) or (aInt > 288) then
- Result := ''
- else
- Result := '';
- end else if aType = ctToStr then
- Result := IntToStr(aInt) + ' -> ' + IntToStr(aInt div 17) + ':' + IntToStr(aInt mod 17);
-end;
-
-function wbWthrDataClassification(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt and not 192 of
- 0: Result := 'None';
- 1: Result := 'Pleasant';
- 2: Result := 'Cloudy';
- 3: Result := 'Unknown 3';
- 4: Result := 'Rainy';
- 8: Result := 'Snow';
- else
- Result := '';
- end;
- end;
- ctToSortKey: begin
- Result := IntToHex64(aInt, 2)
- end;
- ctCheck: begin
- case aInt and not 192 of
- 0..4, 8: Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbGLOBFNAM(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- case aInt of
- Ord('s'): Result := 'Short';
- Ord('l'): Result := 'Long';
- Ord('f'): Result := 'Float';
- else
- Result := '';
- end;
- end;
- ctToSortKey: Result := Chr(aInt);
- ctCheck: begin
- case aInt of
- Ord('s'), Ord('l'), Ord('f'): Result := '';
- else
- Result := '';
- end;
- end;
- end;
-end;
-
-function wbPlacedAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- s: string;
- Cell: IwbMainRecord;
- Position: TwbVector;
- Grid: TwbGridCell;
-begin
- Result := '';
-
- Rec := aMainRecord.RecordBySignature['NAME'];
- if Assigned(Rec) then begin
- s := Trim(Rec.Value);
- if s <> '' then
- Result := 'places ' + s;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and (Container.ElementType <> etGroupRecord) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := Trim(Container.Name);
- if s <> '' then begin
- if Result <> '' then
- Result := Result + ' ';
- Result := Result + 'in ' + s;
-
- // grid position of persistent reference in exterior persistent cell (interior cells are not persistent)
- if Supports(aMainRecord.Container, IwbGroupRecord, Container) then
- Cell := IwbGroupRecord(Container).ChildrenOf;
- if Assigned(Cell) and Cell.IsPersistent and (Cell.Signature = 'CELL') then
- if aMainRecord.GetPosition(Position) then begin
- Grid := wbPositionToGridCell(Position);
- Result := Result + ' at ' + IntToStr(Grid.x) + ',' + IntToStr(Grid.y);
- end;
- end;
- end;
-end;
-
-function wbCellAddInfo(const aMainRecord: IwbMainRecord): string;
-var
- Rec: IwbRecord;
- Container: IwbContainer;
- GroupRecord : IwbGroupRecord;
- s: string;
-begin
- Result := '';
-
- if not aMainRecord.IsPersistent then begin
- Rec := aMainRecord.RecordBySignature['XCLC'];
- if Assigned(Rec) then
- Result := 'at ' + Rec.Elements[0].Value + ',' + Rec.Elements[1].Value;
- end;
-
- Container := aMainRecord.Container;
- while Assigned(Container) and not
- (Supports(Container, IwbGroupRecord, GroupRecord) and (GroupRecord.GroupType = 1)) do
- Container := Container.Container;
-
- if Assigned(Container) then begin
- s := wbFormID.ToString(GroupRecord.GroupLabel, aMainRecord);
- if s <> '' then begin
- if Result <> '' then
- s := s + ' ';
- Result := 'in ' + s + Result;
- end;
- end;
-end;
-
-function wbGMSTUnionDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- rEDID: IwbRecord;
- s: string;
-begin
- Result := 1;
- rEDID := aElement.Container.RecordBySignature[EDID];
- if Assigned(rEDID) then begin
- s := rEDID.Value;
- if Length(s) > 0 then
- case s[1] of
- 's': Result := 0;
- 'f': Result := 2;
- end;
- end;
-end;
-
-function wbMISCActorValueDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- MainRecord : IwbMainRecord;
-begin
- Result := 0;
-
- if not Assigned(aElement) then
- Exit;
-
- MainRecord := aElement.ContainingMainRecord;
- if not Assigned(MainRecord) then
- Exit;
-
- if (MainRecord.Flags._Flags and $000000C0) = $000000C0 then
- Result := 1;
-end;
-
-function wbXLOCFillerDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize = 16 then
- Result := 1;
-end;
-
-function wbPACKPKDTDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 1;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize = 4 then
- Result := 0;
-end;
-
-function wbREFRXSEDDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container : IwbContainer;
- SubRecord : IwbSubRecord;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Supports(Container, IwbSubRecord, SubRecord) then
- if SubRecord.SubRecordHeaderSize = 4 then
- Result := 1;
-end;
-
-
-type
- TCTDAFunctionParamType = (
- ptNone,
- ptInteger,
- ptVariableName, //Integer
- ptSex, //Enum: Male, Female
- ptActorValue, //Enum: wbActorValue
- ptCrimeType, //?? Enum
- ptAxis, //?? Char
- ptFormType, //?? Enum
- ptQuestStage,
-
- ptObjectReference, //REFR, ACHR, ACRE, PGRE
- ptInventoryObject, //ARMO, BOOK, MISC, WEAP, AMMO, KEYM, ALCH, NOTE, ARMA
- ptActor, //ACHR, ACRE
- ptQuest, //QUST
- ptFaction, //FACT
- ptCell, //CELL
- ptClass, //CLAS
- ptRace, //RACE
- ptActorBase, //NPC_, CREA
- ptGlobal, //GLOB
- ptWeather, //WTHR
- ptPackage, //PACK
- ptOwnerOpt, //FACT, NPC_
- ptBirthsign, //BSGN
- ptFurniture, //FURN
- ptMagicItem, //SPEL
- ptMagicEffect, //MGEF
- ptWorldspace, //WRLD
- ptReferencableObject
- );
-
- PCTDAFunction = ^TCTDAFunction;
- TCTDAFunction = record
- Index: Integer;
- Name: string;
- ParamType1: TCTDAFunctionParamType;
- ParamType2: TCTDAFunctionParamType;
- end;
-
-const
- wbCTDAFunctions : array[0..191] of TCTDAFunction = (
- (Index: 1; Name: 'GetDistance'; ParamType1: ptObjectReference),
- (Index: 5; Name: 'GetLocked'),
- (Index: 6; Name: 'GetPos'; ParamType1: ptAxis),
- (Index: 8; Name: 'GetAngle'; ParamType1: ptAxis),
- (Index: 10; Name: 'GetStartingPos'; ParamType1: ptAxis),
- (Index: 11; Name: 'GetStartingAngle'; ParamType1: ptAxis),
- (Index: 12; Name: 'GetSecondsPassed'),
- (Index: 14; Name: 'GetActorValue'; ParamType1: ptActorValue),
- (Index: 18; Name: 'GetCurrentTime'),
- (Index: 24; Name: 'GetScale'),
- (Index: 27; Name: 'GetLineOfSight'; ParamType1: ptObjectReference),
- (Index: 32; Name: 'GetInSameCell'; ParamType1: ptObjectReference),
- (Index: 35; Name: 'GetDisabled'),
- (Index: 36; Name: 'MenuMode'; ParamType1: ptInteger),
- (Index: 39; Name: 'GetDisease'),
- (Index: 40; Name: 'GetVampire'),
- (Index: 41; Name: 'GetClothingValue'),
- (Index: 42; Name: 'SameFaction'; ParamType1: ptActor),
- (Index: 43; Name: 'SameRace'; ParamType1: ptActor),
- (Index: 44; Name: 'SameSex'; ParamType1: ptActor),
- (Index: 45; Name: 'GetDetected'; ParamType1: ptActor),
- (Index: 46; Name: 'GetDead'),
- (Index: 47; Name: 'GetItemCount'; ParamType1: ptInventoryObject),
- (Index: 48; Name: 'GetGold'),
- (Index: 49; Name: 'GetSleeping'),
- (Index: 50; Name: 'GetTalkedToPC'),
- (Index: 53; Name: 'GetScriptVariable'; ParamType1: ptObjectReference; ParamType2: ptVariableName),
- (Index: 56; Name: 'GetQuestRunning'; ParamType1: ptQuest),
- (Index: 58; Name: 'GetStage'; ParamType1: ptQuest),
- (Index: 59; Name: 'GetStageDone'; ParamType1: ptQuest; ParamType2: ptQuestStage),
- (Index: 60; Name: 'GetFactionRankDifference'; ParamType1: ptFaction; ParamType2: ptActor),
- (Index: 61; Name: 'GetAlarmed'),
- (Index: 62; Name: 'IsRaining'),
- (Index: 63; Name: 'GetAttacked'),
- (Index: 64; Name: 'GetIsCreature'),
- (Index: 65; Name: 'GetLockLevel'),
- (Index: 66; Name: 'GetShouldAttack'; ParamType1: ptActor),
- (Index: 67; Name: 'GetInCell'; ParamType1: ptCell),
- (Index: 68; Name: 'GetIsClass'; ParamType1: ptClass),
- (Index: 69; Name: 'GetIsRace'; ParamType1: ptRace),
- (Index: 70; Name: 'GetIsSex'; ParamType1: ptSex),
- (Index: 71; Name: 'GetInFaction'; ParamType1: ptFaction),
- (Index: 72; Name: 'GetIsID'; ParamType1: ptReferencableObject),
- (Index: 73; Name: 'GetFactionRank'; ParamType1: ptFaction),
- (Index: 74; Name: 'GetGlobalValue'; ParamType1: ptGlobal),
- (Index: 75; Name: 'IsSnowing'),
- (Index: 76; Name: 'GetDisposition'; ParamType1: ptActor),
- (Index: 77; Name: 'GetRandomPercent'),
- (Index: 79; Name: 'GetQuestVariable'; ParamType1: ptQuest; ParamType2: ptVariableName),
- (Index: 80; Name: 'GetLevel'),
- (Index: 81; Name: 'GetArmorRating'),
- (Index: 84; Name: 'GetDeadCount'; ParamType1: ptActorBase),
- (Index: 91; Name: 'GetIsAlerted'),
- (Index: 98; Name: 'GetPlayerControlsDisabled'),
- (Index: 99; Name: 'GetHeadingAngle'; ParamType1: ptObjectReference),
- (Index: 101; Name: 'IsWeaponOut'),
- (Index: 102; Name: 'IsTorchOut'),
- (Index: 103; Name: 'IsShieldOut'),
- (Index: 104; Name: 'IsYielding'),
- (Index: 106; Name: 'IsFacingUp'),
- (Index: 107; Name: 'GetKnockedState'),
- (Index: 108; Name: 'GetWeaponAnimType'),
- (Index: 109; Name: 'GetWeaponSkillType'),
- (Index: 110; Name: 'GetCurrentAIPackage'),
- (Index: 111; Name: 'IsWaiting'),
- (Index: 112; Name: 'IsIdlePlaying'),
- (Index: 116; Name: 'GetCrimeGold'),
- (Index: 122; Name: 'GetCrime'; ParamType1: ptActor; ParamType2: ptCrimeType),
- (Index: 125; Name: 'IsGuard'),
- (Index: 127; Name: 'CanPayCrimeGold'),
- (Index: 128; Name: 'GetFatiguePercentage'),
- (Index: 129; Name: 'GetPCIsClass'; ParamType1: ptClass),
- (Index: 130; Name: 'GetPCIsRace'; ParamType1: ptRace),
- (Index: 131; Name: 'GetPCIsSex'; ParamType1: ptSex),
- (Index: 132; Name: 'GetPCInFaction'; ParamType1: ptFaction),
- (Index: 133; Name: 'SameFactionAsPC'),
- (Index: 134; Name: 'SameRaceAsPC'),
- (Index: 135; Name: 'SameSexAsPC'),
- (Index: 136; Name: 'GetIsReference'; ParamType1: ptObjectReference),
- (Index: 141; Name: 'IsTalking'),
- (Index: 142; Name: 'GetWalkSpeed'),
- (Index: 143; Name: 'GetCurrentAIProcedure'),
- (Index: 144; Name: 'GetTrespassWarningLevel'),
- (Index: 145; Name: 'IsTrespassing'),
- (Index: 146; Name: 'IsInMyOwnedCell'),
- (Index: 147; Name: 'GetWindSpeed'),
- (Index: 148; Name: 'GetCurrentWeatherPercent'),
- (Index: 149; Name: 'GetIsCurrentWeather'; ParamType1: ptWeather),
- (Index: 150; Name: 'IsContinuingPackagePCNear'),
- (Index: 153; Name: 'CanHaveFlames'),
- (Index: 154; Name: 'HasFlames'),
- (Index: 157; Name: 'GetOpenState'),
- (Index: 159; Name: 'GetSitting'),
- (Index: 160; Name: 'GetFurnitureMarkerID'),
- (Index: 161; Name: 'GetIsCurrentPackage'; ParamType1: ptPackage),
- (Index: 162; Name: 'IsCurrentFurnitureRef'; ParamType1: ptObjectReference),
- (Index: 163; Name: 'IsCurrentFurnitureObj'; ParamType1: ptFurniture),
- (Index: 170; Name: 'GetDayOfWeek'),
- (Index: 171; Name: 'IsPlayerInJail'),
- (Index: 172; Name: 'GetTalkedToPCParam'; ParamType1: ptActor),
- (Index: 175; Name: 'IsPCSleeping'),
- (Index: 176; Name: 'IsPCAMurderer'),
- (Index: 180; Name: 'GetDetectionLevel'; ParamType1: ptActor),
- (Index: 182; Name: 'GetEquipped'; ParamType1: ptInventoryObject),
- (Index: 185; Name: 'IsSwimming'),
- (Index: 190; Name: 'GetAmountSoldStolen'),
- (Index: 193; Name: 'GetPCExpelled'; ParamType1: ptFaction),
- (Index: 195; Name: 'GetPCFactionMurder'; ParamType1: ptFaction),
- (Index: 197; Name: 'GetPCFactionSteal'; ParamType1: ptFaction),
- (Index: 199; Name: 'GetPCFactionAttack'; ParamType1: ptFaction),
- (Index: 201; Name: 'GetPCFactionSubmitAuthority'; ParamType1: ptFaction),
- (Index: 203; Name: 'GetDestroyed'),
- (Index: 214; Name: 'HasMagicEffect'; ParamType1: ptMagicEffect),
- (Index: 215; Name: 'GetDoorDefaultOpen'),
- (Index: 223; Name: 'IsSpellTarget'; ParamType1: ptMagicItem),
- (Index: 224; Name: 'GetIsPlayerBirthsign'; ParamType1: ptBirthsign),
- (Index: 225; Name: 'GetPersuasionNumber'),
- (Index: 227; Name: 'HasVampireFed'),
- (Index: 228; Name: 'GetIsClassDefault'; ParamType1: ptClass),
- (Index: 229; Name: 'GetClassDefaultMatch'),
- (Index: 230; Name: 'GetInCellParam'; ParamType1: ptCell; ParamType2: ptObjectReference),
- (Index: 237; Name: 'GetIsGhost'),
- (Index: 242; Name: 'GetUnconscious'),
- (Index: 244; Name: 'GetRestrained'),
- (Index: 246; Name: 'GetIsUsedItem'; ParamType1: ptReferencableObject),
- (Index: 247; Name: 'GetIsUsedItemType'; ParamType1: ptFormType),
- (Index: 249; Name: 'GetPCFame'),
- (Index: 251; Name: 'GetPCInfamy'),
- (Index: 254; Name: 'GetIsPlayableRace'),
- (Index: 255; Name: 'GetOffersServicesNow'),
- (Index: 258; Name: 'GetUsedItemLevel'),
- (Index: 259; Name: 'GetUsedItemActivate'),
- (Index: 264; Name: 'GetBarterGold'),
- (Index: 265; Name: 'IsTimePassing'),
- (Index: 266; Name: 'IsPleasant'),
- (Index: 267; Name: 'IsCloudy'),
- (Index: 274; Name: 'GetArmorRatingUpperBody'),
- (Index: 277; Name: 'GetBaseActorValue'; ParamType1: ptActorValue),
- (Index: 278; Name: 'IsOwner'; ParamType1: ptOwnerOpt),
- (Index: 280; Name: 'IsCellOwner'; ParamType1: ptCell; ParamType2: ptOwnerOpt),
- (Index: 282; Name: 'IsHorseStolen'),
- (Index: 285; Name: 'IsLeftUp'),
- (Index: 286; Name: 'IsSneaking'),
- (Index: 287; Name: 'IsRunning'),
- (Index: 288; Name: 'GetFriendHit'; ParamType1: ptActor),
- (Index: 289; Name: 'IsInCombat'),
- (Index: 300; Name: 'IsInInterior'),
- (Index: 305; Name: 'GetInvestmentGold'),
- (Index: 306; Name: 'IsActorUsingATorch'),
- (Index: 309; Name: 'IsXBox'),
- (Index: 310; Name: 'GetInWorldspace'; ParamType1: ptWorldSpace),
- (Index: 312; Name: 'GetPCMiscStat'; ParamType1: ptInteger),
- (Index: 313; Name: 'IsActorEvil'),
- (Index: 314; Name: 'IsActorAVictim'),
- (Index: 315; Name: 'GetTotalPersuasionNumber'),
- (Index: 318; Name: 'GetIdleDoneOnce'),
- (Index: 320; Name: 'GetNoRumors'),
- (Index: 323; Name: 'WhichServiceMenu'),
- (Index: 327; Name: 'IsRidingHorse'),
- (Index: 329; Name: 'IsTurnArrest'),
- (Index: 332; Name: 'IsInDangerousWater'),
- (Index: 338; Name: 'GetIgnoreFriendlyHits'),
- (Index: 339; Name: 'IsPlayersLastRiddenHorse'),
- (Index: 353; Name: 'IsActor'),
- (Index: 354; Name: 'IsEssential'),
- (Index: 358; Name: 'IsPlayerMovingIntoNewSpace'),
- (Index: 361; Name: 'GetTimeDead'),
- (Index: 362; Name: 'GetPlayerHasLastRiddenHorse'),
- (Index: 365; Name: 'GetPlayerInSEWorld'),
-
- // Added by OBSE:
- (Index: 1107; Name: 'IsAmmo,'; ParamType1: ptInteger),
- (Index: 1884; Name: 'GetPCTrainingSessionsUsed'; ParamType1: ptPackage),
- (Index: 2213; Name: 'GetPackageOffersServices'; ParamType1: ptPackage),
- (Index: 2214; Name: 'GetPackageMustReachLocation'; ParamType1: ptPackage),
- (Index: 2215; Name: 'GetPackageMustComplete'; ParamType1: ptPackage),
- (Index: 2216; Name: 'GetPackageLockDoorsAtStart'; ParamType1: ptPackage),
- (Index: 2217; Name: 'GetPackageLockDoorsAtEnd'; ParamType1: ptPackage),
- (Index: 2218; Name: 'GetPackageLockDoorsAtLocation'; ParamType1: ptPackage),
- (Index: 2219; Name: 'GetPackageUnlockDoorsAtStart'; ParamType1: ptPackage),
- (Index: 2220; Name: 'GetPackageUnlockDoorsAtEnd'; ParamType1: ptPackage),
- (Index: 2221; Name: 'GetPackageUnlockDoorsAtLocation'; ParamType1: ptPackage),
- (Index: 2222; Name: 'GetPackageContinueIfPCNear'; ParamType1: ptPackage),
- (Index: 2223; Name: 'GetPackageOncePerDay'; ParamType1: ptPackage),
- (Index: 2224; Name: 'GetPackageSkipFalloutBehavior'; ParamType1: ptPackage),
- (Index: 2225; Name: 'GetPackageAlwaysRun'; ParamType1: ptPackage),
- (Index: 2226; Name: 'GetPackageAlwaysSneak'; ParamType1: ptPackage),
- (Index: 2227; Name: 'GetPackageAllowSwimming'; ParamType1: ptPackage),
- (Index: 2228; Name: 'GetPackageAllowFalls'; ParamType1: ptPackage),
- (Index: 2229; Name: 'GetPackageArmorUnequipped'; ParamType1: ptPackage),
- (Index: 2230; Name: 'GetPackageWeaponsUnequipped'; ParamType1: ptPackage),
- (Index: 2231; Name: 'GetPackageDefensiveCombat'; ParamType1: ptPackage),
- (Index: 2232; Name: 'GetPackageUseHorse'; ParamType1: ptPackage),
- (Index: 2233; Name: 'GetPackageNoIdleAnims'; ParamType1: ptPackage)
- );
-
-var
- wbCTDAFunctionEditInfo : string;
-
-function wbCTDAParamDescFromIndex(aIndex: Integer): PCTDAFunction;
-var
- L, H, I, C: Integer;
-begin
- Result := nil;
-
- L := Low(wbCTDAFunctions);
- H := High(wbCTDAFunctions);
- while L <= H do begin
- I := (L + H) shr 1;
- C := CmpW32(wbCTDAFunctions[I].Index, aIndex);
- if C < 0 then
- L := I + 1
- else begin
- H := I - 1;
- if C = 0 then begin
- L := I;
- Result := @wbCTDAFunctions[L];
- end;
- end;
- end;
-end;
-
-function wbCTDACompValueDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- if Integer(Container.ElementByName['Type'].NativeValue) and $04 <> 0 then
- Result := 1;
-end;
-
-function wbEFITOBMEParamDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- ParamInfo: Variant;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- ParamInfo := Container.ElementNativeValues['..\EFME\EFIT Param Info'];
- if VarIsNull(ParamInfo) or VarIsEmpty(ParamInfo) then
- else
- Result := ParamInfo;
-end;
-
-function wbEFIXParamDecider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- ParamInfo: Variant;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- ParamInfo := Container.ElementNativeValues['..\EFME\EFIX Param Info'];
- if VarIsNull(ParamInfo) or VarIsEmpty(ParamInfo) then
- else
- Result := ParamInfo;
-end;
-
-function wbCTDAParam1Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType1));
-end;
-
-function wbCTDAParam2Decider(aBasePtr: Pointer; aEndPtr: Pointer; const aElement: IwbElement): Integer;
-var
- Desc: PCTDAFunction;
- Container: IwbContainer;
-begin
- Result := 0;
- if not Assigned(aElement) then Exit;
- Container := GetContainerFromUnion(aElement);
- if not Assigned(Container) then Exit;
-
- Desc := wbCTDAParamDescFromIndex(Container.ElementByName['Function'].NativeValue);
- if Assigned(Desc) then
- Result := Succ(Integer(Desc.ParamType2));
-end;
-{
-function wbCTDAFunction(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Desc: PCTDAFunction;
-begin
- Result := '';
- case aType of
- ctToStr: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := Desc.Name
- else
- Result := '';
- end;
- ctToSortKey: Result := IntToHex(aInt, 8);
- ctCheck: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := ''
- else
- Result := '';
- end;
- end;
-end;
-}
-function wbCTDAFunctionToStr(aInt: Int64; const aElement: IwbElement; aType: TwbCallbackType): string;
-var
- Desc : PCTDAFunction;
- i : Integer;
-begin
- Result := '';
- case aType of
- ctToStr, ctToEditValue: begin
- Desc := wbCTDAParamDescFromIndex(aInt);
- if Assigned(Desc) then
- Result := Desc.Name
- else if aType = ctToEditValue then
- Result := IntToStr(aInt)
- else
- Result := '