Jump to content

[LE] Multidimensional Arrays in Skyrim


PeterMartyr

Recommended Posts

This uses code released for Skyrim near as I can ascertain in May of 2015, in 2016 I attempted to create problematic Fake 2D Ragged Array, in a skyrim 1D Array, that exceeded the 128 limit, rightly so I was utterly defeated.

That one Array that Fakes a 2D multidimensional ragged array, and breaks the 128 element limit. You read right, and 2016 too.

 

Now I have not touch this game since early 2017. But my Google-Fu is strong, and I also search the wiki, pttttf the wiki...... not much help there, either it was non-practical, and static, but a real fake 2D array, or a pretend CSV file, not even an example an of fake 2D Array

Then I came across another of 2D example made in 2018 of multidimensional arrays in Skyrim on Nexus Mod, another example of CSV file. An application that uses CSV files saved to PC is Microsoft Excel. Honestly if you need a String Text Data Storage for your mod? Do not use arrays to store Strings on users game save, use the real thing with either J-Containers or PapyrusUtil for Pete Sake!! I will not link or name anything, how strong is your Google-Fu, read below to discover what CSV file is

A CSV is Comma Separated Value https://en.wikipedia.org/wiki/Comma-separated_values

I realise I made better progress back in 2016, but totally lacked the skill to pull off my design, so I revisited it, could I create problematic Fake 2D Ragged Array, that exceeded the 128 Array limit, using a single array.

Yep I did, and will post the code here, BUT..... it will be censored, these arrays use unsigned integer, that increase the Array length of 128 to over 4,000, 000, 000, also how to create an array problematically of various different lengths, on the fly will be censored too. If clever you works out code I used and go the Official Creation Wiki, you find NADA, NOTHING.. No one filled it out since May of 2015, no joke.But you will find examples of non practical static 2D arrays or CSV files

When I got introduce to multidimensional arrays, I given the choice of using the real deal or faking it with single array, it is not that hard, OFC I chose the real deal, this first time I am using a fake one since 2016. Why there is no good examples of how, I got no idea, unless, people just move on get professional, and don't look back.

 

 

 

Scriptname Fake2DArray extends form 
{
A 2D Multidimensional Ragged Array Management System

This is only a 1D Array :) BUT Fakes a 2D Ragged Array
}

int Property MaximumCapacityLimit = 1024 AutoReadOnly Hidden ; INCREASE WITH EXTREME CAUTION AND TEST THOROUGHLY

{ Be responsible, this uses an unsigned integer
which is a 32-bit datum that encodes a nonnegative integer in the range [0 to 4294967295]
potential values are 1 2 4 8 16 64 128 256 512 1024 2048 4096 8192 16834 as I have scripted it
Remember Skyrim is OLD and Buggy use large number at you own discretion }

;/ I axis = columns up & down (how I visualize it) and OFC the J axis = rows going across (how I visualize it )

[0][0][1][2][3]
[1][0][1][2][3][4][5]
[2][0][1][2][3][4]
[3][0][1][2][3]
[4][0][1][2]
[5][0][1][2][3]
[6][0][1][2][3][4]
[7][0][1][2]        it is a rule that row have no null values, It is only Fake one guys
[8][0][1]
[9][0]
[10][0][1][2]
[11][0][1][2][3][4]
[12][0]
[13][0]
[14][0][1][2] current data usage
[15][] size (this contains 15 Rows) and new data goes here without having to illiterate the array (if it was real 2D Array)
[16][]
[17][]
[18][] these rows are not declared and their length is declare at run time
[19][]
[20][] capacity

/;

int Property ColumnLimit = 128 AutoReadOnly Hidden ; INCREASE WITH EXTREME CAUTION AND TEST THOROUGHLY 

{ Maximum length of the I axis , which contains the J axis }

int Property RowLimit = 96 AutoReadOnly Hidden  ; INCREASE WITH EXTREME CAUTION AND TEST THOROUGHLY

{ I HAVE CONFIRMED VIA UNIT TESTING THIS CANNOT EXCEED 128.. 
the maximum length of the Row storing the Data, the J axis }

Form[] thisArray

int[] rowLength
int[] rowID
int numberOfRows

Int capacity
Int size
int columnCapacity

Form[] globalForms
Bool isResized

int random
Bool isFull
Bool bArray
Bool bRandomLock

Event OnInit()

	thisArray = new Form[1]
	rowLength = new int[1]
	rowID = new int[1]
	numberOfRows = 0
	capacity = 1
	size = 0
	columnCapacity = 1
EndEvent

Bool Function Add(Form akForm)

	If akForm == None
		Return False
	EndIf

	If !bRandomLock
	 	random = Utility.RandomInt(0, 100) * Utility.RandomInt(0, 100) * 1234
	EndIf
	
	Bool result = Self.AddForm(akForm, random)

	If result && !bArray
		rowID[numberOfRows] = (size - 1)
		rowLength[numberOfRows] = 1
		numberOfRows += 1
	EndIf
	
	Return result
EndFunction

Bool Function AddArray(Form[] akForms)

	bArray = True
	bRandomLock = True
	random = Utility.RandomInt(0, 100) * Utility.RandomInt(0, 100) * 1234

	CheckArrayLength(akForms, random)

	int index = 0
	bool result = False
	int count
	
	While index < akForms.Length
		If isFull
			Return False
		EndIf
		If Self.Add(akForms[index])
			result = True
			count += 1
		EndIf

		index +=1
	EndWhile

	If result
		rowID[numberOfRows] = (size - count)
		rowLength[numberOfRows] = count
		numberOfRows += 1
	EndIf

	bArray = False
	bRandomLock = False

	Return result
EndFunction

Bool Function RemoveRow(int thisRow)

	; is out out bounds ??
	If thisRow < 1 || thisRow >= numberOfRows
		Return False
	EndIf

	; remove values by consolidating the arrays, deleting with null values, is a waste of time and performance 

	int nLength = rowLength[thisRow]
	Int nIndex = rowID[thisRow]
	Int index = nIndex
	While index < size - nLength
		thisArray[index] = thisArray[index + nLength]
		index += 1
	EndWhile

	index = thisRow
	While index < numberOfRows - 1
		rowID[index] = rowID[index + 1]
		index += 1
	EndWhile

	index = thisRow
	While index < numberOfRows - 1
		rowLength[index] = rowLength[index + 1]
		index += 1
	EndWhile

	numberOfRows -= 1
	size -= nLength
	Return True
EndFunction

Form Function RemoveAt(int thisRow, int thisIndex)

	{
	TODO
	}
	
EndFunction

Form Function GetAt(int thisRow, int thisIndex)

	If numberOfRows > 0

		Return thisArray[rowID[thisRow] + thisIndex]
	EndIf

	Return None
EndFunction

Form[] Function GetRow(int thisRow)

	; is out out bounds ??
	if !(numberOfRows > 0 || thisRow < numberOfRows)
		Return new Form[1]
	EndIf

	Form[] akForms  ; code is censored sorry

	Int nIndex = rowID[thisRow]
	Int index = 0
	While index < akForms.Length
		akForms[index] = thisArray[index + nIndex]
		index += 1
	EndWhile

	Return akForms
EndFunction

Int Function GetSize()
	{Returns the size of the USED Elements data storage}

	return size
EndFunction

Int Function GetCapacity()
	{Returns the capacity of the total Elements used and unused}

	return capacity
EndFunction

Bool Function IsEmpty()
	
	Return  !thisArray[0] && size == 0
EndFunction

bool function Contains(form akElement)
	{Return True if found}

	return thisArray.rFind(akElement, size - 1) != -1
EndFunction

int Function GetRowLength(int thisRow)
	{Return length of this row  J index axis}

	;is out of bounds
	if numberOfRows > 0 && thisRow < numberOfRows
		Return rowLength[thisRow]
	EndIf
	Return -1
EndFunction

Int Function GetNumberOfRows()
	{the Data Length of I index axis}
	
	Return numberOfRows
EndFunction

Bool Function Clear()
	{Reset the 2D Array to Empty}

	Self.OnInit()
EndFunction

; ===================================================
;			    USE WITH CARE
; ===================================================

Form[] Function GetAll()
	{If some else can can get this to work, I cant}

	Debug.MessageBox("It appears skyrim still has its limitation, even with SKSE, it not possible to return an Array that as unsigned integer, across objects")
	Return New Form[1]
EndFunction

Function TrimToSize()
	{once it/if ever, the array gets finalized, I recommend trim to size to release unused memory allocation}

 ; code is censored sorry

EndFunction

; ===================================================
;              PRIVATE FUNCTIONS 
;    only this scripted object can use these
; ===================================================

Bool Function AddForm(Form akForm, int code)

	if code != random
		Return False
	Endif

	If !Self.IsArrayGood(code)
		Return False
	EndIf

	If !IsVariablesOK(code)
		Return False
	EndIf

	; reject duplicates 
	If !Contains(akForm)
		thisArray[size] = akForm
		size += 1
		Return thisArray[size - 1]
	EndIf

	Return False
EndFunction

Bool Function IsArrayGood(int code)

	if code != random
		Return False
	Endif

	; validate the input and the array condition

 ; code is censored sorry

	Return True
EndFunction

Bool Function IsVariablesOK(int code)

	if code != random
		Return False
	Endif

 ; code is censored sorry

	Return True
EndFunction

