@zebbedaja/er-save-parser 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,4 +1,11 @@
1
1
  //#region src/util.ts
2
+ /**
3
+ * Compare two ArrayBuffers for byte-by-byte equality.
4
+ *
5
+ * @param buf1 - The first ArrayBuffer to compare
6
+ * @param buf2 - The second ArrayBuffer to compare
7
+ * @returns True if both buffers have identical byte content
8
+ */
2
9
  function arrayBuffersEqual(buf1, buf2) {
3
10
  if (buf1.byteLength !== buf2.byteLength) return false;
4
11
  const view1 = new Uint8Array(buf1);
@@ -6,25 +13,58 @@ function arrayBuffersEqual(buf1, buf2) {
6
13
  for (let i = 0; i < view1.length; i++) if (view1[i] !== view2[i]) return false;
7
14
  return true;
8
15
  }
16
+ /**
17
+ * Convert a string into an array of byte values.
18
+ *
19
+ * @param string - The string to convert
20
+ * @returns An array of ASCII/Unicode byte values for each character
21
+ */
9
22
  function stringToBytes(string) {
10
23
  return [...string].map((character) => character.charCodeAt(0));
11
24
  }
25
+ /**
26
+ * Convert an ArrayBuffer to a lowercase hexadecimal string.
27
+ *
28
+ * @param buffer - The ArrayBuffer to convert
29
+ * @returns A lowercase hexadecimal string representation of the buffer
30
+ */
12
31
  function toHexString(buffer) {
13
32
  const bytes = new Uint8Array(buffer);
14
33
  return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
15
34
  }
35
+ /**
36
+ * Remove all null ('\x00') characters from a string.
37
+ *
38
+ * @param text - The string to clean
39
+ * @returns The input string with all null ('\x00') characters removed
40
+ */
16
41
  const trim = (text) => {
17
42
  return text?.replaceAll("\0", "");
18
43
  };
19
- const parseToMap = (text) => {
44
+ /**
45
+ * Parse a string of delimiter-separated "key,value" pairs into a Map.
46
+ *
47
+ * @param text - A string of delimiter-separated pairs, one per line
48
+ * @param delimiter - The character separating key and value (default: ",")
49
+ * @returns A Map with numeric keys and values parsed from the input
50
+ */
51
+ const parseToMap = (text, delimiter = ",") => {
20
52
  const map = /* @__PURE__ */ new Map();
21
53
  const lines = text.trim().split("\n");
22
54
  for (const line of lines) {
23
- const [key, value] = line.trim().split(",");
55
+ const [key, value] = line.trim().split(delimiter);
24
56
  if (key && value !== void 0) map.set(Number(key), Number(value));
25
57
  }
26
58
  return map;
27
59
  };
60
+ /**
61
+ * Determine whether a specific event flag is set.
62
+ *
63
+ * @param bstMap - A map of block IDs to their binary offsets
64
+ * @param eventFlags - The raw event_flags byte array from the save data
65
+ * @param eventId - The event ID to check
66
+ * @returns True if the event flag is set (active), false otherwise
67
+ */
28
68
  const getEventFlagState = (bstMap, eventFlags, eventId) => {
29
69
  const FLAG_DIVISOR = 1e3;
30
70
  const BLOCK_SIZE = 125;
@@ -43,14 +83,2704 @@ const getEventFlagState = (bstMap, eventFlags, eventId) => {
43
83
  //#region src/event-flags.ts
44
84
  const eventFlags = [
45
85
  {
46
- name: "Playthrough Complete: Age of Stars",
86
+ id: 20,
87
+ name: "Playthrough Complete: Age of Fracture",
88
+ category: "ending"
89
+ },
90
+ {
47
91
  id: 21,
92
+ name: "Playthrough Complete: Age of Stars",
93
+ category: "ending"
94
+ },
95
+ {
96
+ id: 22,
97
+ name: "Playthrough Complete: Lord of the Frenzied Flame",
48
98
  category: "ending"
49
99
  },
50
100
  {
51
- name: "Playthrough Complete: Lord of the Frenzied Flame",
52
- id: 22,
53
- category: "ending"
101
+ id: 30,
102
+ name: "Trigger New Game Plus",
103
+ category: "ng"
104
+ },
105
+ {
106
+ id: 50,
107
+ name: "Playthrough Lap: 0",
108
+ category: "ng"
109
+ },
110
+ {
111
+ id: 51,
112
+ name: "Playthrough Lap: 1",
113
+ category: "ng"
114
+ },
115
+ {
116
+ id: 52,
117
+ name: "Playthrough Lap: 2",
118
+ category: "ng"
119
+ },
120
+ {
121
+ id: 53,
122
+ name: "Playthrough Lap: 3",
123
+ category: "ng"
124
+ },
125
+ {
126
+ id: 54,
127
+ name: "Playthrough Lap: 4",
128
+ category: "ng"
129
+ },
130
+ {
131
+ id: 55,
132
+ name: "Playthrough Lap: 5",
133
+ category: "ng"
134
+ },
135
+ {
136
+ id: 56,
137
+ name: "Playthrough Lap: 6",
138
+ category: "ng"
139
+ },
140
+ {
141
+ id: 57,
142
+ name: "Playthrough Lap: 7",
143
+ category: "ng"
144
+ },
145
+ {
146
+ id: 58,
147
+ name: "Playthrough Lap: 8",
148
+ category: "ng"
149
+ },
150
+ {
151
+ id: 70,
152
+ name: "Apply DLC Game Clear SpEffect (Occurs if Radahn, Consort of Miquella is beated and NG+ is entered)",
153
+ category: "dlcClear"
154
+ },
155
+ {
156
+ id: 100,
157
+ name: "Story: Start",
158
+ category: "story"
159
+ },
160
+ {
161
+ id: 101,
162
+ name: "Story: Reached Tutorial",
163
+ category: "story"
164
+ },
165
+ {
166
+ id: 102,
167
+ name: "Story: Reached Limgrave",
168
+ category: "story"
169
+ },
170
+ {
171
+ id: 104,
172
+ name: "Story: Reached Roundtable Hold",
173
+ category: "story"
174
+ },
175
+ {
176
+ id: 105,
177
+ name: "Story: Roundtable Hold Introduction",
178
+ category: "story"
179
+ },
180
+ {
181
+ id: 108,
182
+ name: "Story: Received the Frenzied Flame",
183
+ category: "story"
184
+ },
185
+ {
186
+ id: 109,
187
+ name: "Story: Received the Frenzied Flame (back)",
188
+ category: "story"
189
+ },
190
+ {
191
+ id: 110,
192
+ name: "Story: Reached Forge of the Giants",
193
+ category: "story"
194
+ },
195
+ {
196
+ id: 111,
197
+ name: "Story: Forge of the Giants - Melina A",
198
+ category: "story"
199
+ },
200
+ {
201
+ id: 112,
202
+ name: "Story: Forge of the Giants - Melina B",
203
+ category: "story"
204
+ },
205
+ {
206
+ id: 114,
207
+ name: "Story: Ranni",
208
+ category: "story"
209
+ },
210
+ {
211
+ id: 116,
212
+ name: "Story: Frenzied Flame Nullified",
213
+ category: "story"
214
+ },
215
+ {
216
+ id: 118,
217
+ name: "Story: Erdtree on Fire",
218
+ category: "story"
219
+ },
220
+ {
221
+ id: 120,
222
+ name: "Story: Watched Ending",
223
+ category: "story"
224
+ },
225
+ {
226
+ id: 130,
227
+ name: "Arrival: Stormveil Castle",
228
+ category: "arrival"
229
+ },
230
+ {
231
+ id: 131,
232
+ name: "Arrival: Morne Castle",
233
+ category: "arrival"
234
+ },
235
+ {
236
+ id: 132,
237
+ name: "Arrival: Academy of Raya Lucaria",
238
+ category: "arrival"
239
+ },
240
+ {
241
+ id: 133,
242
+ name: "Arrival: Ruin-Strewn Precipice",
243
+ category: "arrival"
244
+ },
245
+ {
246
+ id: 134,
247
+ name: "Arrival: Volcano Manor",
248
+ category: "arrival"
249
+ },
250
+ {
251
+ id: 135,
252
+ name: "Arrival: Volcano Manor (Inner)",
253
+ category: "arrival"
254
+ },
255
+ {
256
+ id: 136,
257
+ name: "Arrival: Leyndell, Royal Capital",
258
+ category: "arrival"
259
+ },
260
+ {
261
+ id: 137,
262
+ name: "Arrival: Subterranean Shunning-Grounds",
263
+ category: "arrival"
264
+ },
265
+ {
266
+ id: 138,
267
+ name: "Arrival: Miquella's Haligtree - Canopy",
268
+ category: "arrival"
269
+ },
270
+ {
271
+ id: 139,
272
+ name: "Arrival: Miquella's Haligtree - Trunk",
273
+ category: "arrival"
274
+ },
275
+ {
276
+ id: 140,
277
+ name: "Arrival: Downhill Ruins",
278
+ category: "arrival"
279
+ },
280
+ {
281
+ id: 180,
282
+ name: "Great Rune Count: 0",
283
+ category: "greatRuneCount"
284
+ },
285
+ {
286
+ id: 181,
287
+ name: "Great Rune Count: 1",
288
+ category: "greatRuneCount"
289
+ },
290
+ {
291
+ id: 182,
292
+ name: "Great Rune Count: 2",
293
+ category: "greatRuneCount"
294
+ },
295
+ {
296
+ id: 183,
297
+ name: "Great Rune Count: 3",
298
+ category: "greatRuneCount"
299
+ },
300
+ {
301
+ id: 184,
302
+ name: "Great Rune Count: 4",
303
+ category: "greatRuneCount"
304
+ },
305
+ {
306
+ id: 185,
307
+ name: "Great Rune Count: 5",
308
+ category: "greatRuneCount"
309
+ },
310
+ {
311
+ id: 186,
312
+ name: "Great Rune Count: 6",
313
+ category: "greatRuneCount"
314
+ },
315
+ {
316
+ id: 187,
317
+ name: "Great Rune Count: 7",
318
+ category: "greatRuneCount"
319
+ },
320
+ {
321
+ id: 191,
322
+ name: "Acquired Godrick's Great Rune",
323
+ category: "greatRune"
324
+ },
325
+ {
326
+ id: 192,
327
+ name: "Acquired Radahn's Great Rune",
328
+ category: "greatRune"
329
+ },
330
+ {
331
+ id: 193,
332
+ name: "Acquired Morgott's Great Rune",
333
+ category: "greatRune"
334
+ },
335
+ {
336
+ id: 194,
337
+ name: "Acquired Rykard's Great Rune",
338
+ category: "greatRune"
339
+ },
340
+ {
341
+ id: 195,
342
+ name: "Acquired Mohg's Great Rune",
343
+ category: "greatRune"
344
+ },
345
+ {
346
+ id: 196,
347
+ name: "Acquired Malenia's Great Rune",
348
+ category: "greatRune"
349
+ },
350
+ {
351
+ id: 197,
352
+ name: "Acquired Great Rune of the Unborn",
353
+ category: "greatRune"
354
+ },
355
+ {
356
+ id: 200,
357
+ name: "Is Host",
358
+ category: "other"
359
+ },
360
+ {
361
+ id: 201,
362
+ name: "Is Guest",
363
+ category: "other"
364
+ },
365
+ {
366
+ id: 210,
367
+ name: "Host in Legacy Dungeon",
368
+ category: "other"
369
+ },
370
+ {
371
+ id: 211,
372
+ name: "Guest in Legacy Dungeon",
373
+ category: "other"
374
+ },
375
+ {
376
+ id: 220,
377
+ name: "Host in Legacy Dungeon",
378
+ category: "other"
379
+ },
380
+ {
381
+ id: 221,
382
+ name: "Guest in Legacy Dungeon",
383
+ category: "other"
384
+ },
385
+ {
386
+ id: 300,
387
+ name: "World Event: Erdtree Burnt",
388
+ category: "worldEvent"
389
+ },
390
+ {
391
+ id: 301,
392
+ name: "World Event: Erdtree Burnt (Flaming Sparks)",
393
+ category: "worldEvent"
394
+ },
395
+ {
396
+ id: 302,
397
+ name: "World Event: Erdtree Burnt (Small Flames)",
398
+ category: "worldEvent"
399
+ },
400
+ {
401
+ id: 310,
402
+ name: "World Event: Green Meteorite",
403
+ category: "worldEvent"
404
+ },
405
+ {
406
+ id: 311,
407
+ name: "World Event: Snowfield Meteorite",
408
+ category: "worldEvent"
409
+ },
410
+ {
411
+ id: 312,
412
+ name: "World Event: Plain Meteorite",
413
+ category: "worldEvent"
414
+ },
415
+ {
416
+ id: 320,
417
+ name: "World Event: Carian Study Hall Reversal",
418
+ category: "worldEvent"
419
+ },
420
+ {
421
+ id: 370,
422
+ name: "World Event: Carian Study Hall Reversal",
423
+ category: "worldEvent"
424
+ },
425
+ {
426
+ id: 530,
427
+ name: "Time: Morning",
428
+ category: "time"
429
+ },
430
+ {
431
+ id: 531,
432
+ name: "Time: Noon",
433
+ category: "time"
434
+ },
435
+ {
436
+ id: 532,
437
+ name: "Time: Night",
438
+ category: "time"
439
+ },
440
+ {
441
+ id: 550,
442
+ name: "Weather: Fine",
443
+ category: "weather"
444
+ },
445
+ {
446
+ id: 551,
447
+ name: "Weather: Sunny",
448
+ category: "weather"
449
+ },
450
+ {
451
+ id: 552,
452
+ name: "Weather: Cloudy",
453
+ category: "weather"
454
+ },
455
+ {
456
+ id: 553,
457
+ name: "Weather: Lightly Cloudy",
458
+ category: "weather"
459
+ },
460
+ {
461
+ id: 554,
462
+ name: "Weather: Rain",
463
+ category: "weather"
464
+ },
465
+ {
466
+ id: 555,
467
+ name: "Weather: Heavy Rain",
468
+ category: "weather"
469
+ },
470
+ {
471
+ id: 556,
472
+ name: "Weather: Storm",
473
+ category: "weather"
474
+ },
475
+ {
476
+ id: 557,
477
+ name: "Weather: Storm",
478
+ category: "weather"
479
+ },
480
+ {
481
+ id: 558,
482
+ name: "Weather: Snow",
483
+ category: "weather"
484
+ },
485
+ {
486
+ id: 559,
487
+ name: "Weather: Heavy Snow",
488
+ category: "weather"
489
+ },
490
+ {
491
+ id: 560,
492
+ name: "Weather: Fog",
493
+ category: "weather"
494
+ },
495
+ {
496
+ id: 561,
497
+ name: "Weather: Thick Fog",
498
+ category: "weather"
499
+ },
500
+ {
501
+ id: 562,
502
+ name: "Weather: Thick Fog and Rain",
503
+ category: "weather"
504
+ },
505
+ {
506
+ id: 563,
507
+ name: "Weather: Sandstorm",
508
+ category: "weather"
509
+ },
510
+ {
511
+ id: 570,
512
+ name: "Weather Group: Fine",
513
+ category: "weatherGroup"
514
+ },
515
+ {
516
+ id: 571,
517
+ name: "Weather Group: Cloudy",
518
+ category: "weatherGroup"
519
+ },
520
+ {
521
+ id: 572,
522
+ name: "Weather Group: Rain",
523
+ category: "weatherGroup"
524
+ },
525
+ {
526
+ id: 573,
527
+ name: "Weather Group: Snow",
528
+ category: "weatherGroup"
529
+ },
530
+ {
531
+ id: 574,
532
+ name: "Weather Group: Fog",
533
+ category: "weatherGroup"
534
+ },
535
+ {
536
+ id: 575,
537
+ name: "Weather Group: Other",
538
+ category: "weatherGroup"
539
+ },
540
+ {
541
+ id: 1e3,
542
+ name: "default",
543
+ category: "other"
544
+ },
545
+ {
546
+ id: 6e3,
547
+ name: "Always OFF",
548
+ category: "other"
549
+ },
550
+ {
551
+ id: 6001,
552
+ name: "Always ON",
553
+ category: "other"
554
+ },
555
+ {
556
+ id: 9100,
557
+ name: "Defeated Godrick the Grafted",
558
+ category: "defeated"
559
+ },
560
+ {
561
+ id: 9101,
562
+ name: "Defeated Margit, the Fell Omen",
563
+ category: "defeated"
564
+ },
565
+ {
566
+ id: 9103,
567
+ name: "Defeated Grafted Scion",
568
+ category: "defeated"
569
+ },
570
+ {
571
+ id: 9104,
572
+ name: "Defeated Morgott, the Omen King",
573
+ category: "defeated"
574
+ },
575
+ {
576
+ id: 9105,
577
+ name: "Defeated Godfrey, First Elden Lord",
578
+ category: "defeated"
579
+ },
580
+ {
581
+ id: 9106,
582
+ name: "Defeated Sir Gideon Ofnir, the All-Knowing",
583
+ category: "defeated"
584
+ },
585
+ {
586
+ id: 9107,
587
+ name: "Defeated Hoarah Loux",
588
+ category: "defeated"
589
+ },
590
+ {
591
+ id: 9108,
592
+ name: "Defeated Astel, Naturalborn of the Void",
593
+ category: "defeated"
594
+ },
595
+ {
596
+ id: 9109,
597
+ name: "Defeated Dragonkin Soldier of Nokstella",
598
+ category: "defeated"
599
+ },
600
+ {
601
+ id: 9111,
602
+ name: "Defeated Lichdragon Fortissax",
603
+ category: "defeated"
604
+ },
605
+ {
606
+ id: 9112,
607
+ name: "Defeated Mohg, Lord of Blood",
608
+ category: "defeated"
609
+ },
610
+ {
611
+ id: 9115,
612
+ name: "Defeated Dragonlord Placidusax",
613
+ category: "defeated"
614
+ },
615
+ {
616
+ id: 9116,
617
+ name: "Defeated Maliketh, the Black Blade",
618
+ category: "defeated"
619
+ },
620
+ {
621
+ id: 9118,
622
+ name: "Defeated Rennala, Queen of the Full Moon",
623
+ category: "defeated"
624
+ },
625
+ {
626
+ id: 9119,
627
+ name: "Defeated Royal Knight Loretta",
628
+ category: "defeated"
629
+ },
630
+ {
631
+ id: 9120,
632
+ name: "Defeated Malenia, Blade of Miquella",
633
+ category: "defeated"
634
+ },
635
+ {
636
+ id: 9122,
637
+ name: "Defeated Rykard, Lord of Blasphemy",
638
+ category: "defeated"
639
+ },
640
+ {
641
+ id: 9123,
642
+ name: "Defeated the Elden Beast",
643
+ category: "defeated"
644
+ },
645
+ {
646
+ id: 9130,
647
+ name: "Defeated Starscourge Radahn",
648
+ category: "defeated"
649
+ },
650
+ {
651
+ id: 9131,
652
+ name: "Defeated Fire Giant",
653
+ category: "defeated"
654
+ },
655
+ {
656
+ id: 9133,
657
+ name: "Defeated Regal Ancestor Spirit",
658
+ category: "defeated"
659
+ },
660
+ {
661
+ id: 9134,
662
+ name: "Defeated Dragonkin Soldier - Lake of Rot",
663
+ category: "defeated"
664
+ },
665
+ {
666
+ id: 9135,
667
+ name: "Defeated Fia's Champion",
668
+ category: "defeated"
669
+ },
670
+ {
671
+ id: 9140,
672
+ name: "Defeated Divine Beast Dancing Lion",
673
+ category: "defeated"
674
+ },
675
+ {
676
+ id: 9143,
677
+ name: "Defeated Radahn, Consort of Miquella",
678
+ category: "defeated"
679
+ },
680
+ {
681
+ id: 9146,
682
+ name: "Defeated Messmer the Impaler",
683
+ category: "defeated"
684
+ },
685
+ {
686
+ id: 9148,
687
+ name: "Defeated Putrescent Knight",
688
+ category: "defeated"
689
+ },
690
+ {
691
+ id: 9155,
692
+ name: "Defeated Metyr, Mother of Fingers",
693
+ category: "defeated"
694
+ },
695
+ {
696
+ id: 9156,
697
+ name: "Defeated Midra, Lord of Frenzied Flame",
698
+ category: "defeated"
699
+ },
700
+ {
701
+ id: 9160,
702
+ name: "Defeated Romina, Saint of the Bud",
703
+ category: "defeated"
704
+ },
705
+ {
706
+ id: 9162,
707
+ name: "Defeated Scadutree Avatar",
708
+ category: "defeated"
709
+ },
710
+ {
711
+ id: 9164,
712
+ name: "Defeated Commander Gaius",
713
+ category: "defeated"
714
+ },
715
+ {
716
+ id: 9182,
717
+ name: "Defeated Elemer of the Briar",
718
+ category: "defeated"
719
+ },
720
+ {
721
+ id: 9184,
722
+ name: "Defeated Commander Niall",
723
+ category: "defeated"
724
+ },
725
+ {
726
+ id: 9190,
727
+ name: "Defeated Rellana, Twin Moon Knight",
728
+ category: "defeated"
729
+ },
730
+ {
731
+ id: 9500,
732
+ name: "Obtained Mending Rune of Perfect Order",
733
+ category: "mendingRune"
734
+ },
735
+ {
736
+ id: 9502,
737
+ name: "Obtained Mending Rune of the Death-Prince",
738
+ category: "mendingRune"
739
+ },
740
+ {
741
+ id: 9504,
742
+ name: "Obtained Mending Rune of the Fell Curse",
743
+ category: "mendingRune"
744
+ },
745
+ {
746
+ id: 6e4,
747
+ name: "Obtained Flask of Crimson/Cerulean Tears",
748
+ category: "keyItems"
749
+ },
750
+ {
751
+ id: 60010,
752
+ name: "Obtained Flask of Cerulean Tears",
753
+ category: "keyItems"
754
+ },
755
+ {
756
+ id: 60020,
757
+ name: "Obtained Flask of Wondrous Physick",
758
+ category: "keyItems"
759
+ },
760
+ {
761
+ id: 60100,
762
+ name: "Obtained Spectral Steed Whisle",
763
+ category: "keyItems"
764
+ },
765
+ {
766
+ id: 60110,
767
+ name: "Obtained Spirit Calling Bell",
768
+ category: "keyItems"
769
+ },
770
+ {
771
+ id: 60120,
772
+ name: "Obtained Crafting Kit",
773
+ category: "keyItems"
774
+ },
775
+ {
776
+ id: 60130,
777
+ name: "Obtained Whetstone Knife",
778
+ category: "keyItems"
779
+ },
780
+ {
781
+ id: 60140,
782
+ name: "Obtained Tailoring Tools",
783
+ category: "keyItems"
784
+ },
785
+ {
786
+ id: 60150,
787
+ name: "Obtained Golden Tailoring Tools",
788
+ category: "keyItems"
789
+ },
790
+ {
791
+ id: 60200,
792
+ name: "Can Host Multiplayer",
793
+ category: "multiplayer"
794
+ },
795
+ {
796
+ id: 60210,
797
+ name: "Obtained Tarnished's Wizened Finger",
798
+ category: "multiplayer"
799
+ },
800
+ {
801
+ id: 60220,
802
+ name: "Obtained Tarnished's Furled Finger",
803
+ category: "multiplayer"
804
+ },
805
+ {
806
+ id: 60230,
807
+ name: "Obtained Small Golden Effigy",
808
+ category: "multiplayer"
809
+ },
810
+ {
811
+ id: 60240,
812
+ name: "Obtained Duelist's Furled Finger",
813
+ category: "multiplayer"
814
+ },
815
+ {
816
+ id: 60250,
817
+ name: "Obtained Small Red Effigy",
818
+ category: "multiplayer"
819
+ },
820
+ {
821
+ id: 60260,
822
+ name: "Obtained Recusant Finger",
823
+ category: "multiplayer"
824
+ },
825
+ {
826
+ id: 60270,
827
+ name: "Obtained Bloody Finger",
828
+ category: "multiplayer"
829
+ },
830
+ {
831
+ id: 60280,
832
+ name: "Obtained White Cipher Ring",
833
+ category: "multiplayer"
834
+ },
835
+ {
836
+ id: 60290,
837
+ name: "Obtained Blue Cipher Ring",
838
+ category: "multiplayer"
839
+ },
840
+ {
841
+ id: 60300,
842
+ name: "Obtained Taunter's Tongue",
843
+ category: "multiplayer"
844
+ },
845
+ {
846
+ id: 60310,
847
+ name: "Obtained Finger Severer",
848
+ category: "multiplayer"
849
+ },
850
+ {
851
+ id: 60400,
852
+ name: "Obtained Memory Stone 0",
853
+ category: "memoryStone"
854
+ },
855
+ {
856
+ id: 60410,
857
+ name: "Obtained Memory Stone 1",
858
+ category: "memoryStone"
859
+ },
860
+ {
861
+ id: 60420,
862
+ name: "Obtained Memory Stone 2",
863
+ category: "memoryStone"
864
+ },
865
+ {
866
+ id: 60430,
867
+ name: "Obtained Memory Stone 3",
868
+ category: "memoryStone"
869
+ },
870
+ {
871
+ id: 60440,
872
+ name: "Obtained Memory Stone 4",
873
+ category: "memoryStone"
874
+ },
875
+ {
876
+ id: 60450,
877
+ name: "Obtained Memory Stone 5",
878
+ category: "memoryStone"
879
+ },
880
+ {
881
+ id: 60460,
882
+ name: "Obtained Memory Stone 6",
883
+ category: "memoryStone"
884
+ },
885
+ {
886
+ id: 60470,
887
+ name: "Obtained Memory Stone 7",
888
+ category: "memoryStone"
889
+ },
890
+ {
891
+ id: 60500,
892
+ name: "Obtained Talisman Pouch 0",
893
+ category: "talismanPouch"
894
+ },
895
+ {
896
+ id: 60510,
897
+ name: "Obtained Talisman Pouch 1",
898
+ category: "talismanPouch"
899
+ },
900
+ {
901
+ id: 60520,
902
+ name: "Obtained Talisman Pouch 2",
903
+ category: "talismanPouch"
904
+ },
905
+ {
906
+ id: 62e3,
907
+ name: "Allow Map Display",
908
+ category: "other"
909
+ },
910
+ {
911
+ id: 62001,
912
+ name: "Allow Underground Map Display",
913
+ category: "other"
914
+ },
915
+ {
916
+ id: 62004,
917
+ name: "Allow Starfall Crater Display",
918
+ category: "other"
919
+ },
920
+ {
921
+ id: 62010,
922
+ name: "Reveal Map: Limgrave, West",
923
+ category: "revealMap"
924
+ },
925
+ {
926
+ id: 62011,
927
+ name: "Reveal Map: Weeping Peninsula",
928
+ category: "revealMap"
929
+ },
930
+ {
931
+ id: 62012,
932
+ name: "Reveal Map: Limgrave, East",
933
+ category: "revealMap"
934
+ },
935
+ {
936
+ id: 62020,
937
+ name: "Reveal Map: Liurnia, East",
938
+ category: "revealMap"
939
+ },
940
+ {
941
+ id: 62021,
942
+ name: "Reveal Map: Liurnia, North",
943
+ category: "revealMap"
944
+ },
945
+ {
946
+ id: 62022,
947
+ name: "Reveal Map: Liurnia, West",
948
+ category: "revealMap"
949
+ },
950
+ {
951
+ id: 62030,
952
+ name: "Reveal Map: Altus Plateau",
953
+ category: "revealMap"
954
+ },
955
+ {
956
+ id: 62031,
957
+ name: "Reveal Map: Leyndell, Royal Capital",
958
+ category: "revealMap"
959
+ },
960
+ {
961
+ id: 62032,
962
+ name: "Reveal Map: Mt. Gelmir",
963
+ category: "revealMap"
964
+ },
965
+ {
966
+ id: 62040,
967
+ name: "Reveal Map: Caelid",
968
+ category: "revealMap"
969
+ },
970
+ {
971
+ id: 62041,
972
+ name: "Reveal Map: Dragonbarrow",
973
+ category: "revealMap"
974
+ },
975
+ {
976
+ id: 62050,
977
+ name: "Reveal Map: Mountaintops of the Giants, West",
978
+ category: "revealMap"
979
+ },
980
+ {
981
+ id: 62051,
982
+ name: "Reveal Map: Mountaintops of the Giants, East",
983
+ category: "revealMap"
984
+ },
985
+ {
986
+ id: 62052,
987
+ name: "Reveal Map: Consecrated Snowfield",
988
+ category: "revealMap"
989
+ },
990
+ {
991
+ id: 62060,
992
+ name: "Reveal Map: Ainsel River",
993
+ category: "revealMap"
994
+ },
995
+ {
996
+ id: 62061,
997
+ name: "Reveal Map: Lake of Rot",
998
+ category: "revealMap"
999
+ },
1000
+ {
1001
+ id: 62062,
1002
+ name: "Reveal Map: Mohgwyn Palace",
1003
+ category: "revealMap"
1004
+ },
1005
+ {
1006
+ id: 62063,
1007
+ name: "Reveal Map: Siofra River",
1008
+ category: "revealMap"
1009
+ },
1010
+ {
1011
+ id: 62064,
1012
+ name: "Reveal Map: Map: Deeproot Depths",
1013
+ category: "revealMap"
1014
+ },
1015
+ {
1016
+ id: 62080,
1017
+ name: "Reveal Map: Gravesite Plain",
1018
+ category: "revealMap"
1019
+ },
1020
+ {
1021
+ id: 62081,
1022
+ name: "Reveal Map: Scadu Altus",
1023
+ category: "revealMap"
1024
+ },
1025
+ {
1026
+ id: 62082,
1027
+ name: "Reveal Map: Southern Shore",
1028
+ category: "revealMap"
1029
+ },
1030
+ {
1031
+ id: 62083,
1032
+ name: "Reveal Map: Rauh Ruins",
1033
+ category: "revealMap"
1034
+ },
1035
+ {
1036
+ id: 62084,
1037
+ name: "Reveal Map: Abyss",
1038
+ category: "revealMap"
1039
+ },
1040
+ {
1041
+ id: 63010,
1042
+ name: "Acquired Map: Limgrave, West",
1043
+ category: "acquiredMap"
1044
+ },
1045
+ {
1046
+ id: 63011,
1047
+ name: "Acquired Map: Weeping Peninsula",
1048
+ category: "acquiredMap"
1049
+ },
1050
+ {
1051
+ id: 63012,
1052
+ name: "Acquired Map: Limgrave, East",
1053
+ category: "acquiredMap"
1054
+ },
1055
+ {
1056
+ id: 63020,
1057
+ name: "Acquired Map: Liurnia, East",
1058
+ category: "acquiredMap"
1059
+ },
1060
+ {
1061
+ id: 63021,
1062
+ name: "Acquired Map: Liurnia, North",
1063
+ category: "acquiredMap"
1064
+ },
1065
+ {
1066
+ id: 63022,
1067
+ name: "Acquired Map: Liurnia, West",
1068
+ category: "acquiredMap"
1069
+ },
1070
+ {
1071
+ id: 63030,
1072
+ name: "Acquired Map: Altus Plateau",
1073
+ category: "acquiredMap"
1074
+ },
1075
+ {
1076
+ id: 63031,
1077
+ name: "Acquired Map: Leyndell, Royal Capital",
1078
+ category: "acquiredMap"
1079
+ },
1080
+ {
1081
+ id: 63032,
1082
+ name: "Acquired Map: Mt. Gelmir",
1083
+ category: "acquiredMap"
1084
+ },
1085
+ {
1086
+ id: 63040,
1087
+ name: "Acquired Map: Caelid",
1088
+ category: "acquiredMap"
1089
+ },
1090
+ {
1091
+ id: 63041,
1092
+ name: "Acquired Map: Dragonbarrow",
1093
+ category: "acquiredMap"
1094
+ },
1095
+ {
1096
+ id: 63050,
1097
+ name: "Acquired Map: Mountaintops of the Giants, West",
1098
+ category: "acquiredMap"
1099
+ },
1100
+ {
1101
+ id: 63051,
1102
+ name: "Acquired Map: Mountaintops of the Giants, East",
1103
+ category: "acquiredMap"
1104
+ },
1105
+ {
1106
+ id: 63052,
1107
+ name: "Acquired Map: Consecrated Snowfield",
1108
+ category: "acquiredMap"
1109
+ },
1110
+ {
1111
+ id: 63060,
1112
+ name: "Acquired Map: Ainsel River",
1113
+ category: "acquiredMap"
1114
+ },
1115
+ {
1116
+ id: 63061,
1117
+ name: "Acquired Map: Lake of Rot",
1118
+ category: "acquiredMap"
1119
+ },
1120
+ {
1121
+ id: 63062,
1122
+ name: "Acquired Map: Mohgwyn Palace",
1123
+ category: "acquiredMap"
1124
+ },
1125
+ {
1126
+ id: 63063,
1127
+ name: "Acquired Map: Siofra River",
1128
+ category: "acquiredMap"
1129
+ },
1130
+ {
1131
+ id: 63064,
1132
+ name: "Acquired Map: Deeproot Depths",
1133
+ category: "acquiredMap"
1134
+ },
1135
+ {
1136
+ id: 63080,
1137
+ name: "Acquired Map: Gravesite Plain",
1138
+ category: "acquiredMap"
1139
+ },
1140
+ {
1141
+ id: 63081,
1142
+ name: "Acquired Map: Scadu Altus",
1143
+ category: "acquiredMap"
1144
+ },
1145
+ {
1146
+ id: 63082,
1147
+ name: "Acquired Map: Southern Shore",
1148
+ category: "acquiredMap"
1149
+ },
1150
+ {
1151
+ id: 63083,
1152
+ name: "Acquired Map: Rauh Ruins",
1153
+ category: "acquiredMap"
1154
+ },
1155
+ {
1156
+ id: 63084,
1157
+ name: "Acquired Map: Abyss",
1158
+ category: "acquiredMap"
1159
+ },
1160
+ {
1161
+ id: 65e3,
1162
+ name: "Obtained Crimsonspill Crystal Tear",
1163
+ category: "crytalTear"
1164
+ },
1165
+ {
1166
+ id: 65010,
1167
+ name: "Obtained Greenspill Crystal Tear",
1168
+ category: "crytalTear"
1169
+ },
1170
+ {
1171
+ id: 65020,
1172
+ name: "Obtained Crimson Crystal Tear",
1173
+ category: "crytalTear"
1174
+ },
1175
+ {
1176
+ id: 65030,
1177
+ name: "Obtained Crimson Crystal Tear",
1178
+ category: "crytalTear"
1179
+ },
1180
+ {
1181
+ id: 65040,
1182
+ name: "Obtained Cerulean Crystal Tear",
1183
+ category: "crytalTear"
1184
+ },
1185
+ {
1186
+ id: 65050,
1187
+ name: "Obtained Cerulean Crystal Tear",
1188
+ category: "crytalTear"
1189
+ },
1190
+ {
1191
+ id: 65060,
1192
+ name: "Obtained Speckled Hardtear",
1193
+ category: "crytalTear"
1194
+ },
1195
+ {
1196
+ id: 65070,
1197
+ name: "Obtained Crimson Bubbletear",
1198
+ category: "crytalTear"
1199
+ },
1200
+ {
1201
+ id: 65080,
1202
+ name: "Obtained Opaline Bubbletear",
1203
+ category: "crytalTear"
1204
+ },
1205
+ {
1206
+ id: 65090,
1207
+ name: "Obtained Crimsonburst Crystal Tear",
1208
+ category: "crytalTear"
1209
+ },
1210
+ {
1211
+ id: 65100,
1212
+ name: "Obtained Greenburst Crystal Tear",
1213
+ category: "crytalTear"
1214
+ },
1215
+ {
1216
+ id: 65110,
1217
+ name: "Obtained Opaline Hardtear",
1218
+ category: "crytalTear"
1219
+ },
1220
+ {
1221
+ id: 65120,
1222
+ name: "Obtained Winged Crystal Tear",
1223
+ category: "crytalTear"
1224
+ },
1225
+ {
1226
+ id: 65130,
1227
+ name: "Obtained Thorny Cracked Tear",
1228
+ category: "crytalTear"
1229
+ },
1230
+ {
1231
+ id: 65140,
1232
+ name: "Obtained Spiked Cracked Tear",
1233
+ category: "crytalTear"
1234
+ },
1235
+ {
1236
+ id: 65150,
1237
+ name: "Obtained Windy Crystal Tear",
1238
+ category: "crytalTear"
1239
+ },
1240
+ {
1241
+ id: 65160,
1242
+ name: "Obtained Ruptured Crystal Tear",
1243
+ category: "crytalTear"
1244
+ },
1245
+ {
1246
+ id: 65170,
1247
+ name: "Obtained Ruptured Crystal Tear",
1248
+ category: "crytalTear"
1249
+ },
1250
+ {
1251
+ id: 65180,
1252
+ name: "Obtained Leaden Hardtear",
1253
+ category: "crytalTear"
1254
+ },
1255
+ {
1256
+ id: 65190,
1257
+ name: "Obtained Twiggy Cracked Tear",
1258
+ category: "crytalTear"
1259
+ },
1260
+ {
1261
+ id: 65200,
1262
+ name: "Obtained Crimsonwhorl Bubbletear",
1263
+ category: "crytalTear"
1264
+ },
1265
+ {
1266
+ id: 65210,
1267
+ name: "Obtained Strength-knot Crystal Tear",
1268
+ category: "crytalTear"
1269
+ },
1270
+ {
1271
+ id: 65220,
1272
+ name: "Obtained Dexterity-knot Crystal Tear",
1273
+ category: "crytalTear"
1274
+ },
1275
+ {
1276
+ id: 65230,
1277
+ name: "Obtained Intelligence-knot Crystal Tear",
1278
+ category: "crytalTear"
1279
+ },
1280
+ {
1281
+ id: 65240,
1282
+ name: "Obtained Faith-knot Crystal Tear",
1283
+ category: "crytalTear"
1284
+ },
1285
+ {
1286
+ id: 65250,
1287
+ name: "Obtained Cerulean Hidden Tear",
1288
+ category: "crytalTear"
1289
+ },
1290
+ {
1291
+ id: 65260,
1292
+ name: "Obtained Stonebarb Cracked Tear",
1293
+ category: "crytalTear"
1294
+ },
1295
+ {
1296
+ id: 65270,
1297
+ name: "Obtained Purifying Crystal Tear",
1298
+ category: "crytalTear"
1299
+ },
1300
+ {
1301
+ id: 65280,
1302
+ name: "Obtained Flame-Shrouding Cracked Tear",
1303
+ category: "crytalTear"
1304
+ },
1305
+ {
1306
+ id: 65290,
1307
+ name: "Obtained Magic-Shrouding Cracked Tear",
1308
+ category: "crytalTear"
1309
+ },
1310
+ {
1311
+ id: 65300,
1312
+ name: "Obtained Lightning-Shrouding Cracked Tear",
1313
+ category: "crytalTear"
1314
+ },
1315
+ {
1316
+ id: 65310,
1317
+ name: "Obtained Holy-Shrouding Cracked Tear",
1318
+ category: "crytalTear"
1319
+ },
1320
+ {
1321
+ id: 65400,
1322
+ name: "Obtained Viridian Hidden Tear",
1323
+ category: "crytalTear"
1324
+ },
1325
+ {
1326
+ id: 65410,
1327
+ name: "Obtained Crimsonburst Dried Tear",
1328
+ category: "crytalTear"
1329
+ },
1330
+ {
1331
+ id: 65420,
1332
+ name: "Obtained Crimson-Sapping Cracked Tear",
1333
+ category: "crytalTear"
1334
+ },
1335
+ {
1336
+ id: 65430,
1337
+ name: "Obtained Cerulean-Sapping Cracked Tear",
1338
+ category: "crytalTear"
1339
+ },
1340
+ {
1341
+ id: 65440,
1342
+ name: "Obtained Oil-Soaked Tear",
1343
+ category: "crytalTear"
1344
+ },
1345
+ {
1346
+ id: 65450,
1347
+ name: "Obtained Bloodsucking Cracked Tear",
1348
+ category: "crytalTear"
1349
+ },
1350
+ {
1351
+ id: 65460,
1352
+ name: "Obtained Glovewort Crystal Tear",
1353
+ category: "crytalTear"
1354
+ },
1355
+ {
1356
+ id: 65470,
1357
+ name: "Obtained Deflecting Hardtear",
1358
+ category: "crytalTear"
1359
+ },
1360
+ {
1361
+ id: 65600,
1362
+ name: "Unlock Affinity 0: Standard",
1363
+ category: "affinity"
1364
+ },
1365
+ {
1366
+ id: 65610,
1367
+ name: "Unlock Affinity 1: Heavy",
1368
+ category: "affinity"
1369
+ },
1370
+ {
1371
+ id: 65620,
1372
+ name: "Unlock Affinity 2: Keen",
1373
+ category: "affinity"
1374
+ },
1375
+ {
1376
+ id: 65630,
1377
+ name: "Unlock Affinity 3: Quality",
1378
+ category: "affinity"
1379
+ },
1380
+ {
1381
+ id: 65640,
1382
+ name: "Unlock Affinity 4: Fire",
1383
+ category: "affinity"
1384
+ },
1385
+ {
1386
+ id: 65650,
1387
+ name: "Unlock Affinity 5: Flame Art",
1388
+ category: "affinity"
1389
+ },
1390
+ {
1391
+ id: 65660,
1392
+ name: "Unlock Affinity 6: Lightning",
1393
+ category: "affinity"
1394
+ },
1395
+ {
1396
+ id: 65670,
1397
+ name: "Unlock Affinity 7: Sacred",
1398
+ category: "affinity"
1399
+ },
1400
+ {
1401
+ id: 65680,
1402
+ name: "Unlock Affinity 8: Magic",
1403
+ category: "affinity"
1404
+ },
1405
+ {
1406
+ id: 65690,
1407
+ name: "Unlock Affinity 9: Occult",
1408
+ category: "affinity"
1409
+ },
1410
+ {
1411
+ id: 65700,
1412
+ name: "Unlock Affinity 10: Frost",
1413
+ category: "affinity"
1414
+ },
1415
+ {
1416
+ id: 65710,
1417
+ name: "Unlock Affinity 11: Poison",
1418
+ category: "affinity"
1419
+ },
1420
+ {
1421
+ id: 65720,
1422
+ name: "Unlock Affinity 12: Blood",
1423
+ category: "affinity"
1424
+ },
1425
+ {
1426
+ id: 65800,
1427
+ name: "Acquired Ashes of War: 1 or more",
1428
+ category: "acquiredAshesOfWar"
1429
+ },
1430
+ {
1431
+ id: 65810,
1432
+ name: "Acquired Ash of War: Impaling Thrust",
1433
+ category: "ashOfWar"
1434
+ },
1435
+ {
1436
+ id: 65811,
1437
+ name: "Acquired Ash of War: Piercing Fang",
1438
+ category: "ashOfWar"
1439
+ },
1440
+ {
1441
+ id: 65812,
1442
+ name: "Acquired Ash of War: Spinning Slash",
1443
+ category: "ashOfWar"
1444
+ },
1445
+ {
1446
+ id: 65813,
1447
+ name: "Acquired Ash of War: Repeating Thrust",
1448
+ category: "ashOfWar"
1449
+ },
1450
+ {
1451
+ id: 65814,
1452
+ name: "Acquired Ash of War: Double Slash",
1453
+ category: "ashOfWar"
1454
+ },
1455
+ {
1456
+ id: 65815,
1457
+ name: "Acquired Ash of War: Unsheathe",
1458
+ category: "ashOfWar"
1459
+ },
1460
+ {
1461
+ id: 65816,
1462
+ name: "Acquired Ash of War: Sword Dance",
1463
+ category: "ashOfWar"
1464
+ },
1465
+ {
1466
+ id: 65818,
1467
+ name: "Acquired Ash of War: Quickstep",
1468
+ category: "ashOfWar"
1469
+ },
1470
+ {
1471
+ id: 65819,
1472
+ name: "Acquired Ash of War: Bloodhound's Step",
1473
+ category: "ashOfWar"
1474
+ },
1475
+ {
1476
+ id: 65820,
1477
+ name: "Acquired Ash of War: Lion's Claw",
1478
+ category: "ashOfWar"
1479
+ },
1480
+ {
1481
+ id: 65821,
1482
+ name: "Acquired Ash of War: Stamp (Upward Cut)",
1483
+ category: "ashOfWar"
1484
+ },
1485
+ {
1486
+ id: 65822,
1487
+ name: "Acquired Ash of War: Stamp (Sweep)",
1488
+ category: "ashOfWar"
1489
+ },
1490
+ {
1491
+ id: 65823,
1492
+ name: "Acquired Ash of War: Wild Strikes",
1493
+ category: "ashOfWar"
1494
+ },
1495
+ {
1496
+ id: 65824,
1497
+ name: "Acquired Ash of War: Earthshaker",
1498
+ category: "ashOfWar"
1499
+ },
1500
+ {
1501
+ id: 65825,
1502
+ name: "Acquired Ash of War: Kick",
1503
+ category: "ashOfWar"
1504
+ },
1505
+ {
1506
+ id: 65826,
1507
+ name: "Acquired Ash of War: Ground Slam",
1508
+ category: "ashOfWar"
1509
+ },
1510
+ {
1511
+ id: 65827,
1512
+ name: "Acquired Ash of War: Hoarah Loux's Earthshaker",
1513
+ category: "ashOfWar"
1514
+ },
1515
+ {
1516
+ id: 65828,
1517
+ name: "Acquired Ash of War: Barbaric Roar",
1518
+ category: "ashOfWar"
1519
+ },
1520
+ {
1521
+ id: 65829,
1522
+ name: "Acquired Ash of War: War Cry",
1523
+ category: "ashOfWar"
1524
+ },
1525
+ {
1526
+ id: 65830,
1527
+ name: "Acquired Ash of War: Troll's Roar",
1528
+ category: "ashOfWar"
1529
+ },
1530
+ {
1531
+ id: 65831,
1532
+ name: "Acquired Ash of War: Braggart's Roar",
1533
+ category: "ashOfWar"
1534
+ },
1535
+ {
1536
+ id: 65832,
1537
+ name: "Acquired Ash of War: Endure",
1538
+ category: "ashOfWar"
1539
+ },
1540
+ {
1541
+ id: 65833,
1542
+ name: "Acquired Ash of War: Charge Forth",
1543
+ category: "ashOfWar"
1544
+ },
1545
+ {
1546
+ id: 65834,
1547
+ name: "Acquired Ash of War: Square Off",
1548
+ category: "ashOfWar"
1549
+ },
1550
+ {
1551
+ id: 65835,
1552
+ name: "Acquired Ash of War: Giant Hunt",
1553
+ category: "ashOfWar"
1554
+ },
1555
+ {
1556
+ id: 65836,
1557
+ name: "Acquired Ash of War: Spinning Strikes",
1558
+ category: "ashOfWar"
1559
+ },
1560
+ {
1561
+ id: 65837,
1562
+ name: "Acquired Ash of War: Storm Assault",
1563
+ category: "ashOfWar"
1564
+ },
1565
+ {
1566
+ id: 65838,
1567
+ name: "Acquired Ash of War: Stormcaller",
1568
+ category: "ashOfWar"
1569
+ },
1570
+ {
1571
+ id: 65839,
1572
+ name: "Acquired Ash of War: Storm Blade",
1573
+ category: "ashOfWar"
1574
+ },
1575
+ {
1576
+ id: 65840,
1577
+ name: "Acquired Ash of War: Vacuum Slice",
1578
+ category: "ashOfWar"
1579
+ },
1580
+ {
1581
+ id: 65841,
1582
+ name: "Acquired Ash of War: Storm Stomp",
1583
+ category: "ashOfWar"
1584
+ },
1585
+ {
1586
+ id: 65842,
1587
+ name: "Acquired Ash of War: Determination",
1588
+ category: "ashOfWar"
1589
+ },
1590
+ {
1591
+ id: 65843,
1592
+ name: "Acquired Ash of War: Royal Knight's Resolve",
1593
+ category: "ashOfWar"
1594
+ },
1595
+ {
1596
+ id: 65844,
1597
+ name: "Acquired Ash of War: Prelate's Charge",
1598
+ category: "ashOfWar"
1599
+ },
1600
+ {
1601
+ id: 65845,
1602
+ name: "Acquired Ash of War: Eruption",
1603
+ category: "ashOfWar"
1604
+ },
1605
+ {
1606
+ id: 65846,
1607
+ name: "Acquired Ash of War: Flaming Strike",
1608
+ category: "ashOfWar"
1609
+ },
1610
+ {
1611
+ id: 65847,
1612
+ name: "Acquired Ash of War: Black Flame Tornado",
1613
+ category: "ashOfWar"
1614
+ },
1615
+ {
1616
+ id: 65848,
1617
+ name: "Acquired Ash of War: Flame of the Redmanes",
1618
+ category: "ashOfWar"
1619
+ },
1620
+ {
1621
+ id: 65849,
1622
+ name: "Acquired Ash of War: Thunderbolt",
1623
+ category: "ashOfWar"
1624
+ },
1625
+ {
1626
+ id: 65850,
1627
+ name: "Acquired Ash of War: Lightning Slash",
1628
+ category: "ashOfWar"
1629
+ },
1630
+ {
1631
+ id: 65851,
1632
+ name: "Acquired Ash of War: Lightning Ram",
1633
+ category: "ashOfWar"
1634
+ },
1635
+ {
1636
+ id: 65852,
1637
+ name: "Acquired Ash of War: Loretta's Slash",
1638
+ category: "ashOfWar"
1639
+ },
1640
+ {
1641
+ id: 65853,
1642
+ name: "Acquired Ash of War: Spinning Weapon",
1643
+ category: "ashOfWar"
1644
+ },
1645
+ {
1646
+ id: 65854,
1647
+ name: "Acquired Ash of War: Glintblade Phalanx",
1648
+ category: "ashOfWar"
1649
+ },
1650
+ {
1651
+ id: 65855,
1652
+ name: "Acquired Ash of War: Glintstone Pebble",
1653
+ category: "ashOfWar"
1654
+ },
1655
+ {
1656
+ id: 65856,
1657
+ name: "Acquired Ash of War: Gravitas",
1658
+ category: "ashOfWar"
1659
+ },
1660
+ {
1661
+ id: 65857,
1662
+ name: "Acquired Ash of War: Carian Grandeur",
1663
+ category: "ashOfWar"
1664
+ },
1665
+ {
1666
+ id: 65858,
1667
+ name: "Acquired Ash of War: Carian Greatsword",
1668
+ category: "ashOfWar"
1669
+ },
1670
+ {
1671
+ id: 65859,
1672
+ name: "Acquired Ash of War: Waves of Darkness",
1673
+ category: "ashOfWar"
1674
+ },
1675
+ {
1676
+ id: 65860,
1677
+ name: "Acquired Ash of War: Cragblade",
1678
+ category: "ashOfWar"
1679
+ },
1680
+ {
1681
+ id: 65861,
1682
+ name: "Acquired Ash of War: Sacred Blade",
1683
+ category: "ashOfWar"
1684
+ },
1685
+ {
1686
+ id: 65862,
1687
+ name: "Acquired Ash of War: Prayerful Strike",
1688
+ category: "ashOfWar"
1689
+ },
1690
+ {
1691
+ id: 65863,
1692
+ name: "Acquired Ash of War: Golden Land",
1693
+ category: "ashOfWar"
1694
+ },
1695
+ {
1696
+ id: 65864,
1697
+ name: "Acquired Ash of War: Sacred Ring of Light",
1698
+ category: "ashOfWar"
1699
+ },
1700
+ {
1701
+ id: 65865,
1702
+ name: "Acquired Ash of War: Golden Slam",
1703
+ category: "ashOfWar"
1704
+ },
1705
+ {
1706
+ id: 65866,
1707
+ name: "Acquired Ash of War: Golden Vow",
1708
+ category: "ashOfWar"
1709
+ },
1710
+ {
1711
+ id: 65867,
1712
+ name: "Acquired Ash of War: Sacred Order",
1713
+ category: "ashOfWar"
1714
+ },
1715
+ {
1716
+ id: 65868,
1717
+ name: "Acquired Ash of War: Shared Order",
1718
+ category: "ashOfWar"
1719
+ },
1720
+ {
1721
+ id: 65869,
1722
+ name: "Acquired Ash of War: Beast's Roar",
1723
+ category: "ashOfWar"
1724
+ },
1725
+ {
1726
+ id: 65870,
1727
+ name: "Acquired Ash of War: Phantom Slash",
1728
+ category: "ashOfWar"
1729
+ },
1730
+ {
1731
+ id: 65871,
1732
+ name: "Acquired Ash of War: Spectral Lance",
1733
+ category: "ashOfWar"
1734
+ },
1735
+ {
1736
+ id: 65872,
1737
+ name: "Acquired Ash of War: Raptor of the Mists",
1738
+ category: "ashOfWar"
1739
+ },
1740
+ {
1741
+ id: 65873,
1742
+ name: "Acquired Ash of War: White Shadow's Lure",
1743
+ category: "ashOfWar"
1744
+ },
1745
+ {
1746
+ id: 65874,
1747
+ name: "Acquired Ash of War: Poison Moth Flight",
1748
+ category: "ashOfWar"
1749
+ },
1750
+ {
1751
+ id: 65875,
1752
+ name: "Acquired Ash of War: Poisonous Mist",
1753
+ category: "ashOfWar"
1754
+ },
1755
+ {
1756
+ id: 65876,
1757
+ name: "Acquired Ash of War: Blood Tax",
1758
+ category: "ashOfWar"
1759
+ },
1760
+ {
1761
+ id: 65877,
1762
+ name: "Acquired Ash of War: Bloody Slash",
1763
+ category: "ashOfWar"
1764
+ },
1765
+ {
1766
+ id: 65878,
1767
+ name: "Acquired Ash of War: Lifesteal Fist",
1768
+ category: "ashOfWar"
1769
+ },
1770
+ {
1771
+ id: 65879,
1772
+ name: "Acquired Ash of War: Blood Blade",
1773
+ category: "ashOfWar"
1774
+ },
1775
+ {
1776
+ id: 65880,
1777
+ name: "Acquired Ash of War: Assassin's Gambit",
1778
+ category: "ashOfWar"
1779
+ },
1780
+ {
1781
+ id: 65881,
1782
+ name: "Acquired Ash of War: Seppuku",
1783
+ category: "ashOfWar"
1784
+ },
1785
+ {
1786
+ id: 65882,
1787
+ name: "Acquired Ash of War: Ice Spear",
1788
+ category: "ashOfWar"
1789
+ },
1790
+ {
1791
+ id: 65883,
1792
+ name: "Acquired Ash of War: Chilling Mist",
1793
+ category: "ashOfWar"
1794
+ },
1795
+ {
1796
+ id: 65884,
1797
+ name: "Acquired Ash of War: Hoarfrost Stomp",
1798
+ category: "ashOfWar"
1799
+ },
1800
+ {
1801
+ id: 65885,
1802
+ name: "Acquired Ash of War: No Skill",
1803
+ category: "ashOfWar"
1804
+ },
1805
+ {
1806
+ id: 65886,
1807
+ name: "Acquired Ash of War: Shield Bash",
1808
+ category: "ashOfWar"
1809
+ },
1810
+ {
1811
+ id: 65887,
1812
+ name: "Acquired Ash of War: Shield Crash",
1813
+ category: "ashOfWar"
1814
+ },
1815
+ {
1816
+ id: 65888,
1817
+ name: "Acquired Ash of War: Barricade Shield",
1818
+ category: "ashOfWar"
1819
+ },
1820
+ {
1821
+ id: 65889,
1822
+ name: "Acquired Ash of War: Parry",
1823
+ category: "ashOfWar"
1824
+ },
1825
+ {
1826
+ id: 65890,
1827
+ name: "Acquired Ash of War: Carian Retaliation",
1828
+ category: "ashOfWar"
1829
+ },
1830
+ {
1831
+ id: 65891,
1832
+ name: "Acquired Ash of War: Storm Wall",
1833
+ category: "ashOfWar"
1834
+ },
1835
+ {
1836
+ id: 65892,
1837
+ name: "Acquired Ash of War: Golden Parry",
1838
+ category: "ashOfWar"
1839
+ },
1840
+ {
1841
+ id: 65893,
1842
+ name: "Acquired Ash of War: Thops's Barrier",
1843
+ category: "ashOfWar"
1844
+ },
1845
+ {
1846
+ id: 65894,
1847
+ name: "Acquired Ash of War: Holy Ground",
1848
+ category: "ashOfWar"
1849
+ },
1850
+ {
1851
+ id: 65895,
1852
+ name: "Acquired Ash of War: Vow of the Indomitable",
1853
+ category: "ashOfWar"
1854
+ },
1855
+ {
1856
+ id: 65896,
1857
+ name: "Acquired Ash of War: Barrage",
1858
+ category: "ashOfWar"
1859
+ },
1860
+ {
1861
+ id: 65897,
1862
+ name: "Acquired Ash of War: Mighty Shot",
1863
+ category: "ashOfWar"
1864
+ },
1865
+ {
1866
+ id: 65898,
1867
+ name: "Acquired Ash of War: Sky Shot",
1868
+ category: "ashOfWar"
1869
+ },
1870
+ {
1871
+ id: 65899,
1872
+ name: "Acquired Ash of War: Through and Through",
1873
+ category: "ashOfWar"
1874
+ },
1875
+ {
1876
+ id: 65900,
1877
+ name: "Acquired Ash of War: Enchanted Shot",
1878
+ category: "ashOfWar"
1879
+ },
1880
+ {
1881
+ id: 65901,
1882
+ name: "Acquired Ash of War: Rain of Arrows",
1883
+ category: "ashOfWar"
1884
+ },
1885
+ {
1886
+ id: 65910,
1887
+ name: "Acquired Ash of War: Dryleaf Whirlwind",
1888
+ category: "ashOfWar"
1889
+ },
1890
+ {
1891
+ id: 65911,
1892
+ name: "Acquired Ash of War: Aspects of the Crucible: Wings",
1893
+ category: "ashOfWar"
1894
+ },
1895
+ {
1896
+ id: 65912,
1897
+ name: "Acquired Ash of War: Spinning Gravity Thrust",
1898
+ category: "ashOfWar"
1899
+ },
1900
+ {
1901
+ id: 65913,
1902
+ name: "Acquired Ash of War: Palm Blast",
1903
+ category: "ashOfWar"
1904
+ },
1905
+ {
1906
+ id: 65914,
1907
+ name: "Acquired Ash of War: Piercing Throw",
1908
+ category: "ashOfWar"
1909
+ },
1910
+ {
1911
+ id: 65915,
1912
+ name: "Acquired Ash of War: Scattershot Throw",
1913
+ category: "ashOfWar"
1914
+ },
1915
+ {
1916
+ id: 65916,
1917
+ name: "Acquired Ash of War: Wall of Sparks",
1918
+ category: "ashOfWar"
1919
+ },
1920
+ {
1921
+ id: 65917,
1922
+ name: "Acquired Ash of War: Rolling Sparks",
1923
+ category: "ashOfWar"
1924
+ },
1925
+ {
1926
+ id: 65918,
1927
+ name: "Acquired Ash of War: Raging Beast",
1928
+ category: "ashOfWar"
1929
+ },
1930
+ {
1931
+ id: 65919,
1932
+ name: "Acquired Ash of War: Savage Claws",
1933
+ category: "ashOfWar"
1934
+ },
1935
+ {
1936
+ id: 65920,
1937
+ name: "Acquired Ash of War: Blind Spot",
1938
+ category: "ashOfWar"
1939
+ },
1940
+ {
1941
+ id: 65921,
1942
+ name: "Acquired Ash of War: Swift Slash",
1943
+ category: "ashOfWar"
1944
+ },
1945
+ {
1946
+ id: 65922,
1947
+ name: "Acquired Ash of War: Overhead Stance",
1948
+ category: "ashOfWar"
1949
+ },
1950
+ {
1951
+ id: 65923,
1952
+ name: "Acquired Ash of War: Wing Stance",
1953
+ category: "ashOfWar"
1954
+ },
1955
+ {
1956
+ id: 65924,
1957
+ name: "Acquired Ash of War: Blinkbolt",
1958
+ category: "ashOfWar"
1959
+ },
1960
+ {
1961
+ id: 65925,
1962
+ name: "Acquired Ash of War: Flame Skewer",
1963
+ category: "ashOfWar"
1964
+ },
1965
+ {
1966
+ id: 65926,
1967
+ name: "Acquired Ash of War: Savage Lion's Claw",
1968
+ category: "ashOfWar"
1969
+ },
1970
+ {
1971
+ id: 65927,
1972
+ name: "Acquired Ash of War: Divine Beast Frost Stomp",
1973
+ category: "ashOfWar"
1974
+ },
1975
+ {
1976
+ id: 65928,
1977
+ name: "Acquired Ash of War: Flame Spear",
1978
+ category: "ashOfWar"
1979
+ },
1980
+ {
1981
+ id: 65929,
1982
+ name: "Acquired Ash of War: Carian Sovereignty",
1983
+ category: "ashOfWar"
1984
+ },
1985
+ {
1986
+ id: 65930,
1987
+ name: "Acquired Ash of War: Shriek of Sorrow",
1988
+ category: "ashOfWar"
1989
+ },
1990
+ {
1991
+ id: 65931,
1992
+ name: "Acquired Ash of War: Ghostflame Call",
1993
+ category: "ashOfWar"
1994
+ },
1995
+ {
1996
+ id: 65932,
1997
+ name: "Acquired Ash of War: The Poison Flower Blooms Twice",
1998
+ category: "ashOfWar"
1999
+ },
2000
+ {
2001
+ id: 65933,
2002
+ name: "Acquired Ash of War: Igon's Drake Hunt",
2003
+ category: "ashOfWar"
2004
+ },
2005
+ {
2006
+ id: 65934,
2007
+ name: "Acquired Ash of War: Shield Strike",
2008
+ category: "ashOfWar"
2009
+ },
2010
+ {
2011
+ id: 66e3,
2012
+ name: "Cracked Pot Unlock: 1",
2013
+ category: "crackedPotUnlock"
2014
+ },
2015
+ {
2016
+ id: 66010,
2017
+ name: "Cracked Pot Unlock: 2",
2018
+ category: "crackedPotUnlock"
2019
+ },
2020
+ {
2021
+ id: 66020,
2022
+ name: "Cracked Pot Unlock: 3",
2023
+ category: "crackedPotUnlock"
2024
+ },
2025
+ {
2026
+ id: 66030,
2027
+ name: "Cracked Pot Unlock: 4",
2028
+ category: "crackedPotUnlock"
2029
+ },
2030
+ {
2031
+ id: 66040,
2032
+ name: "Cracked Pot Unlock: 5",
2033
+ category: "crackedPotUnlock"
2034
+ },
2035
+ {
2036
+ id: 66050,
2037
+ name: "Cracked Pot Unlock: 6",
2038
+ category: "crackedPotUnlock"
2039
+ },
2040
+ {
2041
+ id: 66060,
2042
+ name: "Cracked Pot Unlock: 7",
2043
+ category: "crackedPotUnlock"
2044
+ },
2045
+ {
2046
+ id: 66070,
2047
+ name: "Cracked Pot Unlock: 8",
2048
+ category: "crackedPotUnlock"
2049
+ },
2050
+ {
2051
+ id: 66080,
2052
+ name: "Cracked Pot Unlock: 9",
2053
+ category: "crackedPotUnlock"
2054
+ },
2055
+ {
2056
+ id: 66090,
2057
+ name: "Cracked Pot Unlock: 10",
2058
+ category: "crackedPotUnlock"
2059
+ },
2060
+ {
2061
+ id: 66100,
2062
+ name: "Cracked Pot Unlock: 11",
2063
+ category: "crackedPotUnlock"
2064
+ },
2065
+ {
2066
+ id: 66110,
2067
+ name: "Cracked Pot Unlock: 12",
2068
+ category: "crackedPotUnlock"
2069
+ },
2070
+ {
2071
+ id: 66120,
2072
+ name: "Cracked Pot Unlock: 13",
2073
+ category: "crackedPotUnlock"
2074
+ },
2075
+ {
2076
+ id: 66130,
2077
+ name: "Cracked Pot Unlock: 14",
2078
+ category: "crackedPotUnlock"
2079
+ },
2080
+ {
2081
+ id: 66140,
2082
+ name: "Cracked Pot Unlock: 15",
2083
+ category: "crackedPotUnlock"
2084
+ },
2085
+ {
2086
+ id: 66150,
2087
+ name: "Cracked Pot Unlock: 16",
2088
+ category: "crackedPotUnlock"
2089
+ },
2090
+ {
2091
+ id: 66160,
2092
+ name: "Cracked Pot Unlock: 17",
2093
+ category: "crackedPotUnlock"
2094
+ },
2095
+ {
2096
+ id: 66170,
2097
+ name: "Cracked Pot Unlock: 18",
2098
+ category: "crackedPotUnlock"
2099
+ },
2100
+ {
2101
+ id: 66180,
2102
+ name: "Cracked Pot Unlock: 19",
2103
+ category: "crackedPotUnlock"
2104
+ },
2105
+ {
2106
+ id: 66190,
2107
+ name: "Cracked Pot Unlock: 20",
2108
+ category: "crackedPotUnlock"
2109
+ },
2110
+ {
2111
+ id: 66400,
2112
+ name: "Ritual Pot Unlock: 1",
2113
+ category: "ritualPotUnlock"
2114
+ },
2115
+ {
2116
+ id: 66410,
2117
+ name: "Ritual Pot Unlock: 2",
2118
+ category: "ritualPotUnlock"
2119
+ },
2120
+ {
2121
+ id: 66420,
2122
+ name: "Ritual Pot Unlock: 3",
2123
+ category: "ritualPotUnlock"
2124
+ },
2125
+ {
2126
+ id: 66430,
2127
+ name: "Ritual Pot Unlock: 4",
2128
+ category: "ritualPotUnlock"
2129
+ },
2130
+ {
2131
+ id: 66440,
2132
+ name: "Ritual Pot Unlock: 5",
2133
+ category: "ritualPotUnlock"
2134
+ },
2135
+ {
2136
+ id: 66450,
2137
+ name: "Ritual Pot Unlock: 6",
2138
+ category: "ritualPotUnlock"
2139
+ },
2140
+ {
2141
+ id: 66460,
2142
+ name: "Ritual Pot Unlock: 7",
2143
+ category: "ritualPotUnlock"
2144
+ },
2145
+ {
2146
+ id: 66470,
2147
+ name: "Ritual Pot Unlock: 8",
2148
+ category: "ritualPotUnlock"
2149
+ },
2150
+ {
2151
+ id: 66480,
2152
+ name: "Ritual Pot Unlock: 9",
2153
+ category: "ritualPotUnlock"
2154
+ },
2155
+ {
2156
+ id: 66490,
2157
+ name: "Ritual Pot Unlock: 10",
2158
+ category: "ritualPotUnlock"
2159
+ },
2160
+ {
2161
+ id: 66700,
2162
+ name: "Perfume Bottle Unlock: 1",
2163
+ category: "perfumeBottleUnlock"
2164
+ },
2165
+ {
2166
+ id: 66710,
2167
+ name: "Perfume Bottle Unlock: 2",
2168
+ category: "perfumeBottleUnlock"
2169
+ },
2170
+ {
2171
+ id: 66720,
2172
+ name: "Perfume Bottle Unlock: 3",
2173
+ category: "perfumeBottleUnlock"
2174
+ },
2175
+ {
2176
+ id: 66730,
2177
+ name: "Perfume Bottle Unlock: 4",
2178
+ category: "perfumeBottleUnlock"
2179
+ },
2180
+ {
2181
+ id: 66740,
2182
+ name: "Perfume Bottle Unlock: 5",
2183
+ category: "perfumeBottleUnlock"
2184
+ },
2185
+ {
2186
+ id: 66750,
2187
+ name: "Perfume Bottle Unlock: 6",
2188
+ category: "perfumeBottleUnlock"
2189
+ },
2190
+ {
2191
+ id: 66760,
2192
+ name: "Perfume Bottle Unlock: 7",
2193
+ category: "perfumeBottleUnlock"
2194
+ },
2195
+ {
2196
+ id: 66770,
2197
+ name: "Perfume Bottle Unlock: 8",
2198
+ category: "perfumeBottleUnlock"
2199
+ },
2200
+ {
2201
+ id: 66780,
2202
+ name: "Perfume Bottle Unlock: 9",
2203
+ category: "perfumeBottleUnlock"
2204
+ },
2205
+ {
2206
+ id: 66790,
2207
+ name: "Perfume Bottle Unlock: 10",
2208
+ category: "perfumeBottleUnlock"
2209
+ },
2210
+ {
2211
+ id: 66900,
2212
+ name: "Hefty Cracked Pot Unlock: 1",
2213
+ category: "heftyCrackedPotUnlock"
2214
+ },
2215
+ {
2216
+ id: 66910,
2217
+ name: "Hefty Cracked Pot Unlock: 2",
2218
+ category: "heftyCrackedPotUnlock"
2219
+ },
2220
+ {
2221
+ id: 66920,
2222
+ name: "Hefty Cracked Pot Unlock: 3",
2223
+ category: "heftyCrackedPotUnlock"
2224
+ },
2225
+ {
2226
+ id: 66930,
2227
+ name: "Hefty Cracked Pot Unlock: 4",
2228
+ category: "heftyCrackedPotUnlock"
2229
+ },
2230
+ {
2231
+ id: 66940,
2232
+ name: "Hefty Cracked Pot Unlock: 5",
2233
+ category: "heftyCrackedPotUnlock"
2234
+ },
2235
+ {
2236
+ id: 66950,
2237
+ name: "Hefty Cracked Pot Unlock: 6",
2238
+ category: "heftyCrackedPotUnlock"
2239
+ },
2240
+ {
2241
+ id: 66960,
2242
+ name: "Hefty Cracked Pot Unlock: 7",
2243
+ category: "heftyCrackedPotUnlock"
2244
+ },
2245
+ {
2246
+ id: 66970,
2247
+ name: "Hefty Cracked Pot Unlock: 8",
2248
+ category: "heftyCrackedPotUnlock"
2249
+ },
2250
+ {
2251
+ id: 66980,
2252
+ name: "Hefty Cracked Pot Unlock: 9",
2253
+ category: "heftyCrackedPotUnlock"
2254
+ },
2255
+ {
2256
+ id: 66990,
2257
+ name: "Hefty Cracked Pot Unlock: 10",
2258
+ category: "heftyCrackedPotUnlock"
2259
+ },
2260
+ {
2261
+ id: 67e3,
2262
+ name: "Obtained Nomadic Warrior's Cookbook [1]",
2263
+ category: "cookbook"
2264
+ },
2265
+ {
2266
+ id: 67010,
2267
+ name: "Obtained Nomadic Warrior's Cookbook [3]",
2268
+ category: "cookbook"
2269
+ },
2270
+ {
2271
+ id: 67020,
2272
+ name: "Obtained Nomadic Warrior's Cookbook [6]",
2273
+ category: "cookbook"
2274
+ },
2275
+ {
2276
+ id: 67030,
2277
+ name: "Obtained Nomadic Warrior's Cookbook [10]",
2278
+ category: "cookbook"
2279
+ },
2280
+ {
2281
+ id: 67050,
2282
+ name: "Obtained Nomadic Warrior's Cookbook [7]",
2283
+ category: "cookbook"
2284
+ },
2285
+ {
2286
+ id: 67060,
2287
+ name: "Obtained Nomadic Warrior's Cookbook [12]",
2288
+ category: "cookbook"
2289
+ },
2290
+ {
2291
+ id: 67070,
2292
+ name: "Obtained Nomadic Warrior's Cookbook [19]",
2293
+ category: "cookbook"
2294
+ },
2295
+ {
2296
+ id: 67080,
2297
+ name: "Obtained Nomadic Warrior's Cookbook [13]",
2298
+ category: "cookbook"
2299
+ },
2300
+ {
2301
+ id: 67090,
2302
+ name: "Obtained Nomadic Warrior's Cookbook [23]",
2303
+ category: "cookbook"
2304
+ },
2305
+ {
2306
+ id: 67100,
2307
+ name: "Obtained Nomadic Warrior's Cookbook [17]",
2308
+ category: "cookbook"
2309
+ },
2310
+ {
2311
+ id: 67110,
2312
+ name: "Obtained Nomadic Warrior's Cookbook [2]",
2313
+ category: "cookbook"
2314
+ },
2315
+ {
2316
+ id: 67120,
2317
+ name: "Obtained Nomadic Warrior's Cookbook [21]",
2318
+ category: "cookbook"
2319
+ },
2320
+ {
2321
+ id: 67130,
2322
+ name: "Obtained Missionary's Cookbook [6]",
2323
+ category: "cookbook"
2324
+ },
2325
+ {
2326
+ id: 67200,
2327
+ name: "Obtained Armorer's Cookbook [1]",
2328
+ category: "cookbook"
2329
+ },
2330
+ {
2331
+ id: 67210,
2332
+ name: "Obtained Armorer's Cookbook [2]",
2333
+ category: "cookbook"
2334
+ },
2335
+ {
2336
+ id: 67220,
2337
+ name: "Obtained Nomadic Warrior's Cookbook [11]",
2338
+ category: "cookbook"
2339
+ },
2340
+ {
2341
+ id: 67230,
2342
+ name: "Obtained Nomadic Warrior's Cookbook [20]",
2343
+ category: "cookbook"
2344
+ },
2345
+ {
2346
+ id: 67250,
2347
+ name: "Obtained Armorer's Cookbook [7]",
2348
+ category: "cookbook"
2349
+ },
2350
+ {
2351
+ id: 67260,
2352
+ name: "Obtained Armorer's Cookbook [4]",
2353
+ category: "cookbook"
2354
+ },
2355
+ {
2356
+ id: 67270,
2357
+ name: "Obtained Nomadic Warrior's Cookbook [18]",
2358
+ category: "cookbook"
2359
+ },
2360
+ {
2361
+ id: 67280,
2362
+ name: "Obtained Armorer's Cookbook [3]",
2363
+ category: "cookbook"
2364
+ },
2365
+ {
2366
+ id: 67290,
2367
+ name: "Obtained Nomadic Warrior's Cookbook [16]",
2368
+ category: "cookbook"
2369
+ },
2370
+ {
2371
+ id: 67300,
2372
+ name: "Obtained Armorer's Cookbook [6]",
2373
+ category: "cookbook"
2374
+ },
2375
+ {
2376
+ id: 67310,
2377
+ name: "Obtained Armorer's Cookbook [5]",
2378
+ category: "cookbook"
2379
+ },
2380
+ {
2381
+ id: 67400,
2382
+ name: "Obtained Glintstone Craftsman's Cookbook [4]",
2383
+ category: "cookbook"
2384
+ },
2385
+ {
2386
+ id: 67410,
2387
+ name: "Obtained Glintstone Craftsman's Cookbook [1]",
2388
+ category: "cookbook"
2389
+ },
2390
+ {
2391
+ id: 67420,
2392
+ name: "Obtained Glintstone Craftsman's Cookbook [5]",
2393
+ category: "cookbook"
2394
+ },
2395
+ {
2396
+ id: 67430,
2397
+ name: "Obtained Nomadic Warrior's Cookbook [9]",
2398
+ category: "cookbook"
2399
+ },
2400
+ {
2401
+ id: 67440,
2402
+ name: "Obtained Glintstone Craftsman's Cookbook [8]",
2403
+ category: "cookbook"
2404
+ },
2405
+ {
2406
+ id: 67450,
2407
+ name: "Obtained Glintstone Craftsman's Cookbook [2]",
2408
+ category: "cookbook"
2409
+ },
2410
+ {
2411
+ id: 67460,
2412
+ name: "Obtained Glintstone Craftsman's Cookbook [6]",
2413
+ category: "cookbook"
2414
+ },
2415
+ {
2416
+ id: 67470,
2417
+ name: "Obtained Glintstone Craftsman's Cookbook [7]",
2418
+ category: "cookbook"
2419
+ },
2420
+ {
2421
+ id: 67480,
2422
+ name: "Obtained Glintstone Craftsman's Cookbook [3]",
2423
+ category: "cookbook"
2424
+ },
2425
+ {
2426
+ id: 67600,
2427
+ name: "Obtained Missionary's Cookbook [2]",
2428
+ category: "cookbook"
2429
+ },
2430
+ {
2431
+ id: 67610,
2432
+ name: "Obtained Missionary's Cookbook [1]",
2433
+ category: "cookbook"
2434
+ },
2435
+ {
2436
+ id: 67630,
2437
+ name: "Obtained Missionary's Cookbook [5]",
2438
+ category: "cookbook"
2439
+ },
2440
+ {
2441
+ id: 67640,
2442
+ name: "Obtained Missionary's Cookbook [4]",
2443
+ category: "cookbook"
2444
+ },
2445
+ {
2446
+ id: 67650,
2447
+ name: "Obtained Missionary's Cookbook [3]",
2448
+ category: "cookbook"
2449
+ },
2450
+ {
2451
+ id: 67800,
2452
+ name: "Obtained Nomadic Warrior's Cookbook [4]",
2453
+ category: "cookbook"
2454
+ },
2455
+ {
2456
+ id: 67830,
2457
+ name: "Obtained Nomadic Warrior's Cookbook [5]",
2458
+ category: "cookbook"
2459
+ },
2460
+ {
2461
+ id: 67840,
2462
+ name: "Obtained Perfumer's Cookbook [1]",
2463
+ category: "cookbook"
2464
+ },
2465
+ {
2466
+ id: 67850,
2467
+ name: "Obtained Perfumer's Cookbook [2]",
2468
+ category: "cookbook"
2469
+ },
2470
+ {
2471
+ id: 67860,
2472
+ name: "Obtained Perfumer's Cookbook [3]",
2473
+ category: "cookbook"
2474
+ },
2475
+ {
2476
+ id: 67870,
2477
+ name: "Obtained Nomadic Warrior's Cookbook [14]",
2478
+ category: "cookbook"
2479
+ },
2480
+ {
2481
+ id: 67880,
2482
+ name: "Obtained Nomadic Warrior's Cookbook [8]",
2483
+ category: "cookbook"
2484
+ },
2485
+ {
2486
+ id: 67890,
2487
+ name: "Obtained Nomadic Warrior's Cookbook [22]",
2488
+ category: "cookbook"
2489
+ },
2490
+ {
2491
+ id: 67900,
2492
+ name: "Obtained Nomadic Warrior's Cookbook [15]",
2493
+ category: "cookbook"
2494
+ },
2495
+ {
2496
+ id: 67910,
2497
+ name: "Obtained Nomadic Warrior's Cookbook [24]",
2498
+ category: "cookbook"
2499
+ },
2500
+ {
2501
+ id: 67920,
2502
+ name: "Obtained Perfumer's Cookbook [4]",
2503
+ category: "cookbook"
2504
+ },
2505
+ {
2506
+ id: 68e3,
2507
+ name: "Obtained Ancient Dragon Apostle's Cookbook [1]",
2508
+ category: "cookbook"
2509
+ },
2510
+ {
2511
+ id: 68010,
2512
+ name: "Obtained Ancient Dragon Apostle's Cookbook [2]",
2513
+ category: "cookbook"
2514
+ },
2515
+ {
2516
+ id: 68020,
2517
+ name: "Obtained Ancient Dragon Apostle's Cookbook [4]",
2518
+ category: "cookbook"
2519
+ },
2520
+ {
2521
+ id: 68030,
2522
+ name: "Obtained Ancient Dragon Apostle's Cookbook [3]",
2523
+ category: "cookbook"
2524
+ },
2525
+ {
2526
+ id: 68200,
2527
+ name: "Obtained Fevor's Cookbook [1]",
2528
+ category: "cookbook"
2529
+ },
2530
+ {
2531
+ id: 68210,
2532
+ name: "Obtained Fevor's Cookbook [3]",
2533
+ category: "cookbook"
2534
+ },
2535
+ {
2536
+ id: 68220,
2537
+ name: "Obtained Fevor's Cookbook [2]",
2538
+ category: "cookbook"
2539
+ },
2540
+ {
2541
+ id: 68230,
2542
+ name: "Obtained Missionary's Cookbook [7]",
2543
+ category: "cookbook"
2544
+ },
2545
+ {
2546
+ id: 68400,
2547
+ name: "Obtained Frenzied's Cookbook [1]",
2548
+ category: "cookbook"
2549
+ },
2550
+ {
2551
+ id: 68410,
2552
+ name: "Obtained Frenzied's Cookbook [2]",
2553
+ category: "cookbook"
2554
+ },
2555
+ {
2556
+ id: 68510,
2557
+ name: "Obtained Forager Brood Cookbook [6]",
2558
+ category: "cookbook"
2559
+ },
2560
+ {
2561
+ id: 68520,
2562
+ name: "Obtained Forager Brood Cookbook [1]",
2563
+ category: "cookbook"
2564
+ },
2565
+ {
2566
+ id: 68530,
2567
+ name: "Obtained Forager Brood Cookbook [2]",
2568
+ category: "cookbook"
2569
+ },
2570
+ {
2571
+ id: 68540,
2572
+ name: "Obtained Forager Brood Cookbook [3]",
2573
+ category: "cookbook"
2574
+ },
2575
+ {
2576
+ id: 68550,
2577
+ name: "Obtained Forager Brood Cookbook [4]",
2578
+ category: "cookbook"
2579
+ },
2580
+ {
2581
+ id: 68560,
2582
+ name: "Obtained Forager Brood Cookbook [5]",
2583
+ category: "cookbook"
2584
+ },
2585
+ {
2586
+ id: 68570,
2587
+ name: "Obtained Igon's Cookbook [2]",
2588
+ category: "cookbook"
2589
+ },
2590
+ {
2591
+ id: 68580,
2592
+ name: "Obtained Finger-Weaver's Cookbook [2]",
2593
+ category: "cookbook"
2594
+ },
2595
+ {
2596
+ id: 68590,
2597
+ name: "Obtained Greater Potentate's Cookbook [1]",
2598
+ category: "cookbook"
2599
+ },
2600
+ {
2601
+ id: 68600,
2602
+ name: "Obtained Greater Potentate's Cookbook [4]",
2603
+ category: "cookbook"
2604
+ },
2605
+ {
2606
+ id: 68610,
2607
+ name: "Obtained Greater Potentate's Cookbook [5]",
2608
+ category: "cookbook"
2609
+ },
2610
+ {
2611
+ id: 68620,
2612
+ name: "Obtained Greater Potentate's Cookbook [12]",
2613
+ category: "cookbook"
2614
+ },
2615
+ {
2616
+ id: 68630,
2617
+ name: "Obtained Greater Potentate's Cookbook [7]",
2618
+ category: "cookbook"
2619
+ },
2620
+ {
2621
+ id: 68640,
2622
+ name: "Obtained Greater Potentate's Cookbook [9]",
2623
+ category: "cookbook"
2624
+ },
2625
+ {
2626
+ id: 68650,
2627
+ name: "Obtained Greater Potentate's Cookbook [10]",
2628
+ category: "cookbook"
2629
+ },
2630
+ {
2631
+ id: 68660,
2632
+ name: "Obtained Greater Potentate's Cookbook [11]",
2633
+ category: "cookbook"
2634
+ },
2635
+ {
2636
+ id: 68670,
2637
+ name: "Obtained Mad Craftsman's Cookbook [2]",
2638
+ category: "cookbook"
2639
+ },
2640
+ {
2641
+ id: 68680,
2642
+ name: "Obtained Greater Potentate's Cookbook [8]",
2643
+ category: "cookbook"
2644
+ },
2645
+ {
2646
+ id: 68690,
2647
+ name: "Obtained Greater Potentate's Cookbook [3]",
2648
+ category: "cookbook"
2649
+ },
2650
+ {
2651
+ id: 68700,
2652
+ name: "Obtained Greater Potentate's Cookbook [13]",
2653
+ category: "cookbook"
2654
+ },
2655
+ {
2656
+ id: 68710,
2657
+ name: "Obtained Greater Potentate's Cookbook [14]",
2658
+ category: "cookbook"
2659
+ },
2660
+ {
2661
+ id: 68720,
2662
+ name: "Obtained Greater Potentate's Cookbook [6]",
2663
+ category: "cookbook"
2664
+ },
2665
+ {
2666
+ id: 68730,
2667
+ name: "Obtained Greater Potentate's Cookbook [2]",
2668
+ category: "cookbook"
2669
+ },
2670
+ {
2671
+ id: 68740,
2672
+ name: "Obtained Ancient Dragon Knight's Cookbook [1]",
2673
+ category: "cookbook"
2674
+ },
2675
+ {
2676
+ id: 68750,
2677
+ name: "Obtained Mad Craftsman's Cookbook [1]",
2678
+ category: "cookbook"
2679
+ },
2680
+ {
2681
+ id: 68760,
2682
+ name: "Obtained St. Trina Disciple's Cookbook [1]",
2683
+ category: "cookbook"
2684
+ },
2685
+ {
2686
+ id: 68770,
2687
+ name: "Obtained Fire Knight's Cookbook [1]",
2688
+ category: "cookbook"
2689
+ },
2690
+ {
2691
+ id: 68780,
2692
+ name: "Obtained Ancient Dragon Knight's Cookbook [2]",
2693
+ category: "cookbook"
2694
+ },
2695
+ {
2696
+ id: 68790,
2697
+ name: "Obtained Loyal Knight's Cookbook",
2698
+ category: "cookbook"
2699
+ },
2700
+ {
2701
+ id: 68800,
2702
+ name: "Obtained Battlefield Priest's Cookbook [1]",
2703
+ category: "cookbook"
2704
+ },
2705
+ {
2706
+ id: 68810,
2707
+ name: "Obtained Igon's Cookbook [1]",
2708
+ category: "cookbook"
2709
+ },
2710
+ {
2711
+ id: 68820,
2712
+ name: "Obtained Battlefield Priest's Cookbook [2]",
2713
+ category: "cookbook"
2714
+ },
2715
+ {
2716
+ id: 68830,
2717
+ name: "Obtained Forager Brood Cookbook [7]",
2718
+ category: "cookbook"
2719
+ },
2720
+ {
2721
+ id: 68840,
2722
+ name: "Obtained St. Trina Disciple's Cookbook [3]",
2723
+ category: "cookbook"
2724
+ },
2725
+ {
2726
+ id: 68850,
2727
+ name: "Obtained Grave Keeper's Cookbook [2]",
2728
+ category: "cookbook"
2729
+ },
2730
+ {
2731
+ id: 68860,
2732
+ name: "Obtained Antiquity Scholar's Cookbook [2]",
2733
+ category: "cookbook"
2734
+ },
2735
+ {
2736
+ id: 68870,
2737
+ name: "Obtained Tibia's Cookbook",
2738
+ category: "cookbook"
2739
+ },
2740
+ {
2741
+ id: 68880,
2742
+ name: "Obtained Mad Craftsman's Cookbook [3]",
2743
+ category: "cookbook"
2744
+ },
2745
+ {
2746
+ id: 68890,
2747
+ name: "Obtained Battlefield Priest's Cookbook [3]",
2748
+ category: "cookbook"
2749
+ },
2750
+ {
2751
+ id: 68900,
2752
+ name: "Obtained Fire Knight's Cookbook [2]",
2753
+ category: "cookbook"
2754
+ },
2755
+ {
2756
+ id: 68910,
2757
+ name: "Obtained Antiquity Scholar's Cookbook [1]",
2758
+ category: "cookbook"
2759
+ },
2760
+ {
2761
+ id: 68920,
2762
+ name: "Obtained Finger-Weaver's Cookbook [1]",
2763
+ category: "cookbook"
2764
+ },
2765
+ {
2766
+ id: 68930,
2767
+ name: "Obtained Battlefield Priest's Cookbook [4]",
2768
+ category: "cookbook"
2769
+ },
2770
+ {
2771
+ id: 68940,
2772
+ name: "Obtained Grave Keeper's Cookbook [1]",
2773
+ category: "cookbook"
2774
+ },
2775
+ {
2776
+ id: 68950,
2777
+ name: "Obtained St. Trina Disciple's Cookbook [2]",
2778
+ category: "cookbook"
2779
+ },
2780
+ {
2781
+ id: 82001,
2782
+ name: "Display Undergroup Map Option",
2783
+ category: "other"
54
2784
  },
55
2785
  {
56
2786
  id: 10000800,
@@ -13222,9 +15952,6 @@ const bstFile = `1045540,6223
13222
15952
  const USER_10_DATA_START = 26215328;
13223
15953
  const ACTIVE_PROFILES_START = 26221828;
13224
15954
  const SLOT_COUNT = 10;
13225
- function fn() {
13226
- return "Hello, tsdown!";
13227
- }
13228
15955
  function parse(buffer) {
13229
15956
  const dataView = new DataView(buffer);
13230
15957
  const utf16leDecoder = new TextDecoder("utf-16le");
@@ -13233,7 +15960,7 @@ function parse(buffer) {
13233
15960
  const save = {};
13234
15961
  const magicBytes = buffer.slice(offset, offset + 4);
13235
15962
  offset += 4;
13236
- if (!arrayBuffersEqual(magicBytes, new Uint8Array(stringToBytes("BND4")).buffer)) throw new Error(`File type not supported, magic bytes: ${toHexString(magicBytes)} (${utf8Decoder.decode(magicBytes)})`);
15963
+ if (!arrayBuffersEqual(magicBytes, new Uint8Array(stringToBytes("BND4")).buffer) && !arrayBuffersEqual(magicBytes, new Uint8Array(stringToBytes("SL2\0")).buffer)) throw new Error(`File type not supported, magic bytes: ${toHexString(magicBytes)} (${utf8Decoder.decode(magicBytes)})`);
13237
15964
  save.magicBytes = toHexString(magicBytes);
13238
15965
  offset += 764;
13239
15966
  save.slots = [];
@@ -13378,6 +16105,7 @@ function parse(buffer) {
13378
16105
  }
13379
16106
  slot.regions = {};
13380
16107
  slot.regions.regionCount = regionCount;
16108
+ slot.regions.regionIds = regionIds;
13381
16109
  offset += 40;
13382
16110
  offset += 1;
13383
16111
  offset += 68;
@@ -13494,4 +16222,4 @@ function parse(buffer) {
13494
16222
  return save;
13495
16223
  }
13496
16224
  //#endregion
13497
- export { fn, parse };
16225
+ export { parse };