Function CheckArrayLength(Form[] akForms, int code)

	if code != random
		Return
	Endif

 ; code is censored sorry

EndFunction

; ===================================================
;			    PROTECTED FUNCTIONS
;			  SYSTEM DEBUGGINGLOGGING
; only the Quest containing this Script can call this
;   Yes I know it only stops an idiot, good enough
; ===================================================

string Property asUserLog = "2DArrayOutput" AutoReadOnly Hidden

Function ToUserTraceTwoD(Form sender)

	if Sender != Self
		Return
	Endif

	Debug.TraceUser(asUserLog, "Length of Array " + thisArray.Length)
  	Debug.TraceUser(asUserLog, "Size of the Data " + size)
	Debug.TraceUser(asUserLog, "Number of Virtual Rows " + numberOfRows)
	Debug.TraceUser(asUserLog, "================================================")
	Debug.TraceUser(asUserLog, "RowID FYI the 1D index start Element")
	Debug.TraceUser(asUserLog, "================================================")
  	int index = 0
  	While  index < rowID.Length && index < numberOfRows
  		Debug.TraceUser(asUserLog, "Index: [" + index + "], Element: "  + rowID[index])
  		index += 1
  	EndWhile
  	Debug.TraceUser(asUserLog, "================================================")
  	Debug.TraceUser(asUserLog, "The Lengths of the Row")
	Debug.TraceUser(asUserLog, "================================================")
	index = 0
  	While  index < rowLength.Length && index < numberOfRows
  		Debug.TraceUser(asUserLog, "Index: [" + index + "], Element: "  + rowLength[index])
  		index += 1
  	EndWhile
  	Debug.TraceUser(asUserLog, "================================================")
  	Debug.TraceUser(asUserLog, "Output the 2D Array Forms")
  	Debug.TraceUser(asUserLog, "================================================")
	index =0
	int I_Index = 0
	While I_Index < numberOfRows
		int J_Index = 0
		Debug.TraceUser(asUserLog, "2D Column index of "+ I_Index)
		Debug.TraceUser(asUserLog, "================================================")
		Debug.TraceUser(asUserLog, "1D index of " + index)
		Debug.TraceUser(asUserLog, "1D RowID Index of " + rowID[I_Index])
		Debug.TraceUser(asUserLog, "2D Row Length of " + rowLength[I_Index])
		While J_Index < rowLength[I_Index]
			Debug.TraceUser(asUserLog,"I_Index: [" + I_Index + "], J_Index [" + J_Index + "], Element: " + thisArray[index] + " BONUS(info) -> {1D index of " + index + "}")
			J_Index += 1
			index +=1
		EndWhile
		I_Index += 1
		Debug.TraceUser(asUserLog, "================================================")
	EndWhile
	
EndFunction

Function ToUserTraceOneD(Form sender)

	if Sender != Self
		Return
	Endif

	Debug.TraceUser(asUserLog, "================================================")
  	Debug.TraceUser(asUserLog, "Output the 1D Array Forms")
  	Debug.TraceUser(asUserLog, "================================================")
  	Debug.TraceUser(asUserLog, "Length of Array " + thisArray.Length)
  	Debug.TraceUser(asUserLog, "Size of the Data " + size)
	Int index = 0
	While index < Size
		Debug.TraceUser(asUserLog,"Element: " + thisArray[index] + " Index value of " + index)
		index+=1
	EndWhile
	Debug.TraceUser(asUserLog, "================================================")
  	Debug.TraceUser(asUserLog, "End of the 1D Array Forms")
  	Debug.TraceUser(asUserLog, "================================================")
EndFunction 

 

 

 

next came unit testing, let me say Equivalent testing and Boundary testing in a game like Skyrim is very annoying, I gave up and did not complete it :laugh: here some of the code

 

 

 

ScriptName UnitTests Extends Quest

string Property asUserLog = "2DArrayOutput" AutoReadOnly Hidden

Function OpenTraceLog()

	Utility.SetINIBool("bEnableLogging:Papyrus", True)
	Utility.SetINIBool("bEnableTrace:Papyrus", True)
	Debug.OpenUserLog(asUserLog)
EndFunction

Function CloseTraceLog()

	Debug.CloseUserLog(asUserLog)
	Utility.SetINIBool("bEnableLogging:Papyrus", False)
	Utility.SetINIBool("bEnableTrace:Papyrus", False)
	Debug.Notification("Custom Trace Logging Done")
EndFunction

WEAPON Property AkaviriKatana  Auto  

FormList Property ArrowTypeFormList  Auto  
FormList Property VoicesFollowerAll  Auto  
FormList Property ShoutsFormList  Auto  
FormList Property CityWindhelmResidentList  Auto  
FormList Property TownFalkreathResidentList  Auto  
FormList Property DisintegrationMainImmunityList  Auto  
FormList Property FavorGenericVoiceTypes  Auto  
FormList Property GiftGenericFemale  Auto  
FormList Property HeadPartsAllRacesMinusBeastVampires  Auto  


Fake2DArray myArray

Event OnInit()
	myArray = (Self As Form) as Fake2DArray
EndEvent

Function MokData()

	myArray.AddArray(ArrowTypeFormList.ToArray())
 	myArray.AddArray(VoicesFollowerAll.ToArray())
 	myArray.AddArray(ShoutsFormList.ToArray())
 	myArray.AddArray(CityWindhelmResidentList.ToArray())
 	myArray.AddArray(TownFalkreathResidentList.ToArray())
 	myArray.AddArray(DisintegrationMainImmunityList.ToArray())
 	myArray.AddArray(FavorGenericVoiceTypes.ToArray())
 	myArray.AddArray(GiftGenericFemale.ToArray())
 	myArray.AddArray(HeadPartsAllRacesMinusBeastVampires.ToArray())

EndFunction

Function Main()
{Do one test at a time, you can not do a proper unit test in A Game while running
logging only supports 4 outputs files}
	 

	TestAddRow()

	Debug.MessageBox("done")
EndFunction

Function TestAddRow()
	myArray.Clear()
	MokData()
	OpenTraceLog()
	myArray.ToUserTraceOneD(Self)
	CloseTraceLog()
	OpenTraceLog()
	myArray.ToUserTraceTwoD(Self)
	CloseTraceLog()
	Debug.MessageBox("done")
EndFunction
	
Function TestAdd()

	myArray.Clear()
	Debug.MessageBox("RESULT = " + (myArray.Add(AkaviriKatana) == true))
	Debug.MessageBox("RESULT = " + (myArray.GetSize() == 1))
	Debug.MessageBox("RESULT = size " + myArray.GetSize())
	Debug.MessageBox("RESULT = Contains " + (myArray.Contains(AkaviriKatana) == True))
	Debug.MessageBox("RESULT = " + (myArray.Add(AkaviriKatana) == true))
EndFunction

Function TestRemoveRow()
	myArray.Clear() ;just in case the save is dirty let clean it
	Self.MokData()
	OpenTraceLog()
	myArray.ToUserTraceTwoD(Self)
	CloseTraceLog()
	; Remove LOL Windhelm Residents  ID 3
	myArray.RemoveRow(3)
	OpenTraceLog()
	myArray.ToUserTraceTwoD(Self)
	CloseTraceLog()
	Debug.MessageBox("Current Size "+ myArray.GetSize())
	Debug.MessageBox("done")
EndFunction

Function TestGetAt()

	myArray.Clear() ;just in case the save is dirty let clean it
	myArray.AddArray(ArrowTypeFormList.ToArray())
 	myArray.AddArray(VoicesFollowerAll.ToArray())
 	myArray.AddArray(ShoutsFormList.ToArray())
 	myArray.Add(AkaviriKatana)
 	myArray.AddArray(CityWindhelmResidentList.ToArray())
 	myArray.AddArray(TownFalkreathResidentList.ToArray())

	; requires the item at at that index
	; Math :) I index 0 1 2 3 then J index 0
	Debug.MessageBox("Item at array[0][0] = " + (myArray.GetAt(3, 0) == AkaviriKatana))
EndFunction

Function TestGetRow()

	myArray.Clear() ;just in case the save is dirty let clean it
	Self.MokData()
	Self.OpenTraceLog()
 	myArray.ToUserTraceTwoD(Self)
 	Self.CloseTraceLog()
 	Form[] akForms = new Form[16]
	akForms = myArray.GetRow(4) ;Last one))
	Self.OpenTraceLog()
	int index = 0
	While index < akForms.Length
		Debug.TraceUser(asUserLog,"Element: " + akForms[index] + " Index value of " + index)
		index += 1
	EndWhile
 	Self.CloseTraceLog()
 	Debug.MessageBox("done")
EndFunction

Function TestSize()
	; we know this works cos we used heaps in other tests
EndFunction

Function TestGetCapacity()
	; ToDO
EndFunction

Function TestIsEmpty()
	myArray.Clear() ; just in case 
	Debug.MessageBox("Is Empty " + (myArray.IsEmpty() == True))
EndFunction

Function TestContains()
	myArray.Clear() ; just in case 
	Self.MokData()
	Self.MokData()
	Debug.MessageBox("Current Size "+ (myArray.GetSize() == 184))
EndFunction

Function TestRowLength()
	; we know this works or none of the tested virtual functions would works
EndFunction

Function TestNumberOfRows()
	; we know this works or none of the tested virtual functions would works
EndFunction

Function TestClear()
	myArray.Clear() ; just in case 
	Self.MokData()
	myArray.Clear()
	Debug.MessageBox("Clear the Array " + (myArray.GetSize() == 0))
EndFunction

Function TestGetAll()
	{Failed could not make it work, only a vanilla array[128] can passed between objects}

EndFunction

Function TestTrimToSize()
	; I trust the SKSE team, so I refuse to test this hehehehehehehe, plus I have used it before
EndFunction
 

 

 

 

which required a MCM so I could have button to fired the tests... Plus the maximum custom trace output is 4 files :huh: :down: poor me

 

 

 

Scriptname UnitTestMCMScript extends SKI_ConfigBase


UnitTests Property   unit Auto 


int unitTestKey = -1

Int Function GetVerion()
	
	Return 1
EndFunction

string Function GetCustomControl(int keyCode)

	If keyCode == unitTestKey
		Return "Unit Test Key"
	EndIf
	Return ""
EndFunction

Event OnPageReset(string a_page)
	
	AddKeyMapOptionST("UNIT_TEST_KEY", "Unit Test Key", unitTestKey, OPTION_FLAG_WITH_UNMAP)
EndEvent

State UNIT_TEST_KEY

	Event OnKeyMapChangeST(Int a_keyCode, string a_conflictControl, string a_conflictName)
		If Self.IsKeyCodeFree(a_keyCode, a_conflictControl, a_conflictName)
			unitTestKey = a_keyCode
			Self.SetKeyMapOptionValueST(a_keyCode)
			Self.KeyRegistration()
		EndIf
	EndEvent
	Event OnDefaultST()
		Self.OnKeyMapChangeST(0x16, "", "") ;  'U'
	EndEvent
	Event OnHighlightST()
		Self.SetInfoText("Assign HotKey To Execute a Unit Test")
	EndEvent
	
EndState

Bool Function IsKeyCodeFree(Int a_keyCode, String a_conflictControl, String a_conflictName)

	If a_keyCode == -1
		Return True
	EndIf
	If Game.UsingGamepad() && a_keyCode > 265
		Self.ShowMessage("$SKI_MSG1", False)
		Return False
	EndIf
	If(a_conflictControl != "")
		String sMsg
		If(a_conflictName != "")
			sMsg = "$DQ3_KeyMappedTo{" + a_conflictControl + "}_{" + a_conflictName + "}Continue"
		Else
			sMsg = "$DQ3_KeyMappedTo{" + a_conflictControl + "}WantToContinue"
		EndIf
		Return Self.ShowMessage(sMsg)
	EndIf
	Return True
EndFunction


Function KeyRegistration()

	if unitTestKey != -1
		Self.RegisterForKey(unitTestKey)
	Else
		Self.UnregisterForKey(unitTestKey)
	EndIf
EndFunction


Event OnKeyDown(int keyCode)

	if keyCode == unitTestKey
		Self.Run()
	EndIf
EndEvent

Function Run()

	unit.Main()
EndFunction 

 

 

 

Yeah, I made a Unit Test Mod, what did you expect me to run around in the game like moron ? not gonna happen

 

Here the result of one test, which displays the data dumped in a single array and in a Virtual 2D Array

 

 

 

[09/16/2023 - 09:33:44PM] 2DArrayOutput log opened (PC)
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] Output the 1D Array Forms
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] Length of Array 256
[09/16/2023 - 09:33:44PM] Size of the Data 239
[09/16/2023 - 09:33:44PM] Element: [Form < (00020F03)>] Index value of 0
[09/16/2023 - 09:33:44PM] Element: [Form < (00020DDE)>] Index value of 1
[09/16/2023 - 09:33:44PM] Element: [Form < (000AB23B)>] Index value of 2
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE12)>] Index value of 3
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE13)>] Index value of 4
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE11)>] Index value of 5
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE16)>] Index value of 6
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE19)>] Index value of 7
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE15)>] Index value of 8
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE17)>] Index value of 9
[09/16/2023 - 09:33:44PM] Element: [Form < (0007B933)>] Index value of 10
[09/16/2023 - 09:33:44PM] Element: [Form < (0007B936)>] Index value of 11
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE14)>] Index value of 12
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE1A)>] Index value of 13
[09/16/2023 - 09:33:44PM] Element: [Form < (0003BE18)>] Index value of 14
[09/16/2023 - 09:33:44PM] Element: [Form <MaleEvenTonedAccented (000EA267)>] Index value of 15
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleSultry (00013AE0)>] Index value of 16
[09/16/2023 - 09:33:44PM] Element: [Form <MaleDrunk (00013AD4)>] Index value of 17
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleDarkElf (00013AF3)>] Index value of 18
[09/16/2023 - 09:33:44PM] Element: [Form <MaleDarkElf (00013AF2)>] Index value of 19
[09/16/2023 - 09:33:44PM] Element: [Form <MaleNord (00013AE6)>] Index value of 20
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleCommander (00013AE3)>] Index value of 21
[09/16/2023 - 09:33:44PM] Element: [Form <MaleBrute (00013ADA)>] Index value of 22
[09/16/2023 - 09:33:44PM] Element: [Form <MaleArgonian (00013AEE)>] Index value of 23
[09/16/2023 - 09:33:44PM] Element: [Form <MaleKhajiit (00013AEC)>] Index value of 24
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleOrc (00013AEB)>] Index value of 25
[09/16/2023 - 09:33:44PM] Element: [Form <MaleOrc (00013AEA)>] Index value of 26
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleCondescending (00013AE4)>] Index value of 27
[09/16/2023 - 09:33:44PM] Element: [Form <MaleEvenToned (00013AD2)>] Index value of 28
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleEvenToned (00013ADD)>] Index value of 29
[09/16/2023 - 09:33:44PM] Element: [VoiceType <MaleYoungEager (00013AD1)>] Index value of 30
[09/16/2023 - 09:33:44PM] Element: [VoiceType <FemaleYoungEager (00013ADC)>] Index value of 31
[09/16/2023 - 09:33:44PM] Element: [VoiceType <FemaleNord (00013AE7)>] Index value of 32
[09/16/2023 - 09:33:44PM] Element: [VoiceType <_FemaleUniquePoupa (0C000E3C)>] Index value of 33
[09/16/2023 - 09:33:44PM] Element: [Form < (0002F7C0)>] Index value of 34
[09/16/2023 - 09:33:44PM] Element: [Form < (0002F7BF)>] Index value of 35
[09/16/2023 - 09:33:44PM] Element: [Form < (0002F7BE)>] Index value of 36
[09/16/2023 - 09:33:44PM] Element: [sPELL < (00013F3A)>] Index value of 37
[09/16/2023 - 09:33:44PM] Element: [sPELL < (00013F39)>] Index value of 38
[09/16/2023 - 09:33:44PM] Element: [sPELL < (00013E09)>] Index value of 39
[09/16/2023 - 09:33:44PM] Element: [Form < (0007430F)>] Index value of 40
[09/16/2023 - 09:33:44PM] Element: [Form < (0001860D)>] Index value of 41
[09/16/2023 - 09:33:44PM] Element: [Form < (0001860A)>] Index value of 42
[09/16/2023 - 09:33:44PM] Element: [Form < (00018609)>] Index value of 43
[09/16/2023 - 09:33:44PM] Element: [sPELL < (000E771A)>] Index value of 44
[09/16/2023 - 09:33:44PM] Element: [Form < (00048AD2)>] Index value of 45
[09/16/2023 - 09:33:44PM] Element: [Form < (00048AD1)>] Index value of 46
[09/16/2023 - 09:33:44PM] Element: [Form < (00048AD0)>] Index value of 47
[09/16/2023 - 09:33:44PM] Element: [Form < (0001862B)>] Index value of 48
[09/16/2023 - 09:33:44PM] Element: [Form < (00018627)>] Index value of 49
[09/16/2023 - 09:33:44PM] Element: [Form < (0001861F)>] Index value of 50
[09/16/2023 - 09:33:44PM] Element: [Form < (00082A3A)>] Index value of 51
[09/16/2023 - 09:33:44PM] Element: [Form < (00082A39)>] Index value of 52
[09/16/2023 - 09:33:44PM] Element: [Form < (00082A34)>] Index value of 53
[09/16/2023 - 09:33:44PM] Element: [Form < (0009CAF2)>] Index value of 54
[09/16/2023 - 09:33:44PM] Element: [Form < (0009CAF1)>] Index value of 55
[09/16/2023 - 09:33:44PM] Element: [Form < (0009CAF0)>] Index value of 56
[09/16/2023 - 09:33:44PM] Element: [Form < (0005D174)>] Index value of 57
[09/16/2023 - 09:33:44PM] Element: [Form < (0005D173)>] Index value of 58
[09/16/2023 - 09:33:44PM] Element: [Form < (0005D172)>] Index value of 59
[09/16/2023 - 09:33:44PM] Element: [Form < (0003F9ED)>] Index value of 60
[09/16/2023 - 09:33:44PM] Element: [Form < (0003F9EC)>] Index value of 61
[09/16/2023 - 09:33:44PM] Element: [Form < (0003F9EB)>] Index value of 62
[09/16/2023 - 09:33:44PM] Element: [Form < (0004DBA8)>] Index value of 63
[09/16/2023 - 09:33:44PM] Element: [Form < (0004DBA7)>] Index value of 64
[09/16/2023 - 09:33:44PM] Element: [Form < (0004DBA6)>] Index value of 65
[09/16/2023 - 09:33:44PM] Element: [Form < (0009CD4F)>] Index value of 66
[09/16/2023 - 09:33:44PM] Element: [Form < (0009CD4E)>] Index value of 67
[09/16/2023 - 09:33:44PM] Element: [Form < (0002C595)>] Index value of 68
[09/16/2023 - 09:33:44PM] Element: [Form < (00028345)>] Index value of 69
[09/16/2023 - 09:33:44PM] Element: [Form < (00028315)>] Index value of 70
[09/16/2023 - 09:33:44PM] Element: [Form < (00044254)>] Index value of 71
[09/16/2023 - 09:33:44PM] Element: [Form < (000549B3)>] Index value of 72
[09/16/2023 - 09:33:44PM] Element: [Form < (000742CE)>] Index value of 73
[09/16/2023 - 09:33:44PM] Element: [Form < (000252C2)>] Index value of 74
[09/16/2023 - 09:33:44PM] Element: [Form < (00023967)>] Index value of 75
[09/16/2023 - 09:33:44PM] Element: [Form < (0002395E)>] Index value of 76
[09/16/2023 - 09:33:44PM] Element: [Form < (0002395B)>] Index value of 77
[09/16/2023 - 09:33:44PM] Element: [Form < (0008BB29)>] Index value of 78
[09/16/2023 - 09:33:44PM] Element: [Form < (0008BB28)>] Index value of 79
[09/16/2023 - 09:33:44PM] Element: [Form < (0008BB27)>] Index value of 80
[09/16/2023 - 09:33:44PM] Element: [Form < (00078BA4)>] Index value of 81
[09/16/2023 - 09:33:44PM] Element: [Form < (00078BA3)>] Index value of 82
[09/16/2023 - 09:33:44PM] Element: [Form < (00078BA2)>] Index value of 83
[09/16/2023 - 09:33:44PM] Element: [sPELL < (0003F50D)>] Index value of 84
[09/16/2023 - 09:33:44PM] Element: [sPELL < (0003F50C)>] Index value of 85
[09/16/2023 - 09:33:44PM] Element: [sPELL < (0003F50B)>] Index value of 86
[09/16/2023 - 09:33:44PM] Element: [Form < (00051969)>] Index value of 87
[09/16/2023 - 09:33:44PM] Element: [Form < (00051964)>] Index value of 88
[09/16/2023 - 09:33:44PM] Element: [Form < (00051967)>] Index value of 89
[09/16/2023 - 09:33:44PM] Element: [Form < (00046B85)>] Index value of 90
[09/16/2023 - 09:33:44PM] Element: [Form < (0005F6ED)>] Index value of 91
[09/16/2023 - 09:33:44PM] Element: [Form < (0005F6EC)>] Index value of 92
[09/16/2023 - 09:33:44PM] Element: [Form < (0005F6EB)>] Index value of 93
[09/16/2023 - 09:33:44PM] Element: [Form < (0008AFCE)>] Index value of 94
[09/16/2023 - 09:33:44PM] Element: [Form < (0008AFCD)>] Index value of 95
[09/16/2023 - 09:33:44PM] Element: [Form < (0008AFCC)>] Index value of 96
[09/16/2023 - 09:33:44PM] Element: [Form < (0009E0CE)>] Index value of 97
[09/16/2023 - 09:33:44PM] Element: [Form < (0009E0CD)>] Index value of 98
[09/16/2023 - 09:33:44PM] Element: [Form < (0009E0CC)>] Index value of 99
[09/16/2023 - 09:33:44PM] Element: [Form < (000E40CF)>] Index value of 100
[09/16/2023 - 09:33:44PM] Element: [Form < (000E40C3)>] Index value of 101
[09/16/2023 - 09:33:44PM] Element: [Form < (000E40CA)>] Index value of 102
[09/16/2023 - 09:33:44PM] Element: [Form < (0002F2DE)>] Index value of 103
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF7A1)>] Index value of 104
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF7A0)>] Index value of 105
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF79D)>] Index value of 106
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF793)>] Index value of 107
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF792)>] Index value of 108
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF791)>] Index value of 109
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF78C)>] Index value of 110
[09/16/2023 - 09:33:44PM] Element: [Form < (000CF78D)>] Index value of 111
[09/16/2023 - 09:33:44PM] Element: [Form < (000CE217)>] Index value of 112
[09/16/2023 - 09:33:44PM] Element: [Form < (000E5F6E)>] Index value of 113
[09/16/2023 - 09:33:44PM] Element: [Form < (000E5F6D)>] Index value of 114
[09/16/2023 - 09:33:44PM] Element: [Form < (000E5F6C)>] Index value of 115
[09/16/2023 - 09:33:44PM] Element: [sPELL < (000E4909)>] Index value of 116
[09/16/2023 - 09:33:44PM] Element: [Form < (00059324)>] Index value of 117
[09/16/2023 - 09:33:44PM] Element: [Form < (00090355)>] Index value of 118
[09/16/2023 - 09:33:44PM] Element: [Form < (0001414C)>] Index value of 119
[09/16/2023 - 09:33:44PM] Element: [Form < (0001414E)>] Index value of 120
[09/16/2023 - 09:33:44PM] Element: [Form < (0001B074)>] Index value of 121
[09/16/2023 - 09:33:44PM] Element: [Form < (00014140)>] Index value of 122
[09/16/2023 - 09:33:44PM] Element: [Form < (0001E94C)>] Index value of 123
[09/16/2023 - 09:33:44PM] Element: [Form < (0001414B)>] Index value of 124
[09/16/2023 - 09:33:44PM] Element: [Form < (0001414A)>] Index value of 125
[09/16/2023 - 09:33:44PM] Element: [Form < (00014149)>] Index value of 126
[09/16/2023 - 09:33:44PM] Element: [Form < (00014148)>] Index value of 127
[09/16/2023 - 09:33:44PM] Element: [Form < (00014147)>] Index value of 128
[09/16/2023 - 09:33:44PM] Element: [Form < (00014146)>] Index value of 129
[09/16/2023 - 09:33:44PM] Element: [Form < (00014145)>] Index value of 130
[09/16/2023 - 09:33:44PM] Element: [Form < (00014144)>] Index value of 131
[09/16/2023 - 09:33:44PM] Element: [Form < (00014128)>] Index value of 132
[09/16/2023 - 09:33:44PM] Element: [ActorBase < (00029D96)>] Index value of 133
[09/16/2023 - 09:33:44PM] Element: [Form < (00014142)>] Index value of 134
[09/16/2023 - 09:33:44PM] Element: [Form < (00014141)>] Index value of 135
[09/16/2023 - 09:33:44PM] Element: [Form < (0001E957)>] Index value of 136
[09/16/2023 - 09:33:44PM] Element: [Form < (0001413F)>] Index value of 137
[09/16/2023 - 09:33:44PM] Element: [Form < (0001413E)>] Index value of 138
[09/16/2023 - 09:33:44PM] Element: [Form < (0001413C)>] Index value of 139
[09/16/2023 - 09:33:44PM] Element: [Form < (0001413B)>] Index value of 140
[09/16/2023 - 09:33:44PM] Element: [Form < (0001413A)>] Index value of 141
[09/16/2023 - 09:33:44PM] Element: [Form < (00014137)>] Index value of 142
[09/16/2023 - 09:33:44PM] Element: [Form < (00014135)>] Index value of 143
[09/16/2023 - 09:33:44PM] Element: [Form < (00014134)>] Index value of 144
[09/16/2023 - 09:33:44PM] Element: [Form < (00014133)>] Index value of 145
[09/16/2023 - 09:33:44PM] Element: [Form < (00014132)>] Index value of 146
[09/16/2023 - 09:33:44PM] Element: [Form < (00014130)>] Index value of 147
[09/16/2023 - 09:33:44PM] Element: [Form < (0001412F)>] Index value of 148
[09/16/2023 - 09:33:44PM] Element: [Form < (0001412E)>] Index value of 149
[09/16/2023 - 09:33:44PM] Element: [Form < (0001412D)>] Index value of 150
[09/16/2023 - 09:33:44PM] Element: [Form < (0001412C)>] Index value of 151
[09/16/2023 - 09:33:44PM] Element: [Form < (0001412B)>] Index value of 152
[09/16/2023 - 09:33:44PM] Element: [Form < (0001412A)>] Index value of 153
[09/16/2023 - 09:33:44PM] Element: [Form < (00014129)>] Index value of 154
[09/16/2023 - 09:33:44PM] Element: [Form < (00014124)>] Index value of 155
[09/16/2023 - 09:33:44PM] Element: [Form < (00014125)>] Index value of 156
[09/16/2023 - 09:33:44PM] Element: [Form < (00014143)>] Index value of 157
[09/16/2023 - 09:33:44PM] Element: [Form < (00014127)>] Index value of 158
[09/16/2023 - 09:33:44PM] Element: [ActorBase < (00014123)>] Index value of 159
[09/16/2023 - 09:33:44PM] Element: [Form < (00014122)>] Index value of 160
[09/16/2023 - 09:33:44PM] Element: [Form < (00014121)>] Index value of 161
[09/16/2023 - 09:33:44PM] Element: [Form < (00014120)>] Index value of 162
[09/16/2023 - 09:33:44PM] Element: [Form < (0001E956)>] Index value of 163
[09/16/2023 - 09:33:44PM] Element: [Form < (0001411D)>] Index value of 164
[09/16/2023 - 09:33:44PM] Element: [Form < (0001411B)>] Index value of 165
[09/16/2023 - 09:33:44PM] Element: [Form < (0001411A)>] Index value of 166
[09/16/2023 - 09:33:44PM] Element: [Form < (0001414D)>] Index value of 167
[09/16/2023 - 09:33:44PM] Element: [Form < (0003A19A)>] Index value of 168
[09/16/2023 - 09:33:44PM] Element: [Form < (0004E5E9)>] Index value of 169
[09/16/2023 - 09:33:44PM] Element: [Form < (0001365A)>] Index value of 170
[09/16/2023 - 09:33:44PM] Element: [Form < (00013659)>] Index value of 171
[09/16/2023 - 09:33:44PM] Element: [Form < (00013657)>] Index value of 172
[09/16/2023 - 09:33:44PM] Element: [Form < (00013656)>] Index value of 173
[09/16/2023 - 09:33:44PM] Element: [Form < (00013655)>] Index value of 174
[09/16/2023 - 09:33:44PM] Element: [Form < (00013654)>] Index value of 175
[09/16/2023 - 09:33:44PM] Element: [Form < (00013653)>] Index value of 176
[09/16/2023 - 09:33:44PM] Element: [Form < (00013652)>] Index value of 177
[09/16/2023 - 09:33:44PM] Element: [Form < (00013651)>] Index value of 178
[09/16/2023 - 09:33:44PM] Element: [ActorBase < (00013650)>] Index value of 179
[09/16/2023 - 09:33:44PM] Element: [Form < (0001364F)>] Index value of 180
[09/16/2023 - 09:33:44PM] Element: [Form < (0001364E)>] Index value of 181
[09/16/2023 - 09:33:44PM] Element: [Form < (0001364D)>] Index value of 182
[09/16/2023 - 09:33:44PM] Element: [Form < (0001364C)>] Index value of 183
[09/16/2023 - 09:33:44PM] Element: [Form <WitchlightRace (00013209)>] Index value of 184
[09/16/2023 - 09:33:44PM] Element: [Form <WispShadeRace (000F1182)>] Index value of 185
[09/16/2023 - 09:33:44PM] Element: [Form <WispRace (00013208)>] Index value of 186
[09/16/2023 - 09:33:44PM] Element: [Form <MagicAnomalyRace (000B6F95)>] Index value of 187
[09/16/2023 - 09:33:44PM] Element: [Form <IceWraithRace (000131FE)>] Index value of 188
[09/16/2023 - 09:33:44PM] Element: [Form <DragonPriestRace (000131EF)>] Index value of 189
[09/16/2023 - 09:33:44PM] Element: [Form <AtronachStormRace (000131F7)>] Index value of 190
[09/16/2023 - 09:33:44PM] Element: [Form <AtronachFrostRace (000131F6)>] Index value of 191
[09/16/2023 - 09:33:44PM] Element: [Form <AtronachFlameRace (000131F5)>] Index value of 192
[09/16/2023 - 09:33:44PM] Element: [Form <AlduinRace (000E7713)>] Index value of 193
[09/16/2023 - 09:33:44PM] Element: [Form <DragonRace (00012E82)>] Index value of 194
[09/16/2023 - 09:33:44PM] Element: [Form <DwarvenCenturionRace (000131F1)>] Index value of 195
[09/16/2023 - 09:33:44PM] Element: [Race <DwarvenSphereRace (000131F2)>] Index value of 196
[09/16/2023 - 09:33:44PM] Element: [Race <DwarvenSpiderRace (000131F3)>] Index value of 197
[09/16/2023 - 09:33:44PM] Element: [Race <DLC2AcolyteDragonPriestRace (0403911A)>] Index value of 198
[09/16/2023 - 09:33:44PM] Element: [Race <DLC2ExpSpiderBaseRace (04014449)>] Index value of 199
[09/16/2023 - 09:33:44PM] Element: [Race <DLC2AshSpawnRace (0401B637)>] Index value of 200
[09/16/2023 - 09:33:44PM] Element: [Race <DLC2SeekerRace (0401DCB9)>] Index value of 201
[09/16/2023 - 09:33:44PM] Element: [Actor < (00000014)>] Index value of 202
[09/16/2023 - 09:33:44PM] Element: [Form <MaleCommonerAccented (000EA266)>] Index value of 203
[09/16/2023 - 09:33:44PM] Element: [Form <MaleCommander (00013AD8)>] Index value of 204
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleElfHaughty (00013AF1)>] Index value of 205
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleOldKindly (00013AE1)>] Index value of 206
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleOldGrumpy (00013AE2)>] Index value of 207
[09/16/2023 - 09:33:44PM] Element: [Form <MaleOldKindly (00013AD6)>] Index value of 208
[09/16/2023 - 09:33:44PM] Element: [Form <MaleOldGrumpy (00013AD7)>] Index value of 209
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleShrill (00013BC3)>] Index value of 210
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleKhajiit (00013AED)>] Index value of 211
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleCoward (00013AE5)>] Index value of 212
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleArgonian (00013AEF)>] Index value of 213
[09/16/2023 - 09:33:44PM] Element: [Form <FemaleCommoner (00013ADE)>] Index value of 214
[09/16/2023 - 09:33:44PM] Element: [Form <MaleCoward (00013ADB)>] Index value of 215
[09/16/2023 - 09:33:44PM] Element: [Form <MaleSlyCynical (00013AD5)>] Index value of 216
[09/16/2023 - 09:33:44PM] Element: [Form <MaleElfHaughty (00013AF0)>] Index value of 217
[09/16/2023 - 09:33:44PM] Element: [Form <MaleCondescending (00013AD9)>] Index value of 218
[09/16/2023 - 09:33:44PM] Element: [Form <MaleCommoner (00013AD3)>] Index value of 219
[09/16/2023 - 09:33:44PM] Element: [Form <GiftFlower (000A0E54)>] Index value of 220
[09/16/2023 - 09:33:44PM] Element: [Form <VendorItemSoulGem (000937A3)>] Index value of 221
[09/16/2023 - 09:33:44PM] Element: [Form <GiftUniversallyValuable (000A0E55)>] Index value of 222
[09/16/2023 - 09:33:44PM] Element: [Form <VendorItemPotion (0008CDEC)>] Index value of 223
[09/16/2023 - 09:33:44PM] Element: [Form <VendorItemJewelry (0008F95A)>] Index value of 224
[09/16/2023 - 09:33:44PM] Element: [Form <VendorItemGem (000914ED)>] Index value of 225
[09/16/2023 - 09:33:44PM] Element: [Form <VendorItemFood (0008CDEA)>] Index value of 226
[09/16/2023 - 09:33:44PM] Element: [Form <VendorItemClothing (0008F95B)>] Index value of 227
[09/16/2023 - 09:33:44PM] Element: [Form <VendorItemAnimalHide (000914EA)>] Index value of 228
[09/16/2023 - 09:33:44PM] Element: [Race <OrcRace (00013747)>] Index value of 229
[09/16/2023 - 09:33:44PM] Element: [Race <WoodElfRace (00013749)>] Index value of 230
[09/16/2023 - 09:33:44PM] Element: [Race <RedguardRace (00013748)>] Index value of 231
[09/16/2023 - 09:33:44PM] Element: [Race <NordRace (00013746)>] Index value of 232
[09/16/2023 - 09:33:44PM] Element: [Race <ImperialRace (00013744)>] Index value of 233
[09/16/2023 - 09:33:44PM] Element: [Race <HighElfRace (00013743)>] Index value of 234
[09/16/2023 - 09:33:44PM] Element: [Race <ElderRace (00067CD8)>] Index value of 235
[09/16/2023 - 09:33:44PM] Element: [Race <DarkElfRace (00013742)>] Index value of 236
[09/16/2023 - 09:33:44PM] Element: [Race <BretonRace (00013741)>] Index value of 237
[09/16/2023 - 09:33:44PM] Element: [Form <DA13AfflictedRace (00097A3D)>] Index value of 238
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] End of the 1D Array Forms
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] Log closed

 

 

 

 

 

[09/16/2023 - 09:33:44PM] 2DArrayOutput log opened (PC)
[09/16/2023 - 09:33:44PM] Length of Array 256
[09/16/2023 - 09:33:44PM] Size of the Data 239
[09/16/2023 - 09:33:44PM] Number of Virtual Rows 9
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] RowID FYI the 1D index start Element
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] Index: [0], Element: 0
[09/16/2023 - 09:33:44PM] Index: [1], Element: 15
[09/16/2023 - 09:33:44PM] Index: [2], Element: 34
[09/16/2023 - 09:33:44PM] Index: [3], Element: 119
[09/16/2023 - 09:33:44PM] Index: [4], Element: 168
[09/16/2023 - 09:33:44PM] Index: [5], Element: 184
[09/16/2023 - 09:33:44PM] Index: [6], Element: 203
[09/16/2023 - 09:33:44PM] Index: [7], Element: 220
[09/16/2023 - 09:33:44PM] Index: [8], Element: 229
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] The Lengths of the Row
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] Index: [0], Element: 15
[09/16/2023 - 09:33:44PM] Index: [1], Element: 19
[09/16/2023 - 09:33:44PM] Index: [2], Element: 85
[09/16/2023 - 09:33:44PM] Index: [3], Element: 49
[09/16/2023 - 09:33:44PM] Index: [4], Element: 16
[09/16/2023 - 09:33:44PM] Index: [5], Element: 19
[09/16/2023 - 09:33:44PM] Index: [6], Element: 17
[09/16/2023 - 09:33:44PM] Index: [7], Element: 9
[09/16/2023 - 09:33:44PM] Index: [8], Element: 10
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] Output the 2D Array Forms
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 0
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 0
[09/16/2023 - 09:33:44PM] 1D RowID Index of 0
[09/16/2023 - 09:33:44PM] 2D Row Length of 15
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [0], Element: [Form < (00020F03)>] BONUS(info) -> {1D index of 0}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [1], Element: [Form < (00020DDE)>] BONUS(info) -> {1D index of 1}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [2], Element: [Form < (000AB23B)>] BONUS(info) -> {1D index of 2}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [3], Element: [Form < (0003BE12)>] BONUS(info) -> {1D index of 3}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [4], Element: [Form < (0003BE13)>] BONUS(info) -> {1D index of 4}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [5], Element: [Form < (0003BE11)>] BONUS(info) -> {1D index of 5}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [6], Element: [Form < (0003BE16)>] BONUS(info) -> {1D index of 6}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [7], Element: [Form < (0003BE19)>] BONUS(info) -> {1D index of 7}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [8], Element: [Form < (0003BE15)>] BONUS(info) -> {1D index of 8}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [9], Element: [Form < (0003BE17)>] BONUS(info) -> {1D index of 9}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [10], Element: [Form < (0007B933)>] BONUS(info) -> {1D index of 10}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [11], Element: [Form < (0007B936)>] BONUS(info) -> {1D index of 11}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [12], Element: [Form < (0003BE14)>] BONUS(info) -> {1D index of 12}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [13], Element: [Form < (0003BE1A)>] BONUS(info) -> {1D index of 13}
[09/16/2023 - 09:33:44PM] I_Index: [0], J_Index [14], Element: [Form < (0003BE18)>] BONUS(info) -> {1D index of 14}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 1
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 15
[09/16/2023 - 09:33:44PM] 1D RowID Index of 15
[09/16/2023 - 09:33:44PM] 2D Row Length of 19
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [0], Element: [Form <MaleEvenTonedAccented (000EA267)>] BONUS(info) -> {1D index of 15}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [1], Element: [Form <FemaleSultry (00013AE0)>] BONUS(info) -> {1D index of 16}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [2], Element: [Form <MaleDrunk (00013AD4)>] BONUS(info) -> {1D index of 17}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [3], Element: [Form <FemaleDarkElf (00013AF3)>] BONUS(info) -> {1D index of 18}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [4], Element: [Form <MaleDarkElf (00013AF2)>] BONUS(info) -> {1D index of 19}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [5], Element: [Form <MaleNord (00013AE6)>] BONUS(info) -> {1D index of 20}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [6], Element: [Form <FemaleCommander (00013AE3)>] BONUS(info) -> {1D index of 21}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [7], Element: [Form <MaleBrute (00013ADA)>] BONUS(info) -> {1D index of 22}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [8], Element: [Form <MaleArgonian (00013AEE)>] BONUS(info) -> {1D index of 23}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [9], Element: [Form <MaleKhajiit (00013AEC)>] BONUS(info) -> {1D index of 24}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [10], Element: [Form <FemaleOrc (00013AEB)>] BONUS(info) -> {1D index of 25}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [11], Element: [Form <MaleOrc (00013AEA)>] BONUS(info) -> {1D index of 26}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [12], Element: [Form <FemaleCondescending (00013AE4)>] BONUS(info) -> {1D index of 27}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [13], Element: [Form <MaleEvenToned (00013AD2)>] BONUS(info) -> {1D index of 28}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [14], Element: [Form <FemaleEvenToned (00013ADD)>] BONUS(info) -> {1D index of 29}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [15], Element: [VoiceType <MaleYoungEager (00013AD1)>] BONUS(info) -> {1D index of 30}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [16], Element: [VoiceType <FemaleYoungEager (00013ADC)>] BONUS(info) -> {1D index of 31}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [17], Element: [VoiceType <FemaleNord (00013AE7)>] BONUS(info) -> {1D index of 32}
[09/16/2023 - 09:33:44PM] I_Index: [1], J_Index [18], Element: [VoiceType <_FemaleUniquePoupa (0C000E3C)>] BONUS(info) -> {1D index of 33}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 2
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 34
[09/16/2023 - 09:33:44PM] 1D RowID Index of 34
[09/16/2023 - 09:33:44PM] 2D Row Length of 85
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [0], Element: [Form < (0002F7C0)>] BONUS(info) -> {1D index of 34}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [1], Element: [Form < (0002F7BF)>] BONUS(info) -> {1D index of 35}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [2], Element: [Form < (0002F7BE)>] BONUS(info) -> {1D index of 36}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [3], Element: [sPELL < (00013F3A)>] BONUS(info) -> {1D index of 37}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [4], Element: [sPELL < (00013F39)>] BONUS(info) -> {1D index of 38}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [5], Element: [sPELL < (00013E09)>] BONUS(info) -> {1D index of 39}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [6], Element: [Form < (0007430F)>] BONUS(info) -> {1D index of 40}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [7], Element: [Form < (0001860D)>] BONUS(info) -> {1D index of 41}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [8], Element: [Form < (0001860A)>] BONUS(info) -> {1D index of 42}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [9], Element: [Form < (00018609)>] BONUS(info) -> {1D index of 43}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [10], Element: [sPELL < (000E771A)>] BONUS(info) -> {1D index of 44}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [11], Element: [Form < (00048AD2)>] BONUS(info) -> {1D index of 45}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [12], Element: [Form < (00048AD1)>] BONUS(info) -> {1D index of 46}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [13], Element: [Form < (00048AD0)>] BONUS(info) -> {1D index of 47}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [14], Element: [Form < (0001862B)>] BONUS(info) -> {1D index of 48}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [15], Element: [Form < (00018627)>] BONUS(info) -> {1D index of 49}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [16], Element: [Form < (0001861F)>] BONUS(info) -> {1D index of 50}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [17], Element: [Form < (00082A3A)>] BONUS(info) -> {1D index of 51}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [18], Element: [Form < (00082A39)>] BONUS(info) -> {1D index of 52}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [19], Element: [Form < (00082A34)>] BONUS(info) -> {1D index of 53}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [20], Element: [Form < (0009CAF2)>] BONUS(info) -> {1D index of 54}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [21], Element: [Form < (0009CAF1)>] BONUS(info) -> {1D index of 55}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [22], Element: [Form < (0009CAF0)>] BONUS(info) -> {1D index of 56}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [23], Element: [Form < (0005D174)>] BONUS(info) -> {1D index of 57}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [24], Element: [Form < (0005D173)>] BONUS(info) -> {1D index of 58}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [25], Element: [Form < (0005D172)>] BONUS(info) -> {1D index of 59}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [26], Element: [Form < (0003F9ED)>] BONUS(info) -> {1D index of 60}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [27], Element: [Form < (0003F9EC)>] BONUS(info) -> {1D index of 61}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [28], Element: [Form < (0003F9EB)>] BONUS(info) -> {1D index of 62}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [29], Element: [Form < (0004DBA8)>] BONUS(info) -> {1D index of 63}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [30], Element: [Form < (0004DBA7)>] BONUS(info) -> {1D index of 64}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [31], Element: [Form < (0004DBA6)>] BONUS(info) -> {1D index of 65}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [32], Element: [Form < (0009CD4F)>] BONUS(info) -> {1D index of 66}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [33], Element: [Form < (0009CD4E)>] BONUS(info) -> {1D index of 67}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [34], Element: [Form < (0002C595)>] BONUS(info) -> {1D index of 68}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [35], Element: [Form < (00028345)>] BONUS(info) -> {1D index of 69}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [36], Element: [Form < (00028315)>] BONUS(info) -> {1D index of 70}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [37], Element: [Form < (00044254)>] BONUS(info) -> {1D index of 71}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [38], Element: [Form < (000549B3)>] BONUS(info) -> {1D index of 72}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [39], Element: [Form < (000742CE)>] BONUS(info) -> {1D index of 73}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [40], Element: [Form < (000252C2)>] BONUS(info) -> {1D index of 74}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [41], Element: [Form < (00023967)>] BONUS(info) -> {1D index of 75}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [42], Element: [Form < (0002395E)>] BONUS(info) -> {1D index of 76}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [43], Element: [Form < (0002395B)>] BONUS(info) -> {1D index of 77}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [44], Element: [Form < (0008BB29)>] BONUS(info) -> {1D index of 78}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [45], Element: [Form < (0008BB28)>] BONUS(info) -> {1D index of 79}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [46], Element: [Form < (0008BB27)>] BONUS(info) -> {1D index of 80}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [47], Element: [Form < (00078BA4)>] BONUS(info) -> {1D index of 81}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [48], Element: [Form < (00078BA3)>] BONUS(info) -> {1D index of 82}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [49], Element: [Form < (00078BA2)>] BONUS(info) -> {1D index of 83}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [50], Element: [sPELL < (0003F50D)>] BONUS(info) -> {1D index of 84}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [51], Element: [sPELL < (0003F50C)>] BONUS(info) -> {1D index of 85}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [52], Element: [sPELL < (0003F50B)>] BONUS(info) -> {1D index of 86}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [53], Element: [Form < (00051969)>] BONUS(info) -> {1D index of 87}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [54], Element: [Form < (00051964)>] BONUS(info) -> {1D index of 88}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [55], Element: [Form < (00051967)>] BONUS(info) -> {1D index of 89}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [56], Element: [Form < (00046B85)>] BONUS(info) -> {1D index of 90}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [57], Element: [Form < (0005F6ED)>] BONUS(info) -> {1D index of 91}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [58], Element: [Form < (0005F6EC)>] BONUS(info) -> {1D index of 92}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [59], Element: [Form < (0005F6EB)>] BONUS(info) -> {1D index of 93}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [60], Element: [Form < (0008AFCE)>] BONUS(info) -> {1D index of 94}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [61], Element: [Form < (0008AFCD)>] BONUS(info) -> {1D index of 95}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [62], Element: [Form < (0008AFCC)>] BONUS(info) -> {1D index of 96}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [63], Element: [Form < (0009E0CE)>] BONUS(info) -> {1D index of 97}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [64], Element: [Form < (0009E0CD)>] BONUS(info) -> {1D index of 98}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [65], Element: [Form < (0009E0CC)>] BONUS(info) -> {1D index of 99}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [66], Element: [Form < (000E40CF)>] BONUS(info) -> {1D index of 100}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [67], Element: [Form < (000E40C3)>] BONUS(info) -> {1D index of 101}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [68], Element: [Form < (000E40CA)>] BONUS(info) -> {1D index of 102}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [69], Element: [Form < (0002F2DE)>] BONUS(info) -> {1D index of 103}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [70], Element: [Form < (000CF7A1)>] BONUS(info) -> {1D index of 104}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [71], Element: [Form < (000CF7A0)>] BONUS(info) -> {1D index of 105}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [72], Element: [Form < (000CF79D)>] BONUS(info) -> {1D index of 106}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [73], Element: [Form < (000CF793)>] BONUS(info) -> {1D index of 107}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [74], Element: [Form < (000CF792)>] BONUS(info) -> {1D index of 108}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [75], Element: [Form < (000CF791)>] BONUS(info) -> {1D index of 109}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [76], Element: [Form < (000CF78C)>] BONUS(info) -> {1D index of 110}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [77], Element: [Form < (000CF78D)>] BONUS(info) -> {1D index of 111}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [78], Element: [Form < (000CE217)>] BONUS(info) -> {1D index of 112}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [79], Element: [Form < (000E5F6E)>] BONUS(info) -> {1D index of 113}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [80], Element: [Form < (000E5F6D)>] BONUS(info) -> {1D index of 114}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [81], Element: [Form < (000E5F6C)>] BONUS(info) -> {1D index of 115}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [82], Element: [sPELL < (000E4909)>] BONUS(info) -> {1D index of 116}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [83], Element: [Form < (00059324)>] BONUS(info) -> {1D index of 117}
[09/16/2023 - 09:33:44PM] I_Index: [2], J_Index [84], Element: [Form < (00090355)>] BONUS(info) -> {1D index of 118}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 3
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 119
[09/16/2023 - 09:33:44PM] 1D RowID Index of 119
[09/16/2023 - 09:33:44PM] 2D Row Length of 49
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [0], Element: [Form < (0001414C)>] BONUS(info) -> {1D index of 119}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [1], Element: [Form < (0001414E)>] BONUS(info) -> {1D index of 120}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [2], Element: [Form < (0001B074)>] BONUS(info) -> {1D index of 121}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [3], Element: [Form < (00014140)>] BONUS(info) -> {1D index of 122}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [4], Element: [Form < (0001E94C)>] BONUS(info) -> {1D index of 123}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [5], Element: [Form < (0001414B)>] BONUS(info) -> {1D index of 124}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [6], Element: [Form < (0001414A)>] BONUS(info) -> {1D index of 125}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [7], Element: [Form < (00014149)>] BONUS(info) -> {1D index of 126}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [8], Element: [Form < (00014148)>] BONUS(info) -> {1D index of 127}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [9], Element: [Form < (00014147)>] BONUS(info) -> {1D index of 128}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [10], Element: [Form < (00014146)>] BONUS(info) -> {1D index of 129}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [11], Element: [Form < (00014145)>] BONUS(info) -> {1D index of 130}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [12], Element: [Form < (00014144)>] BONUS(info) -> {1D index of 131}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [13], Element: [Form < (00014128)>] BONUS(info) -> {1D index of 132}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [14], Element: [ActorBase < (00029D96)>] BONUS(info) -> {1D index of 133}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [15], Element: [Form < (00014142)>] BONUS(info) -> {1D index of 134}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [16], Element: [Form < (00014141)>] BONUS(info) -> {1D index of 135}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [17], Element: [Form < (0001E957)>] BONUS(info) -> {1D index of 136}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [18], Element: [Form < (0001413F)>] BONUS(info) -> {1D index of 137}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [19], Element: [Form < (0001413E)>] BONUS(info) -> {1D index of 138}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [20], Element: [Form < (0001413C)>] BONUS(info) -> {1D index of 139}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [21], Element: [Form < (0001413B)>] BONUS(info) -> {1D index of 140}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [22], Element: [Form < (0001413A)>] BONUS(info) -> {1D index of 141}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [23], Element: [Form < (00014137)>] BONUS(info) -> {1D index of 142}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [24], Element: [Form < (00014135)>] BONUS(info) -> {1D index of 143}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [25], Element: [Form < (00014134)>] BONUS(info) -> {1D index of 144}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [26], Element: [Form < (00014133)>] BONUS(info) -> {1D index of 145}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [27], Element: [Form < (00014132)>] BONUS(info) -> {1D index of 146}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [28], Element: [Form < (00014130)>] BONUS(info) -> {1D index of 147}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [29], Element: [Form < (0001412F)>] BONUS(info) -> {1D index of 148}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [30], Element: [Form < (0001412E)>] BONUS(info) -> {1D index of 149}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [31], Element: [Form < (0001412D)>] BONUS(info) -> {1D index of 150}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [32], Element: [Form < (0001412C)>] BONUS(info) -> {1D index of 151}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [33], Element: [Form < (0001412B)>] BONUS(info) -> {1D index of 152}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [34], Element: [Form < (0001412A)>] BONUS(info) -> {1D index of 153}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [35], Element: [Form < (00014129)>] BONUS(info) -> {1D index of 154}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [36], Element: [Form < (00014124)>] BONUS(info) -> {1D index of 155}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [37], Element: [Form < (00014125)>] BONUS(info) -> {1D index of 156}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [38], Element: [Form < (00014143)>] BONUS(info) -> {1D index of 157}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [39], Element: [Form < (00014127)>] BONUS(info) -> {1D index of 158}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [40], Element: [ActorBase < (00014123)>] BONUS(info) -> {1D index of 159}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [41], Element: [Form < (00014122)>] BONUS(info) -> {1D index of 160}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [42], Element: [Form < (00014121)>] BONUS(info) -> {1D index of 161}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [43], Element: [Form < (00014120)>] BONUS(info) -> {1D index of 162}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [44], Element: [Form < (0001E956)>] BONUS(info) -> {1D index of 163}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [45], Element: [Form < (0001411D)>] BONUS(info) -> {1D index of 164}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [46], Element: [Form < (0001411B)>] BONUS(info) -> {1D index of 165}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [47], Element: [Form < (0001411A)>] BONUS(info) -> {1D index of 166}
[09/16/2023 - 09:33:44PM] I_Index: [3], J_Index [48], Element: [Form < (0001414D)>] BONUS(info) -> {1D index of 167}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 4
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 168
[09/16/2023 - 09:33:44PM] 1D RowID Index of 168
[09/16/2023 - 09:33:44PM] 2D Row Length of 16
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [0], Element: [Form < (0003A19A)>] BONUS(info) -> {1D index of 168}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [1], Element: [Form < (0004E5E9)>] BONUS(info) -> {1D index of 169}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [2], Element: [Form < (0001365A)>] BONUS(info) -> {1D index of 170}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [3], Element: [Form < (00013659)>] BONUS(info) -> {1D index of 171}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [4], Element: [Form < (00013657)>] BONUS(info) -> {1D index of 172}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [5], Element: [Form < (00013656)>] BONUS(info) -> {1D index of 173}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [6], Element: [Form < (00013655)>] BONUS(info) -> {1D index of 174}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [7], Element: [Form < (00013654)>] BONUS(info) -> {1D index of 175}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [8], Element: [Form < (00013653)>] BONUS(info) -> {1D index of 176}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [9], Element: [Form < (00013652)>] BONUS(info) -> {1D index of 177}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [10], Element: [Form < (00013651)>] BONUS(info) -> {1D index of 178}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [11], Element: [ActorBase < (00013650)>] BONUS(info) -> {1D index of 179}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [12], Element: [Form < (0001364F)>] BONUS(info) -> {1D index of 180}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [13], Element: [Form < (0001364E)>] BONUS(info) -> {1D index of 181}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [14], Element: [Form < (0001364D)>] BONUS(info) -> {1D index of 182}
[09/16/2023 - 09:33:44PM] I_Index: [4], J_Index [15], Element: [Form < (0001364C)>] BONUS(info) -> {1D index of 183}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 5
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 184
[09/16/2023 - 09:33:44PM] 1D RowID Index of 184
[09/16/2023 - 09:33:44PM] 2D Row Length of 19
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [0], Element: [Form <WitchlightRace (00013209)>] BONUS(info) -> {1D index of 184}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [1], Element: [Form <WispShadeRace (000F1182)>] BONUS(info) -> {1D index of 185}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [2], Element: [Form <WispRace (00013208)>] BONUS(info) -> {1D index of 186}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [3], Element: [Form <MagicAnomalyRace (000B6F95)>] BONUS(info) -> {1D index of 187}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [4], Element: [Form <IceWraithRace (000131FE)>] BONUS(info) -> {1D index of 188}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [5], Element: [Form <DragonPriestRace (000131EF)>] BONUS(info) -> {1D index of 189}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [6], Element: [Form <AtronachStormRace (000131F7)>] BONUS(info) -> {1D index of 190}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [7], Element: [Form <AtronachFrostRace (000131F6)>] BONUS(info) -> {1D index of 191}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [8], Element: [Form <AtronachFlameRace (000131F5)>] BONUS(info) -> {1D index of 192}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [9], Element: [Form <AlduinRace (000E7713)>] BONUS(info) -> {1D index of 193}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [10], Element: [Form <DragonRace (00012E82)>] BONUS(info) -> {1D index of 194}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [11], Element: [Form <DwarvenCenturionRace (000131F1)>] BONUS(info) -> {1D index of 195}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [12], Element: [Race <DwarvenSphereRace (000131F2)>] BONUS(info) -> {1D index of 196}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [13], Element: [Race <DwarvenSpiderRace (000131F3)>] BONUS(info) -> {1D index of 197}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [14], Element: [Race <DLC2AcolyteDragonPriestRace (0403911A)>] BONUS(info) -> {1D index of 198}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [15], Element: [Race <DLC2ExpSpiderBaseRace (04014449)>] BONUS(info) -> {1D index of 199}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [16], Element: [Race <DLC2AshSpawnRace (0401B637)>] BONUS(info) -> {1D index of 200}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [17], Element: [Race <DLC2SeekerRace (0401DCB9)>] BONUS(info) -> {1D index of 201}
[09/16/2023 - 09:33:44PM] I_Index: [5], J_Index [18], Element: [Actor < (00000014)>] BONUS(info) -> {1D index of 202}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 6
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 203
[09/16/2023 - 09:33:44PM] 1D RowID Index of 203
[09/16/2023 - 09:33:44PM] 2D Row Length of 17
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [0], Element: [Form <MaleCommonerAccented (000EA266)>] BONUS(info) -> {1D index of 203}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [1], Element: [Form <MaleCommander (00013AD8)>] BONUS(info) -> {1D index of 204}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [2], Element: [Form <FemaleElfHaughty (00013AF1)>] BONUS(info) -> {1D index of 205}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [3], Element: [Form <FemaleOldKindly (00013AE1)>] BONUS(info) -> {1D index of 206}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [4], Element: [Form <FemaleOldGrumpy (00013AE2)>] BONUS(info) -> {1D index of 207}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [5], Element: [Form <MaleOldKindly (00013AD6)>] BONUS(info) -> {1D index of 208}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [6], Element: [Form <MaleOldGrumpy (00013AD7)>] BONUS(info) -> {1D index of 209}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [7], Element: [Form <FemaleShrill (00013BC3)>] BONUS(info) -> {1D index of 210}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [8], Element: [Form <FemaleKhajiit (00013AED)>] BONUS(info) -> {1D index of 211}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [9], Element: [Form <FemaleCoward (00013AE5)>] BONUS(info) -> {1D index of 212}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [10], Element: [Form <FemaleArgonian (00013AEF)>] BONUS(info) -> {1D index of 213}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [11], Element: [Form <FemaleCommoner (00013ADE)>] BONUS(info) -> {1D index of 214}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [12], Element: [Form <MaleCoward (00013ADB)>] BONUS(info) -> {1D index of 215}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [13], Element: [Form <MaleSlyCynical (00013AD5)>] BONUS(info) -> {1D index of 216}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [14], Element: [Form <MaleElfHaughty (00013AF0)>] BONUS(info) -> {1D index of 217}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [15], Element: [Form <MaleCondescending (00013AD9)>] BONUS(info) -> {1D index of 218}
[09/16/2023 - 09:33:44PM] I_Index: [6], J_Index [16], Element: [Form <MaleCommoner (00013AD3)>] BONUS(info) -> {1D index of 219}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 7
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 220
[09/16/2023 - 09:33:44PM] 1D RowID Index of 220
[09/16/2023 - 09:33:44PM] 2D Row Length of 9
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [0], Element: [Form <GiftFlower (000A0E54)>] BONUS(info) -> {1D index of 220}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [1], Element: [Form <VendorItemSoulGem (000937A3)>] BONUS(info) -> {1D index of 221}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [2], Element: [Form <GiftUniversallyValuable (000A0E55)>] BONUS(info) -> {1D index of 222}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [3], Element: [Form <VendorItemPotion (0008CDEC)>] BONUS(info) -> {1D index of 223}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [4], Element: [Form <VendorItemJewelry (0008F95A)>] BONUS(info) -> {1D index of 224}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [5], Element: [Form <VendorItemGem (000914ED)>] BONUS(info) -> {1D index of 225}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [6], Element: [Form <VendorItemFood (0008CDEA)>] BONUS(info) -> {1D index of 226}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [7], Element: [Form <VendorItemClothing (0008F95B)>] BONUS(info) -> {1D index of 227}
[09/16/2023 - 09:33:44PM] I_Index: [7], J_Index [8], Element: [Form <VendorItemAnimalHide (000914EA)>] BONUS(info) -> {1D index of 228}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 2D Column index of 8
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] 1D index of 229
[09/16/2023 - 09:33:44PM] 1D RowID Index of 229
[09/16/2023 - 09:33:44PM] 2D Row Length of 10
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [0], Element: [Race <OrcRace (00013747)>] BONUS(info) -> {1D index of 229}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [1], Element: [Race <WoodElfRace (00013749)>] BONUS(info) -> {1D index of 230}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [2], Element: [Race <RedguardRace (00013748)>] BONUS(info) -> {1D index of 231}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [3], Element: [Race <NordRace (00013746)>] BONUS(info) -> {1D index of 232}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [4], Element: [Race <ImperialRace (00013744)>] BONUS(info) -> {1D index of 233}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [5], Element: [Race <HighElfRace (00013743)>] BONUS(info) -> {1D index of 234}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [6], Element: [Race <ElderRace (00067CD8)>] BONUS(info) -> {1D index of 235}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [7], Element: [Race <DarkElfRace (00013742)>] BONUS(info) -> {1D index of 236}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [8], Element: [Race <BretonRace (00013741)>] BONUS(info) -> {1D index of 237}
[09/16/2023 - 09:33:44PM] I_Index: [8], J_Index [9], Element: [Form <DA13AfflictedRace (00097A3D)>] BONUS(info) -> {1D index of 238}
[09/16/2023 - 09:33:44PM] ================================================
[09/16/2023 - 09:33:44PM] Log closed

 

 

 

Yes I made a Virtual 2D Ragged Array Management System so it could have practical application in the Game. You may say I am happy with my FormList mate, all that show is you not know Lists are heaps slower than Arrays. While using more more PC memory allocation.

 

It had one major issue I could not pass the array from one object to another object, it seem Skyrim is hardcoded to 128 in more ways than one, but I made the "Rows" maximum of a 128, so one row at time anyone? in Virtual Ragged 2D array that supports over 4 billion data elements?

 

Would I recommend to use this ? HELL NO :devil: Skyrim is old buggy game, my weekend was free, and hated the Fact it beat me.. but multiple arrays capable of 4 Billion, in Skyrim, are you crazy ?

What was the hardest part ? using Papyrus. OGM how I hated using it, no wonder people don't look back :laugh: :laugh:

 

 

Now you know why I censored the code. :geek:

Link to comment
Share on other sites

Hi guys just let me say it is a rule of thumb that you do not do with a List what you can do with an Array. Array sizes are static once declared and there size allocation cannot be change in the memory. BUT that does does mean you cannot resize an Array. Made a new one, that bigger, copy that data over, overwrite the old Array variable memory pointer with the new bigger array with the same Data. The PC OP will delete the old memory, and the pointer now points to bigger array with the same data, waiting to be filled with more data.

 

Ultimately it is up to you which one you use.. but an Array is faster.

 

A List will reject duplicates, how does it know it is a duplicate ? a list cannot snap to the end of the list, it as to always start at the beginning and illiterate thru the entire List, if it is found, reject it, or keep going, when it is at the end of the list it will add a new item. Every time.

 

Another example Get(20) a list goes 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 alliterating through to 20 there you go

 

This is an Array item[20] there you go, see why it is faster? Or add at item[20] Done

 

List add at 20 a list goes 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 alliterating through to 20 now let's add this.

 

Now you make informed decision... I use both.. A list is more versatile but that comes at a performance cost, if you don't need the versatility of a list you should be using an array, it is that simple.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...