make-mp-data 3.0.3 → 3.0.5

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.
Files changed (70) hide show
  1. package/README.md +46 -0
  2. package/dungeons/array-of-object-lookup-schema.json +327 -0
  3. package/dungeons/array-of-object-lookup.js +29 -9
  4. package/dungeons/capstone/capstone-ic3.js +291 -0
  5. package/dungeons/capstone/capstone-ic4.js +598 -0
  6. package/dungeons/capstone/capstone-ic5.js +668 -0
  7. package/dungeons/capstone/generate-product-lookup.js +309 -0
  8. package/dungeons/ecommerce-schema.json +462 -0
  9. package/dungeons/{copilot.js → ecommerce.js} +79 -17
  10. package/dungeons/education-schema.json +2409 -0
  11. package/dungeons/education.js +226 -462
  12. package/dungeons/fintech-schema.json +14034 -0
  13. package/dungeons/fintech.js +134 -413
  14. package/dungeons/foobar-schema.json +403 -0
  15. package/dungeons/foobar.js +27 -4
  16. package/dungeons/food-delivery-schema.json +192 -0
  17. package/dungeons/food-delivery.js +602 -0
  18. package/dungeons/food-schema.json +1152 -0
  19. package/dungeons/food.js +173 -406
  20. package/dungeons/gaming-schema.json +1270 -0
  21. package/dungeons/gaming.js +182 -42
  22. package/dungeons/insurance-application-schema.json +204 -0
  23. package/dungeons/insurance-application.js +605 -0
  24. package/dungeons/media-schema.json +906 -0
  25. package/dungeons/media.js +250 -420
  26. package/dungeons/retention-cadence-schema.json +78 -0
  27. package/dungeons/retention-cadence.js +35 -1
  28. package/dungeons/rpg-schema.json +4526 -0
  29. package/dungeons/rpg.js +171 -429
  30. package/dungeons/sanity-schema.json +255 -0
  31. package/dungeons/sanity.js +21 -10
  32. package/dungeons/sass-schema.json +1291 -0
  33. package/dungeons/sass.js +241 -368
  34. package/dungeons/scd-schema.json +919 -0
  35. package/dungeons/scd.js +41 -13
  36. package/dungeons/simple-schema.json +608 -0
  37. package/dungeons/simple.js +52 -15
  38. package/dungeons/simplest-schema.json +1418 -0
  39. package/dungeons/simplest.js +392 -0
  40. package/dungeons/social-schema.json +1118 -0
  41. package/dungeons/social.js +150 -391
  42. package/dungeons/text-generation-schema.json +3096 -0
  43. package/dungeons/text-generation.js +71 -0
  44. package/index.js +8 -6
  45. package/lib/core/config-validator.js +28 -8
  46. package/lib/core/storage.js +5 -5
  47. package/lib/generators/events.js +4 -4
  48. package/lib/orchestrators/mixpanel-sender.js +16 -13
  49. package/lib/orchestrators/user-loop.js +14 -6
  50. package/lib/templates/soup-presets.js +188 -0
  51. package/lib/utils/utils.js +52 -6
  52. package/package.json +1 -1
  53. package/types.d.ts +20 -3
  54. package/dungeons/adspend.js +0 -130
  55. package/dungeons/anon.js +0 -128
  56. package/dungeons/benchmark-heavy.js +0 -240
  57. package/dungeons/benchmark-light.js +0 -140
  58. package/dungeons/big.js +0 -226
  59. package/dungeons/business.js +0 -391
  60. package/dungeons/complex.js +0 -428
  61. package/dungeons/experiments.js +0 -137
  62. package/dungeons/funnels.js +0 -309
  63. package/dungeons/mil.js +0 -323
  64. package/dungeons/mirror.js +0 -161
  65. package/dungeons/soup-test.js +0 -52
  66. package/dungeons/streaming.js +0 -372
  67. package/dungeons/strict-event-test.js +0 -30
  68. package/dungeons/student-teacher.js +0 -438
  69. package/dungeons/too-big-events.js +0 -203
  70. package/dungeons/user-agent.js +0 -209
@@ -0,0 +1,4526 @@
1
+ {
2
+ "schema": {
3
+ "token": "",
4
+ "seed": "harness-gaming",
5
+ "numDays": 100,
6
+ "numEvents": 600000,
7
+ "numUsers": 5000,
8
+ "hasAnonIds": false,
9
+ "hasSessionIds": true,
10
+ "format": "json",
11
+ "gzip": true,
12
+ "alsoInferFunnels": false,
13
+ "hasLocation": true,
14
+ "hasAndroidDevices": true,
15
+ "hasIOSDevices": true,
16
+ "hasDesktopDevices": true,
17
+ "hasBrowser": false,
18
+ "hasCampaigns": false,
19
+ "isAnonymous": false,
20
+ "hasAdSpend": false,
21
+ "percentUsersBornInDataset": 50,
22
+ "hasAvatar": true,
23
+ "batchSize": 2500000,
24
+ "concurrency": 1,
25
+ "writeToDisk": false,
26
+ "funnels": [
27
+ {
28
+ "sequence": [
29
+ "character created",
30
+ "tutorial completed",
31
+ "quest accepted"
32
+ ],
33
+ "isFirstFunnel": true,
34
+ "conversionRate": 75,
35
+ "timeToConvert": 0.5
36
+ },
37
+ {
38
+ "sequence": [
39
+ "combat initiated",
40
+ "combat completed",
41
+ "use item"
42
+ ],
43
+ "conversionRate": 75,
44
+ "timeToConvert": 0.5,
45
+ "weight": 5
46
+ },
47
+ {
48
+ "sequence": [
49
+ "enter dungeon",
50
+ "find treasure",
51
+ "exit dungeon"
52
+ ],
53
+ "conversionRate": 60,
54
+ "timeToConvert": 2,
55
+ "weight": 4,
56
+ "props": {
57
+ "dungeon_id": {
58
+ "functionName": "arrow",
59
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
60
+ },
61
+ "difficulty": [
62
+ "Easy",
63
+ "Medium",
64
+ "Hard",
65
+ "Deadly"
66
+ ]
67
+ }
68
+ },
69
+ {
70
+ "sequence": [
71
+ "quest accepted",
72
+ "quest objective completed",
73
+ "quest turned in"
74
+ ],
75
+ "conversionRate": 55,
76
+ "timeToConvert": 3,
77
+ "weight": 3,
78
+ "props": {
79
+ "quest_id": {
80
+ "functionName": "arrow",
81
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
82
+ }
83
+ }
84
+ },
85
+ {
86
+ "sequence": [
87
+ "inspect",
88
+ "search for clues",
89
+ "enter dungeon"
90
+ ],
91
+ "conversionRate": 50,
92
+ "timeToConvert": 1,
93
+ "weight": 3
94
+ },
95
+ {
96
+ "sequence": [
97
+ "item purchased",
98
+ "use item",
99
+ "item sold"
100
+ ],
101
+ "conversionRate": 45,
102
+ "timeToConvert": 6,
103
+ "weight": 2
104
+ },
105
+ {
106
+ "sequence": [
107
+ "guild joined",
108
+ "level up",
109
+ "real money purchase"
110
+ ],
111
+ "conversionRate": 25,
112
+ "timeToConvert": 24,
113
+ "weight": 1
114
+ }
115
+ ],
116
+ "events": [
117
+ {
118
+ "event": "character created",
119
+ "weight": 1,
120
+ "isFirstEvent": true,
121
+ "properties": {
122
+ "character_class": [
123
+ "Warrior",
124
+ "Mage",
125
+ "Rogue",
126
+ "Cleric",
127
+ "Ranger",
128
+ "Paladin"
129
+ ],
130
+ "starting_race": [
131
+ "Human",
132
+ "Elf",
133
+ "Dwarf",
134
+ "Halfling",
135
+ "Orc"
136
+ ]
137
+ }
138
+ },
139
+ {
140
+ "event": "tutorial completed",
141
+ "weight": 2,
142
+ "properties": {
143
+ "completion_time_mins": [
144
+ 9,
145
+ 12,
146
+ 19,
147
+ 19,
148
+ 11,
149
+ 17,
150
+ 17,
151
+ 10,
152
+ 16,
153
+ 7
154
+ ],
155
+ "skipped": {
156
+ "functionName": "arrow",
157
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
158
+ }
159
+ }
160
+ },
161
+ {
162
+ "event": "quest accepted",
163
+ "weight": 15,
164
+ "properties": {
165
+ "quest_id": {
166
+ "functionName": "arrow",
167
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
168
+ },
169
+ "quest_type": [
170
+ "Main Story",
171
+ "Side Quest",
172
+ "Bounty",
173
+ "Exploration",
174
+ "Escort"
175
+ ],
176
+ "recommended_level": [
177
+ 5,
178
+ 26,
179
+ 30,
180
+ 16,
181
+ 35,
182
+ 14,
183
+ 18,
184
+ 13,
185
+ 20,
186
+ 42,
187
+ 28,
188
+ 33,
189
+ 5,
190
+ 19,
191
+ 28,
192
+ 21,
193
+ 25,
194
+ 22,
195
+ 9,
196
+ 29,
197
+ 35,
198
+ 13,
199
+ 12,
200
+ 39,
201
+ 23,
202
+ 13,
203
+ 44,
204
+ 12,
205
+ 21,
206
+ 11,
207
+ 29,
208
+ 25,
209
+ 22,
210
+ 14,
211
+ 26,
212
+ 19,
213
+ 21,
214
+ 22,
215
+ 19,
216
+ 28,
217
+ 14,
218
+ 25,
219
+ 22,
220
+ 22,
221
+ 16,
222
+ 13,
223
+ 21,
224
+ 20,
225
+ 30,
226
+ 11
227
+ ]
228
+ }
229
+ },
230
+ {
231
+ "event": "quest objective completed",
232
+ "weight": 12,
233
+ "properties": {
234
+ "quest_id": {
235
+ "functionName": "arrow",
236
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
237
+ },
238
+ "objective_number": [
239
+ 4,
240
+ 2,
241
+ 4,
242
+ 2,
243
+ 2,
244
+ 3,
245
+ 2,
246
+ 2,
247
+ 1,
248
+ 4,
249
+ 2,
250
+ 5,
251
+ 4,
252
+ 3,
253
+ 4,
254
+ 2,
255
+ 3,
256
+ 3,
257
+ 3,
258
+ 2,
259
+ 3,
260
+ 3,
261
+ 2,
262
+ 2,
263
+ 2,
264
+ 3,
265
+ 1,
266
+ 1,
267
+ 3,
268
+ 3,
269
+ 3,
270
+ 3,
271
+ 3,
272
+ 4,
273
+ 2,
274
+ 2,
275
+ 1,
276
+ 2,
277
+ 1,
278
+ 3,
279
+ 4,
280
+ 2,
281
+ 2,
282
+ 1,
283
+ 2,
284
+ 2,
285
+ 3,
286
+ 4,
287
+ 2,
288
+ 3
289
+ ]
290
+ }
291
+ },
292
+ {
293
+ "event": "quest turned in",
294
+ "weight": 10,
295
+ "properties": {
296
+ "quest_id": {
297
+ "functionName": "arrow",
298
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
299
+ },
300
+ "reward_gold": [
301
+ 140,
302
+ 123,
303
+ 342,
304
+ 334,
305
+ 166,
306
+ 382,
307
+ 317,
308
+ 103,
309
+ 355,
310
+ 192,
311
+ 140,
312
+ 135,
313
+ 297,
314
+ 306,
315
+ 292,
316
+ 370,
317
+ 173,
318
+ 136,
319
+ 167,
320
+ 184,
321
+ 375,
322
+ 392,
323
+ 149,
324
+ 109,
325
+ 298,
326
+ 312,
327
+ 225,
328
+ 129,
329
+ 129,
330
+ 197,
331
+ 134,
332
+ 255,
333
+ 368,
334
+ 200,
335
+ 122,
336
+ 412,
337
+ 202,
338
+ 121,
339
+ 325,
340
+ 351,
341
+ 248,
342
+ 347,
343
+ 144,
344
+ 151,
345
+ 130,
346
+ 187,
347
+ 232,
348
+ 255,
349
+ 107,
350
+ 102,
351
+ 123,
352
+ 423,
353
+ 125,
354
+ 141,
355
+ 134,
356
+ 134,
357
+ 127,
358
+ 112,
359
+ 281,
360
+ 149,
361
+ 396,
362
+ 324,
363
+ 162,
364
+ 161,
365
+ 190,
366
+ 187,
367
+ 132,
368
+ 349,
369
+ 335,
370
+ 363,
371
+ 117,
372
+ 122,
373
+ 181,
374
+ 412,
375
+ 405,
376
+ 150,
377
+ 110,
378
+ 127,
379
+ 138,
380
+ 342,
381
+ 153,
382
+ 141,
383
+ 335,
384
+ 343,
385
+ 307,
386
+ 69,
387
+ 145,
388
+ 317,
389
+ 197,
390
+ 137,
391
+ 405,
392
+ 383,
393
+ 135,
394
+ 385,
395
+ 319,
396
+ 213,
397
+ 206,
398
+ 105,
399
+ 353,
400
+ 131
401
+ ],
402
+ "reward_xp": [
403
+ 941,
404
+ 1367,
405
+ 777,
406
+ 513,
407
+ 629,
408
+ 685,
409
+ 545,
410
+ 758,
411
+ 1073,
412
+ 572,
413
+ 716,
414
+ 808,
415
+ 588,
416
+ 542,
417
+ 472,
418
+ 558,
419
+ 744,
420
+ 1189,
421
+ 1562,
422
+ 698,
423
+ 468,
424
+ 1262,
425
+ 1410,
426
+ 1499,
427
+ 545,
428
+ 1305,
429
+ 396,
430
+ 696,
431
+ 1503,
432
+ 678,
433
+ 1220,
434
+ 710,
435
+ 585,
436
+ 1064,
437
+ 271,
438
+ 1282,
439
+ 1575,
440
+ 525,
441
+ 506,
442
+ 655,
443
+ 530,
444
+ 530,
445
+ 1247,
446
+ 528,
447
+ 1390,
448
+ 1606,
449
+ 434,
450
+ 662,
451
+ 549,
452
+ 1492,
453
+ 619,
454
+ 450,
455
+ 614,
456
+ 603,
457
+ 546,
458
+ 560,
459
+ 633,
460
+ 929,
461
+ 345,
462
+ 1343,
463
+ 676,
464
+ 1380,
465
+ 762,
466
+ 1025,
467
+ 525,
468
+ 693,
469
+ 1605,
470
+ 479,
471
+ 1519,
472
+ 1435,
473
+ 811,
474
+ 560,
475
+ 542,
476
+ 548,
477
+ 1418,
478
+ 547,
479
+ 527,
480
+ 676,
481
+ 1166,
482
+ 1243,
483
+ 481,
484
+ 1551,
485
+ 384,
486
+ 603,
487
+ 1513,
488
+ 1295,
489
+ 472,
490
+ 715,
491
+ 521,
492
+ 1025,
493
+ 560,
494
+ 649,
495
+ 561,
496
+ 752,
497
+ 524,
498
+ 1439,
499
+ 1396,
500
+ 790,
501
+ 1422,
502
+ 617,
503
+ 1406,
504
+ 771,
505
+ 619,
506
+ 671,
507
+ 876,
508
+ 473,
509
+ 814,
510
+ 1025,
511
+ 874,
512
+ 1534,
513
+ 1294,
514
+ 615,
515
+ 1069,
516
+ 565,
517
+ 664,
518
+ 759,
519
+ 622,
520
+ 1418,
521
+ 1350,
522
+ 457,
523
+ 407,
524
+ 602,
525
+ 1593,
526
+ 1415,
527
+ 631,
528
+ 680,
529
+ 1393,
530
+ 709,
531
+ 599,
532
+ 1375,
533
+ 664,
534
+ 1395,
535
+ 537,
536
+ 610,
537
+ 1025,
538
+ 733,
539
+ 605,
540
+ 1556,
541
+ 1558,
542
+ 537,
543
+ 740,
544
+ 600,
545
+ 553,
546
+ 580,
547
+ 362,
548
+ 1460,
549
+ 572,
550
+ 568,
551
+ 604,
552
+ 637,
553
+ 443,
554
+ 705,
555
+ 1499,
556
+ 673,
557
+ 1345,
558
+ 565,
559
+ 482,
560
+ 493,
561
+ 1598,
562
+ 920,
563
+ 560,
564
+ 1314,
565
+ 624,
566
+ 348,
567
+ 1251,
568
+ 1463,
569
+ 1370,
570
+ 595,
571
+ 479,
572
+ 625,
573
+ 640,
574
+ 496,
575
+ 891,
576
+ 570,
577
+ 581,
578
+ 556,
579
+ 932,
580
+ 439,
581
+ 607,
582
+ 1025,
583
+ 321,
584
+ 1331,
585
+ 766,
586
+ 859,
587
+ 413,
588
+ 441,
589
+ 1421,
590
+ 1499,
591
+ 483,
592
+ 298,
593
+ 607,
594
+ 351,
595
+ 590,
596
+ 1099,
597
+ 531,
598
+ 653,
599
+ 1285,
600
+ 506,
601
+ 1829,
602
+ 1375,
603
+ 732,
604
+ 1434,
605
+ 481,
606
+ 1450,
607
+ 510,
608
+ 1277,
609
+ 620,
610
+ 1404,
611
+ 543,
612
+ 568,
613
+ 512,
614
+ 1226,
615
+ 606,
616
+ 570,
617
+ 626,
618
+ 1549,
619
+ 633,
620
+ 1556,
621
+ 475,
622
+ 424,
623
+ 554,
624
+ 711,
625
+ 561,
626
+ 1384,
627
+ 1327,
628
+ 751,
629
+ 478,
630
+ 517,
631
+ 1560,
632
+ 1594,
633
+ 1229,
634
+ 370,
635
+ 600,
636
+ 575,
637
+ 1257,
638
+ 684,
639
+ 587,
640
+ 1172,
641
+ 595,
642
+ 1428,
643
+ 776,
644
+ 537,
645
+ 546,
646
+ 1232,
647
+ 535,
648
+ 881,
649
+ 424,
650
+ 601,
651
+ 1507,
652
+ 837,
653
+ 850,
654
+ 673,
655
+ 682,
656
+ 380,
657
+ 360,
658
+ 562,
659
+ 1241,
660
+ 702,
661
+ 743,
662
+ 1283,
663
+ 1219,
664
+ 571,
665
+ 1489,
666
+ 543,
667
+ 1556,
668
+ 1409,
669
+ 566,
670
+ 658,
671
+ 728,
672
+ 400,
673
+ 1385,
674
+ 1120,
675
+ 1496,
676
+ 773,
677
+ 1404,
678
+ 713,
679
+ 506,
680
+ 807,
681
+ 582,
682
+ 587,
683
+ 934,
684
+ 1521,
685
+ 1722,
686
+ 566,
687
+ 1250,
688
+ 1242,
689
+ 628,
690
+ 1131,
691
+ 675,
692
+ 1253,
693
+ 788,
694
+ 1485,
695
+ 605,
696
+ 436,
697
+ 684,
698
+ 696,
699
+ 1518,
700
+ 772,
701
+ 1399,
702
+ 1445,
703
+ 894,
704
+ 1597,
705
+ 1246,
706
+ 505,
707
+ 815,
708
+ 1148,
709
+ 736,
710
+ 949,
711
+ 555,
712
+ 559,
713
+ 1250,
714
+ 921,
715
+ 728,
716
+ 666,
717
+ 499,
718
+ 605,
719
+ 378,
720
+ 1637,
721
+ 738,
722
+ 603,
723
+ 1207,
724
+ 1256,
725
+ 1084,
726
+ 458,
727
+ 1229,
728
+ 519,
729
+ 1478,
730
+ 503,
731
+ 1532,
732
+ 533,
733
+ 648,
734
+ 716,
735
+ 1406,
736
+ 490,
737
+ 1429,
738
+ 577,
739
+ 759,
740
+ 529,
741
+ 1371,
742
+ 1416,
743
+ 755,
744
+ 1487,
745
+ 691,
746
+ 536,
747
+ 1474,
748
+ 753,
749
+ 564,
750
+ 654,
751
+ 1108,
752
+ 1343,
753
+ 1588,
754
+ 757,
755
+ 365,
756
+ 1491,
757
+ 596,
758
+ 521,
759
+ 814,
760
+ 715,
761
+ 1126,
762
+ 332,
763
+ 558,
764
+ 872,
765
+ 705,
766
+ 1523,
767
+ 1342,
768
+ 605,
769
+ 1501,
770
+ 1311,
771
+ 1196,
772
+ 1514,
773
+ 658,
774
+ 1548,
775
+ 473,
776
+ 1663,
777
+ 607,
778
+ 531,
779
+ 771,
780
+ 428,
781
+ 504,
782
+ 849,
783
+ 739,
784
+ 625,
785
+ 502,
786
+ 1195,
787
+ 1145,
788
+ 860,
789
+ 499,
790
+ 1025,
791
+ 1421,
792
+ 514,
793
+ 1474,
794
+ 1512,
795
+ 1421,
796
+ 720,
797
+ 402,
798
+ 428,
799
+ 1314,
800
+ 1449,
801
+ 659,
802
+ 1441,
803
+ 792,
804
+ 1321,
805
+ 1452,
806
+ 912,
807
+ 424,
808
+ 1515,
809
+ 730,
810
+ 1246,
811
+ 1457,
812
+ 1530,
813
+ 1528,
814
+ 630,
815
+ 431,
816
+ 907,
817
+ 1151,
818
+ 461,
819
+ 1656,
820
+ 852,
821
+ 675,
822
+ 1086,
823
+ 505,
824
+ 1260,
825
+ 1200,
826
+ 520,
827
+ 599,
828
+ 1245,
829
+ 459,
830
+ 626,
831
+ 521,
832
+ 489,
833
+ 1486,
834
+ 1148,
835
+ 1316,
836
+ 793,
837
+ 1358,
838
+ 588,
839
+ 1375,
840
+ 857,
841
+ 524,
842
+ 1486,
843
+ 1384,
844
+ 535,
845
+ 750,
846
+ 470,
847
+ 1239,
848
+ 690,
849
+ 679,
850
+ 640,
851
+ 634,
852
+ 837,
853
+ 1291,
854
+ 500,
855
+ 1458,
856
+ 1678,
857
+ 1025,
858
+ 581,
859
+ 420,
860
+ 482,
861
+ 1025,
862
+ 607,
863
+ 856,
864
+ 1413,
865
+ 881,
866
+ 1323,
867
+ 646,
868
+ 684,
869
+ 666,
870
+ 1540,
871
+ 532,
872
+ 1382,
873
+ 1358,
874
+ 691,
875
+ 556,
876
+ 584,
877
+ 812,
878
+ 796,
879
+ 673,
880
+ 515,
881
+ 657,
882
+ 393,
883
+ 491,
884
+ 1160,
885
+ 455,
886
+ 750,
887
+ 558,
888
+ 563,
889
+ 1554,
890
+ 816,
891
+ 1416,
892
+ 664,
893
+ 461,
894
+ 1127,
895
+ 594,
896
+ 483,
897
+ 642,
898
+ 732,
899
+ 599,
900
+ 482,
901
+ 666,
902
+ 1105
903
+ ]
904
+ }
905
+ },
906
+ {
907
+ "event": "enter dungeon",
908
+ "weight": 18,
909
+ "properties": {
910
+ "dungeon_id": {
911
+ "functionName": "arrow",
912
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
913
+ },
914
+ "difficulty": [
915
+ "Easy",
916
+ "Medium",
917
+ "Hard",
918
+ "Deadly"
919
+ ],
920
+ "party_size": [
921
+ 4,
922
+ 2,
923
+ 3,
924
+ 5,
925
+ 2,
926
+ 2,
927
+ 5,
928
+ 1,
929
+ 3,
930
+ 3,
931
+ 3,
932
+ 1,
933
+ 2,
934
+ 3,
935
+ 3,
936
+ 4,
937
+ 4,
938
+ 3,
939
+ 4,
940
+ 3,
941
+ 2,
942
+ 2,
943
+ 4,
944
+ 3,
945
+ 3,
946
+ 2,
947
+ 3,
948
+ 4,
949
+ 2,
950
+ 2,
951
+ 2,
952
+ 4,
953
+ 4,
954
+ 3,
955
+ 4,
956
+ 3,
957
+ 3,
958
+ 4,
959
+ 2,
960
+ 3,
961
+ 3,
962
+ 4,
963
+ 4,
964
+ 1,
965
+ 3,
966
+ 3,
967
+ 4,
968
+ 3,
969
+ 2,
970
+ 3
971
+ ]
972
+ }
973
+ },
974
+ {
975
+ "event": "exit dungeon",
976
+ "weight": 14,
977
+ "properties": {
978
+ "dungeon_id": {
979
+ "functionName": "arrow",
980
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
981
+ },
982
+ "time_spent_mins": [
983
+ 83,
984
+ 49,
985
+ 30,
986
+ 86,
987
+ 47,
988
+ 58,
989
+ 33,
990
+ 93,
991
+ 67,
992
+ 27,
993
+ 93,
994
+ 68,
995
+ 33,
996
+ 40,
997
+ 52,
998
+ 86,
999
+ 41,
1000
+ 28,
1001
+ 81,
1002
+ 58,
1003
+ 65,
1004
+ 87,
1005
+ 35,
1006
+ 28,
1007
+ 34,
1008
+ 36,
1009
+ 24,
1010
+ 41,
1011
+ 39,
1012
+ 94
1013
+ ],
1014
+ "completion_status": [
1015
+ "completed",
1016
+ "abandoned",
1017
+ "died"
1018
+ ]
1019
+ }
1020
+ },
1021
+ {
1022
+ "event": "find treasure",
1023
+ "weight": 16,
1024
+ "properties": {
1025
+ "treasure_type": [
1026
+ "Gold",
1027
+ "Weapon",
1028
+ "Armor",
1029
+ "Potion",
1030
+ "Scroll",
1031
+ "Rare Artifact"
1032
+ ],
1033
+ "treasure_value": [
1034
+ 471,
1035
+ 385,
1036
+ 43,
1037
+ 932,
1038
+ 380,
1039
+ 318,
1040
+ 373,
1041
+ 25,
1042
+ 458,
1043
+ 545,
1044
+ 317,
1045
+ 542,
1046
+ 454,
1047
+ 350,
1048
+ 102,
1049
+ 251,
1050
+ 110,
1051
+ 355,
1052
+ 390,
1053
+ 352,
1054
+ 303,
1055
+ 808,
1056
+ 356,
1057
+ 723,
1058
+ 158,
1059
+ 377,
1060
+ 493,
1061
+ 573,
1062
+ 169,
1063
+ 422,
1064
+ 361,
1065
+ 334,
1066
+ 110,
1067
+ 365,
1068
+ 449,
1069
+ 510,
1070
+ 371,
1071
+ 436,
1072
+ 352,
1073
+ 434,
1074
+ 91,
1075
+ 112,
1076
+ 48,
1077
+ 329,
1078
+ 481,
1079
+ 967,
1080
+ 278,
1081
+ 500,
1082
+ 350,
1083
+ 410
1084
+ ]
1085
+ }
1086
+ },
1087
+ {
1088
+ "event": "player death",
1089
+ "weight": 8,
1090
+ "properties": {
1091
+ "cause_of_death": [
1092
+ "Monster",
1093
+ "Trap",
1094
+ "Fall Damage",
1095
+ "Poison",
1096
+ "Friendly Fire"
1097
+ ],
1098
+ "player_level": [
1099
+ 31,
1100
+ 36,
1101
+ 37,
1102
+ 18,
1103
+ 6,
1104
+ 17,
1105
+ 30,
1106
+ 3,
1107
+ 22,
1108
+ 38,
1109
+ 23,
1110
+ 13,
1111
+ 19,
1112
+ 42,
1113
+ 41,
1114
+ 42,
1115
+ 23,
1116
+ 21,
1117
+ 23,
1118
+ 17,
1119
+ 15,
1120
+ 19,
1121
+ 38,
1122
+ 36,
1123
+ 11,
1124
+ 26,
1125
+ 29,
1126
+ 24,
1127
+ 16,
1128
+ 16,
1129
+ 14,
1130
+ 32,
1131
+ 15,
1132
+ 26,
1133
+ 16,
1134
+ 11,
1135
+ 26,
1136
+ 7,
1137
+ 34,
1138
+ 19,
1139
+ 19,
1140
+ 17,
1141
+ 16,
1142
+ 10,
1143
+ 14,
1144
+ 34,
1145
+ 33,
1146
+ 27,
1147
+ 25,
1148
+ 1
1149
+ ],
1150
+ "resurrection_used": {
1151
+ "functionName": "arrow",
1152
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1153
+ }
1154
+ }
1155
+ },
1156
+ {
1157
+ "event": "level up",
1158
+ "weight": 5,
1159
+ "properties": {
1160
+ "new_level": [
1161
+ 15,
1162
+ 24,
1163
+ 26,
1164
+ 33,
1165
+ 15,
1166
+ 15,
1167
+ 48,
1168
+ 10,
1169
+ 41,
1170
+ 14,
1171
+ 24,
1172
+ 6,
1173
+ 44,
1174
+ 22,
1175
+ 40,
1176
+ 13,
1177
+ 34,
1178
+ 26,
1179
+ 8,
1180
+ 43,
1181
+ 8,
1182
+ 14,
1183
+ 20,
1184
+ 17,
1185
+ 40,
1186
+ 19,
1187
+ 23,
1188
+ 17,
1189
+ 28,
1190
+ 25,
1191
+ 17,
1192
+ 19,
1193
+ 27,
1194
+ 10,
1195
+ 36,
1196
+ 14,
1197
+ 30,
1198
+ 16,
1199
+ 18,
1200
+ 22,
1201
+ 25,
1202
+ 17,
1203
+ 12,
1204
+ 12,
1205
+ 18,
1206
+ 18,
1207
+ 33,
1208
+ 15,
1209
+ 34,
1210
+ 28
1211
+ ],
1212
+ "stat_points_gained": [
1213
+ 4,
1214
+ 2,
1215
+ 1,
1216
+ 3,
1217
+ 4,
1218
+ 2,
1219
+ 2,
1220
+ 3,
1221
+ 3,
1222
+ 2,
1223
+ 2,
1224
+ 3,
1225
+ 3,
1226
+ 3,
1227
+ 2,
1228
+ 3,
1229
+ 1,
1230
+ 2,
1231
+ 4,
1232
+ 3,
1233
+ 1,
1234
+ 2,
1235
+ 3,
1236
+ 2,
1237
+ 3,
1238
+ 4,
1239
+ 4,
1240
+ 3,
1241
+ 4,
1242
+ 3,
1243
+ 3,
1244
+ 2,
1245
+ 2,
1246
+ 3,
1247
+ 2,
1248
+ 3,
1249
+ 4,
1250
+ 5,
1251
+ 3,
1252
+ 4,
1253
+ 4,
1254
+ 3,
1255
+ 4,
1256
+ 2,
1257
+ 2,
1258
+ 3,
1259
+ 1,
1260
+ 2,
1261
+ 2,
1262
+ 4
1263
+ ]
1264
+ }
1265
+ },
1266
+ {
1267
+ "event": "item purchased",
1268
+ "weight": 11,
1269
+ "properties": {
1270
+ "item_id": {
1271
+ "functionName": "arrow",
1272
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1273
+ },
1274
+ "item_type": [
1275
+ "Weapon",
1276
+ "Armor",
1277
+ "Potion",
1278
+ "Scroll",
1279
+ "Mount",
1280
+ "Cosmetic"
1281
+ ],
1282
+ "price_gold": [
1283
+ 174,
1284
+ 364,
1285
+ 143,
1286
+ 175,
1287
+ 437,
1288
+ 153,
1289
+ 106,
1290
+ 116,
1291
+ 256,
1292
+ 157,
1293
+ 255,
1294
+ 134,
1295
+ 117,
1296
+ 222,
1297
+ 186,
1298
+ 137,
1299
+ 235,
1300
+ 115,
1301
+ 117,
1302
+ 401,
1303
+ 302,
1304
+ 218,
1305
+ 237,
1306
+ 401,
1307
+ 145,
1308
+ 58,
1309
+ 448,
1310
+ 86,
1311
+ 148,
1312
+ 257,
1313
+ 371,
1314
+ 211,
1315
+ 184,
1316
+ 151,
1317
+ 116,
1318
+ 73,
1319
+ 416,
1320
+ 162,
1321
+ 170,
1322
+ 126,
1323
+ 166,
1324
+ 194,
1325
+ 76,
1326
+ 98,
1327
+ 217,
1328
+ 160,
1329
+ 192,
1330
+ 229,
1331
+ 137,
1332
+ 239,
1333
+ 397,
1334
+ 87,
1335
+ 156,
1336
+ 193,
1337
+ 173,
1338
+ 212,
1339
+ 325,
1340
+ 161,
1341
+ 221,
1342
+ 204,
1343
+ 130,
1344
+ 211,
1345
+ 96,
1346
+ 102,
1347
+ 291,
1348
+ 342,
1349
+ 98,
1350
+ 135,
1351
+ 159,
1352
+ 163,
1353
+ 314,
1354
+ 215,
1355
+ 353,
1356
+ 288,
1357
+ 397,
1358
+ 170,
1359
+ 192,
1360
+ 387,
1361
+ 220,
1362
+ 261,
1363
+ 255,
1364
+ 345,
1365
+ 149,
1366
+ 388,
1367
+ 255,
1368
+ 276,
1369
+ 256,
1370
+ 347,
1371
+ 111,
1372
+ 300,
1373
+ 419,
1374
+ 95,
1375
+ 408,
1376
+ 161,
1377
+ 384,
1378
+ 230,
1379
+ 255,
1380
+ 108,
1381
+ 285,
1382
+ 128
1383
+ ],
1384
+ "vendor_type": [
1385
+ "Town",
1386
+ "Dungeon",
1387
+ "Special Event"
1388
+ ]
1389
+ }
1390
+ },
1391
+ {
1392
+ "event": "item sold",
1393
+ "weight": 7,
1394
+ "properties": {
1395
+ "item_id": {
1396
+ "functionName": "arrow",
1397
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1398
+ },
1399
+ "item_type": [
1400
+ "Weapon",
1401
+ "Armor",
1402
+ "Potion",
1403
+ "Scroll",
1404
+ "Junk"
1405
+ ],
1406
+ "sell_price": [
1407
+ 143,
1408
+ 148,
1409
+ 144,
1410
+ 70,
1411
+ 142,
1412
+ 111,
1413
+ 81,
1414
+ 182,
1415
+ 166,
1416
+ 94,
1417
+ 69,
1418
+ 78,
1419
+ 83,
1420
+ 156,
1421
+ 214,
1422
+ 70,
1423
+ 62,
1424
+ 71,
1425
+ 74,
1426
+ 106,
1427
+ 76,
1428
+ 70,
1429
+ 194,
1430
+ 50,
1431
+ 211,
1432
+ 56,
1433
+ 72,
1434
+ 52,
1435
+ 49,
1436
+ 196,
1437
+ 196,
1438
+ 156,
1439
+ 72,
1440
+ 61,
1441
+ 61,
1442
+ 64,
1443
+ 172,
1444
+ 197,
1445
+ 207,
1446
+ 182,
1447
+ 110,
1448
+ 59,
1449
+ 193,
1450
+ 77,
1451
+ 83,
1452
+ 88,
1453
+ 68,
1454
+ 196,
1455
+ 212,
1456
+ 68
1457
+ ]
1458
+ }
1459
+ },
1460
+ {
1461
+ "event": "real money purchase",
1462
+ "weight": 3,
1463
+ "properties": {
1464
+ "product": [
1465
+ "Premium Currency (1000)",
1466
+ "Premium Currency (5000)",
1467
+ "Lucky Charm Pack",
1468
+ "Legendary Weapon Chest",
1469
+ "Cosmetic Bundle",
1470
+ "Season Pass"
1471
+ ],
1472
+ "price_usd": {
1473
+ "functionName": "arrow",
1474
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1475
+ },
1476
+ "payment_method": [
1477
+ "Credit Card",
1478
+ "PayPal",
1479
+ "Apple Pay",
1480
+ "Google Pay"
1481
+ ]
1482
+ }
1483
+ },
1484
+ {
1485
+ "event": "guild joined",
1486
+ "weight": 4,
1487
+ "properties": {
1488
+ "guild_size": [
1489
+ 58,
1490
+ 14,
1491
+ 56,
1492
+ 55,
1493
+ 83,
1494
+ 5,
1495
+ 53,
1496
+ 37,
1497
+ 43,
1498
+ 6,
1499
+ 45,
1500
+ 52,
1501
+ 10,
1502
+ 27,
1503
+ 82,
1504
+ 65,
1505
+ 46,
1506
+ 44,
1507
+ 62,
1508
+ 77,
1509
+ 38,
1510
+ 69,
1511
+ 37,
1512
+ 61,
1513
+ 53,
1514
+ 37,
1515
+ 44,
1516
+ 57,
1517
+ 20,
1518
+ 57,
1519
+ 41,
1520
+ 29,
1521
+ 74,
1522
+ 59,
1523
+ 53,
1524
+ 42,
1525
+ 27,
1526
+ 59,
1527
+ 16,
1528
+ 70,
1529
+ 43,
1530
+ 82,
1531
+ 38,
1532
+ 72,
1533
+ 41,
1534
+ 30,
1535
+ 44,
1536
+ 96,
1537
+ 28,
1538
+ 42
1539
+ ],
1540
+ "guild_level": [
1541
+ 7,
1542
+ 5,
1543
+ 8,
1544
+ 11,
1545
+ 15,
1546
+ 14,
1547
+ 5,
1548
+ 16,
1549
+ 4,
1550
+ 14,
1551
+ 15,
1552
+ 11,
1553
+ 6,
1554
+ 7,
1555
+ 8,
1556
+ 15,
1557
+ 8,
1558
+ 9,
1559
+ 13,
1560
+ 9,
1561
+ 16,
1562
+ 8,
1563
+ 12,
1564
+ 12,
1565
+ 11,
1566
+ 8,
1567
+ 10,
1568
+ 6,
1569
+ 9,
1570
+ 8,
1571
+ 8,
1572
+ 2,
1573
+ 6,
1574
+ 18,
1575
+ 10,
1576
+ 12,
1577
+ 11,
1578
+ 6,
1579
+ 9,
1580
+ 5,
1581
+ 11,
1582
+ 10,
1583
+ 7,
1584
+ 8,
1585
+ 9,
1586
+ 2,
1587
+ 12,
1588
+ 10,
1589
+ 12,
1590
+ 16
1591
+ ]
1592
+ }
1593
+ },
1594
+ {
1595
+ "event": "guild left",
1596
+ "weight": 1,
1597
+ "properties": {
1598
+ "reason": [
1599
+ "Inactive",
1600
+ "Found Better Guild",
1601
+ "Conflict",
1602
+ "Disbanded"
1603
+ ]
1604
+ }
1605
+ },
1606
+ {
1607
+ "event": "inspect",
1608
+ "weight": 9,
1609
+ "properties": {
1610
+ "inspect_target": [
1611
+ "NPC",
1612
+ "Monster",
1613
+ "Treasure Chest",
1614
+ "Door",
1615
+ "Statue",
1616
+ "Bookshelf"
1617
+ ]
1618
+ }
1619
+ },
1620
+ {
1621
+ "event": "search for clues",
1622
+ "weight": 8,
1623
+ "properties": {
1624
+ "location_type": [
1625
+ "Dungeon Entrance",
1626
+ "Hidden Room",
1627
+ "Quest Location",
1628
+ "Town Square"
1629
+ ],
1630
+ "clue_found": {
1631
+ "functionName": "arrow",
1632
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1633
+ }
1634
+ }
1635
+ },
1636
+ {
1637
+ "event": "use item",
1638
+ "weight": 14,
1639
+ "properties": {
1640
+ "item_id": {
1641
+ "functionName": "arrow",
1642
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1643
+ },
1644
+ "item_type": [
1645
+ "Health Potion",
1646
+ "Mana Potion",
1647
+ "Buff Scroll",
1648
+ "Ancient Compass",
1649
+ "Lucky Charm",
1650
+ "Resurrection Stone"
1651
+ ],
1652
+ "context": [
1653
+ "Combat",
1654
+ "Exploration",
1655
+ "Boss Fight",
1656
+ "Casual"
1657
+ ]
1658
+ }
1659
+ },
1660
+ {
1661
+ "event": "combat initiated",
1662
+ "weight": 20,
1663
+ "properties": {
1664
+ "enemy_type": [
1665
+ "Goblin",
1666
+ "Skeleton",
1667
+ "Dragon",
1668
+ "Demon",
1669
+ "Undead",
1670
+ "Beast"
1671
+ ],
1672
+ "enemy_level": [
1673
+ 24,
1674
+ 39,
1675
+ 25,
1676
+ 22,
1677
+ 40,
1678
+ 43,
1679
+ 18,
1680
+ 10,
1681
+ 15,
1682
+ 22,
1683
+ 28,
1684
+ 31,
1685
+ 14,
1686
+ 18,
1687
+ 14,
1688
+ 26,
1689
+ 16,
1690
+ 26,
1691
+ 22,
1692
+ 14,
1693
+ 40,
1694
+ 39,
1695
+ 15,
1696
+ 16,
1697
+ 14,
1698
+ 9,
1699
+ 25,
1700
+ 37,
1701
+ 37,
1702
+ 23,
1703
+ 10,
1704
+ 19,
1705
+ 14,
1706
+ 26,
1707
+ 33,
1708
+ 27,
1709
+ 10,
1710
+ 14,
1711
+ 15,
1712
+ 31,
1713
+ 22,
1714
+ 26,
1715
+ 24,
1716
+ 15,
1717
+ 14,
1718
+ 22,
1719
+ 15,
1720
+ 27,
1721
+ 14,
1722
+ 22
1723
+ ],
1724
+ "combat_duration_sec": [
1725
+ 112,
1726
+ 247,
1727
+ 248,
1728
+ 113,
1729
+ 100,
1730
+ 225,
1731
+ 187,
1732
+ 117,
1733
+ 84,
1734
+ 233,
1735
+ 226,
1736
+ 246,
1737
+ 190,
1738
+ 101,
1739
+ 92,
1740
+ 190,
1741
+ 86,
1742
+ 229,
1743
+ 94,
1744
+ 155,
1745
+ 67,
1746
+ 68,
1747
+ 43,
1748
+ 114,
1749
+ 104,
1750
+ 83,
1751
+ 110,
1752
+ 122,
1753
+ 62,
1754
+ 246,
1755
+ 176,
1756
+ 102,
1757
+ 137,
1758
+ 83,
1759
+ 109,
1760
+ 155,
1761
+ 155,
1762
+ 155,
1763
+ 123,
1764
+ 162,
1765
+ 75,
1766
+ 88,
1767
+ 221,
1768
+ 238,
1769
+ 256,
1770
+ 109,
1771
+ 87,
1772
+ 237,
1773
+ 222,
1774
+ 188,
1775
+ 108,
1776
+ 54,
1777
+ 215,
1778
+ 64,
1779
+ 100,
1780
+ 126,
1781
+ 66,
1782
+ 100,
1783
+ 100,
1784
+ 105
1785
+ ]
1786
+ }
1787
+ },
1788
+ {
1789
+ "event": "combat completed",
1790
+ "weight": 18,
1791
+ "properties": {
1792
+ "outcome": [
1793
+ "Victory",
1794
+ "Defeat",
1795
+ "Fled"
1796
+ ],
1797
+ "loot_gained": {
1798
+ "functionName": "arrow",
1799
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1800
+ }
1801
+ }
1802
+ }
1803
+ ],
1804
+ "superProps": {
1805
+ "platform": [
1806
+ "PC",
1807
+ "Mac",
1808
+ "PlayStation",
1809
+ "Xbox",
1810
+ "Switch"
1811
+ ],
1812
+ "graphics_quality": [
1813
+ "Low",
1814
+ "Medium",
1815
+ "High",
1816
+ "Ultra"
1817
+ ],
1818
+ "subscription_tier": {
1819
+ "functionName": "arrow",
1820
+ "body": "function () {\n\t\tconst weighted = [];\n\t\tfor (let i = 0; i < 10; i++) {\n\t\t\tconst rand = chance.d10(); // Random number between 1 and 10\n\n\t\t\t// 35% chance to favor the most chosen index\n\t\t\tif (chance.bool({ likelihood: 35 })) {\n\t\t\t\t// 50% chance to slightly alter the index\n\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\tweighted.push(items[mostChosenIndex]);\n\t\t\t\t} else {\n\t\t\t\t\tconst addOrSubtract = chance.bool({ likelihood: 50 }) ? -rand : rand;\n\t\t\t\t\tlet newIndex = mostChosenIndex + addOrSubtract;\n\n\t\t\t\t\t// Ensure newIndex is within bounds\n\t\t\t\t\tif (newIndex < 0) newIndex = 0;\n\t\t\t\t\tif (newIndex >= items.length) newIndex = items.length - 1;\n\t\t\t\t\tweighted.push(items[newIndex]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 25% chance to favor the second most chosen index\n\t\t\telse if (chance.bool({ likelihood: 25 })) {\n\t\t\t\tweighted.push(items[secondMostChosenIndex]);\n\t\t\t}\n\t\t\t// 15% chance to favor the third most chosen index\n\t\t\telse if (chance.bool({ likelihood: 15 })) {\n\t\t\t\tweighted.push(items[thirdMostChosenIndex]);\n\t\t\t}\n\t\t\t// Otherwise, pick a random item from the list\n\t\t\telse {\n\t\t\t\tweighted.push(chance.pickone(items));\n\t\t\t}\n\t\t}\n\t\treturn weighted;\n\t}"
1821
+ }
1822
+ },
1823
+ "scdProps": {},
1824
+ "userProps": {
1825
+ "preferred_playstyle": [
1826
+ "Solo Explorer",
1827
+ "Group Raider",
1828
+ "PvP Fighter",
1829
+ "Quest Completionist",
1830
+ "Treasure Hunter"
1831
+ ],
1832
+ "total_playtime_hours": [
1833
+ 205,
1834
+ 251,
1835
+ 309,
1836
+ 134,
1837
+ 377,
1838
+ 269,
1839
+ 148,
1840
+ 397,
1841
+ 205,
1842
+ 127,
1843
+ 274,
1844
+ 179,
1845
+ 233,
1846
+ 209,
1847
+ 263,
1848
+ 255,
1849
+ 151,
1850
+ 175,
1851
+ 217,
1852
+ 230,
1853
+ 72,
1854
+ 237,
1855
+ 251,
1856
+ 47,
1857
+ 116,
1858
+ 250,
1859
+ 308,
1860
+ 270,
1861
+ 200,
1862
+ 160,
1863
+ 160,
1864
+ 153,
1865
+ 250,
1866
+ 251,
1867
+ 240,
1868
+ 79,
1869
+ 76,
1870
+ 243,
1871
+ 92,
1872
+ 172,
1873
+ 229,
1874
+ 89,
1875
+ 96,
1876
+ 326,
1877
+ 434,
1878
+ 149,
1879
+ 325,
1880
+ 24,
1881
+ 145,
1882
+ 296
1883
+ ],
1884
+ "achievement_points": [
1885
+ 2430,
1886
+ 2553,
1887
+ 3684,
1888
+ 235,
1889
+ 1953,
1890
+ 2965,
1891
+ 220,
1892
+ 1547,
1893
+ 1968,
1894
+ 4318,
1895
+ 3595,
1896
+ 1431,
1897
+ 808,
1898
+ 2587,
1899
+ 1022,
1900
+ 2680,
1901
+ 964,
1902
+ 421,
1903
+ 2116,
1904
+ 1108,
1905
+ 3437,
1906
+ 901,
1907
+ 1869,
1908
+ 1441,
1909
+ 3343,
1910
+ 1704,
1911
+ 3325,
1912
+ 1470,
1913
+ 1516,
1914
+ 210,
1915
+ 2500,
1916
+ 2608,
1917
+ 2500,
1918
+ 993,
1919
+ 2468,
1920
+ 1621,
1921
+ 2641,
1922
+ 1911,
1923
+ 4196,
1924
+ 2584,
1925
+ 3946,
1926
+ 1373,
1927
+ 3327,
1928
+ 1564,
1929
+ 1772,
1930
+ 3840,
1931
+ 956,
1932
+ 2994,
1933
+ 1863,
1934
+ 3044,
1935
+ 3420,
1936
+ 1845,
1937
+ 1586,
1938
+ 1289,
1939
+ 1133,
1940
+ 1118,
1941
+ 2992,
1942
+ 1632,
1943
+ 3001,
1944
+ 1684,
1945
+ 1753,
1946
+ 354,
1947
+ 1473,
1948
+ 3213,
1949
+ 1445,
1950
+ 1950,
1951
+ 1664,
1952
+ 3715,
1953
+ 471,
1954
+ 1778,
1955
+ 3022,
1956
+ 1666,
1957
+ 3891,
1958
+ 1701,
1959
+ 2005,
1960
+ 2889,
1961
+ 3172,
1962
+ 2386,
1963
+ 4363,
1964
+ 1466,
1965
+ 2500,
1966
+ 2153,
1967
+ 2012,
1968
+ 4048,
1969
+ 1925,
1970
+ 1193,
1971
+ 1167,
1972
+ 1374,
1973
+ 1608,
1974
+ 4193,
1975
+ 3872,
1976
+ 2667,
1977
+ 558,
1978
+ 1235,
1979
+ 2275,
1980
+ 3306,
1981
+ 1656,
1982
+ 3320,
1983
+ 1850,
1984
+ 2932,
1985
+ 1223,
1986
+ 1161,
1987
+ 2029,
1988
+ 977,
1989
+ 1616,
1990
+ 3375,
1991
+ 2422,
1992
+ 2963,
1993
+ 2462,
1994
+ 1598,
1995
+ 1283,
1996
+ 4077,
1997
+ 2808,
1998
+ 2458,
1999
+ 2276,
2000
+ 1661,
2001
+ 4026,
2002
+ 1429,
2003
+ 2809,
2004
+ 676,
2005
+ 3705,
2006
+ 513,
2007
+ 1667,
2008
+ 1401,
2009
+ 2862,
2010
+ 2620,
2011
+ 3022,
2012
+ 3433,
2013
+ 917,
2014
+ 2493,
2015
+ 3037,
2016
+ 3970,
2017
+ 3446,
2018
+ 2890,
2019
+ 1334,
2020
+ 930,
2021
+ 1549,
2022
+ 2487,
2023
+ 3462,
2024
+ 2730,
2025
+ 1815,
2026
+ 1321,
2027
+ 3662,
2028
+ 3680,
2029
+ 1564,
2030
+ 1997,
2031
+ 1552,
2032
+ 1906,
2033
+ 3364,
2034
+ 3587,
2035
+ 3127,
2036
+ 674,
2037
+ 2222,
2038
+ 1050,
2039
+ 2500,
2040
+ 1628,
2041
+ 1576,
2042
+ 1049,
2043
+ 1784,
2044
+ 2805,
2045
+ 1423,
2046
+ 1931,
2047
+ 1118,
2048
+ 707,
2049
+ 1245,
2050
+ 1879,
2051
+ 2962,
2052
+ 1240,
2053
+ 2500,
2054
+ 2590,
2055
+ 1923,
2056
+ 4085,
2057
+ 2675,
2058
+ 2846,
2059
+ 979,
2060
+ 598,
2061
+ 2500,
2062
+ 942,
2063
+ 2965,
2064
+ 1810,
2065
+ 1905,
2066
+ 3640,
2067
+ 2856,
2068
+ 1867,
2069
+ 3514,
2070
+ 4286,
2071
+ 1433,
2072
+ 1197,
2073
+ 2814,
2074
+ 3475,
2075
+ 2829,
2076
+ 807,
2077
+ 1265,
2078
+ 3484,
2079
+ 1511,
2080
+ 4173,
2081
+ 3672,
2082
+ 3270,
2083
+ 2920,
2084
+ 2987,
2085
+ 917,
2086
+ 3935,
2087
+ 4333,
2088
+ 4650,
2089
+ 1839,
2090
+ 2290,
2091
+ 4251,
2092
+ 2500,
2093
+ 1237,
2094
+ 4102,
2095
+ 1608,
2096
+ 1274,
2097
+ 1120,
2098
+ 1215,
2099
+ 1049,
2100
+ 968,
2101
+ 2565,
2102
+ 2159,
2103
+ 302,
2104
+ 1836,
2105
+ 1753,
2106
+ 4173,
2107
+ 1267,
2108
+ 1765,
2109
+ 2883,
2110
+ 1045,
2111
+ 2891,
2112
+ 1462,
2113
+ 1473,
2114
+ 1018,
2115
+ 295,
2116
+ 1536,
2117
+ 2647,
2118
+ 487,
2119
+ 2426,
2120
+ 1662,
2121
+ 2400,
2122
+ 4118,
2123
+ 1620,
2124
+ 4339,
2125
+ 902,
2126
+ 3927,
2127
+ 2229,
2128
+ 3821,
2129
+ 3163,
2130
+ 3334,
2131
+ 1883,
2132
+ 1523,
2133
+ 2406,
2134
+ 1192,
2135
+ 1248,
2136
+ 1034,
2137
+ 2185,
2138
+ 2577,
2139
+ 1723,
2140
+ 2500,
2141
+ 3859,
2142
+ 2559,
2143
+ 1246,
2144
+ 3809,
2145
+ 4087,
2146
+ 1285,
2147
+ 1470,
2148
+ 913,
2149
+ 1214,
2150
+ 1180,
2151
+ 2500,
2152
+ 1354,
2153
+ 2788,
2154
+ 2277,
2155
+ 4079,
2156
+ 1433,
2157
+ 2309,
2158
+ 4127,
2159
+ 1445,
2160
+ 3061,
2161
+ 1321,
2162
+ 1410,
2163
+ 2500,
2164
+ 1253,
2165
+ 3501,
2166
+ 2867,
2167
+ 2018,
2168
+ 1354,
2169
+ 2500,
2170
+ 1860,
2171
+ 1654,
2172
+ 4101,
2173
+ 4218,
2174
+ 3319,
2175
+ 2942,
2176
+ 1030,
2177
+ 1712,
2178
+ 1861,
2179
+ 2758,
2180
+ 956,
2181
+ 1908,
2182
+ 1265,
2183
+ 2500,
2184
+ 807,
2185
+ 2131,
2186
+ 1299,
2187
+ 1761,
2188
+ 1469,
2189
+ 4306,
2190
+ 412,
2191
+ 712,
2192
+ 2996,
2193
+ 3854,
2194
+ 2714,
2195
+ 1206,
2196
+ 1590,
2197
+ 1711,
2198
+ 2485,
2199
+ 1378,
2200
+ 3002,
2201
+ 1705,
2202
+ 2500,
2203
+ 2778,
2204
+ 682,
2205
+ 1452,
2206
+ 3050,
2207
+ 1196,
2208
+ 2063,
2209
+ 1812,
2210
+ 1747,
2211
+ 2428,
2212
+ 1568,
2213
+ 2120,
2214
+ 1190,
2215
+ 1900,
2216
+ 1649,
2217
+ 2946,
2218
+ 1458,
2219
+ 1972,
2220
+ 1639,
2221
+ 1163,
2222
+ 1954,
2223
+ 3559,
2224
+ 1505,
2225
+ 1204,
2226
+ 3672,
2227
+ 4086,
2228
+ 1303,
2229
+ 2325,
2230
+ 1076,
2231
+ 2231,
2232
+ 1451,
2233
+ 1663,
2234
+ 1719,
2235
+ 2823,
2236
+ 2260,
2237
+ 1397,
2238
+ 1600,
2239
+ 2881,
2240
+ 2077,
2241
+ 954,
2242
+ 3113,
2243
+ 1893,
2244
+ 3721,
2245
+ 2968,
2246
+ 1974,
2247
+ 2867,
2248
+ 2248,
2249
+ 2116,
2250
+ 3840,
2251
+ 1914,
2252
+ 1609,
2253
+ 1804,
2254
+ 1904,
2255
+ 1257,
2256
+ 982,
2257
+ 3850,
2258
+ 479,
2259
+ 3209,
2260
+ 1464,
2261
+ 1960,
2262
+ 1627,
2263
+ 2316,
2264
+ 3139,
2265
+ 105,
2266
+ 2311,
2267
+ 3273,
2268
+ 1328,
2269
+ 1706,
2270
+ 3841,
2271
+ 535,
2272
+ 2458,
2273
+ 888,
2274
+ 3824,
2275
+ 2135,
2276
+ 3868,
2277
+ 1897,
2278
+ 3396,
2279
+ 3068,
2280
+ 1686,
2281
+ 3716,
2282
+ 3713,
2283
+ 2500,
2284
+ 1923,
2285
+ 3898,
2286
+ 1772,
2287
+ 3707,
2288
+ 3864,
2289
+ 1695,
2290
+ 3688,
2291
+ 4010,
2292
+ 508,
2293
+ 1570,
2294
+ 1713,
2295
+ 658,
2296
+ 1602,
2297
+ 1911,
2298
+ 3068,
2299
+ 3577,
2300
+ 3094,
2301
+ 3761,
2302
+ 2917,
2303
+ 1382,
2304
+ 1140,
2305
+ 3625,
2306
+ 3798,
2307
+ 2044,
2308
+ 3128,
2309
+ 3259,
2310
+ 1936,
2311
+ 923,
2312
+ 1044,
2313
+ 2863,
2314
+ 2500,
2315
+ 1920,
2316
+ 3618,
2317
+ 2288,
2318
+ 3202,
2319
+ 1684,
2320
+ 2828,
2321
+ 2936,
2322
+ 1267,
2323
+ 1261,
2324
+ 2834,
2325
+ 2500,
2326
+ 825,
2327
+ 1727,
2328
+ 4181,
2329
+ 1755,
2330
+ 1182,
2331
+ 2897,
2332
+ 1362,
2333
+ 1677,
2334
+ 3741,
2335
+ 1979,
2336
+ 3748,
2337
+ 1782,
2338
+ 3612,
2339
+ 1806,
2340
+ 3892,
2341
+ 164,
2342
+ 3498,
2343
+ 1934,
2344
+ 615,
2345
+ 4781,
2346
+ 1959,
2347
+ 2407,
2348
+ 4230,
2349
+ 2651,
2350
+ 1935,
2351
+ 1656,
2352
+ 897,
2353
+ 3279,
2354
+ 1375,
2355
+ 1780,
2356
+ 963,
2357
+ 3874,
2358
+ 1545,
2359
+ 706,
2360
+ 2262,
2361
+ 3147,
2362
+ 970,
2363
+ 1081,
2364
+ 872,
2365
+ 2237,
2366
+ 1591,
2367
+ 944,
2368
+ 989,
2369
+ 4335,
2370
+ 2786,
2371
+ 3362,
2372
+ 1581,
2373
+ 3764,
2374
+ 1195,
2375
+ 3595,
2376
+ 3467,
2377
+ 1129,
2378
+ 1253,
2379
+ 2376,
2380
+ 1991,
2381
+ 3493,
2382
+ 2596,
2383
+ 3086,
2384
+ 1292
2385
+ ],
2386
+ "favorite_class": [
2387
+ "Warrior",
2388
+ "Mage",
2389
+ "Rogue",
2390
+ "Cleric",
2391
+ "Ranger",
2392
+ "Paladin"
2393
+ ]
2394
+ },
2395
+ "groupKeys": [
2396
+ [
2397
+ "guild_id",
2398
+ 500,
2399
+ [
2400
+ "guild joined",
2401
+ "guild left",
2402
+ "quest turned in",
2403
+ "combat completed"
2404
+ ]
2405
+ ]
2406
+ ],
2407
+ "groupProps": {
2408
+ "guild_id": {
2409
+ "name": {
2410
+ "functionName": "arrow",
2411
+ "body": "() => `${chance.word()} ${chance.pickone([\"Knights\", \"Dragons\", \"Warriors\", \"Seekers\", \"Legends\"])}`"
2412
+ },
2413
+ "member_count": [
2414
+ 61,
2415
+ 53,
2416
+ 54,
2417
+ 81,
2418
+ 58,
2419
+ 35,
2420
+ 30,
2421
+ 57,
2422
+ 32,
2423
+ 51,
2424
+ 22,
2425
+ 45,
2426
+ 13,
2427
+ 49,
2428
+ 32,
2429
+ 36,
2430
+ 43,
2431
+ 37,
2432
+ 27,
2433
+ 74,
2434
+ 66,
2435
+ 45,
2436
+ 20,
2437
+ 62,
2438
+ 30,
2439
+ 24,
2440
+ 76,
2441
+ 80,
2442
+ 16,
2443
+ 29,
2444
+ 53,
2445
+ 86,
2446
+ 16,
2447
+ 77,
2448
+ 44,
2449
+ 46,
2450
+ 59,
2451
+ 39,
2452
+ 32,
2453
+ 84,
2454
+ 36,
2455
+ 26,
2456
+ 15,
2457
+ 58,
2458
+ 69,
2459
+ 58,
2460
+ 46,
2461
+ 60,
2462
+ 67,
2463
+ 53
2464
+ ],
2465
+ "guild_level": [
2466
+ 7,
2467
+ 16,
2468
+ 13,
2469
+ 2,
2470
+ 17,
2471
+ 7,
2472
+ 4,
2473
+ 5,
2474
+ 13,
2475
+ 6,
2476
+ 17,
2477
+ 17,
2478
+ 6,
2479
+ 7,
2480
+ 13,
2481
+ 10,
2482
+ 16,
2483
+ 6,
2484
+ 13,
2485
+ 5,
2486
+ 9,
2487
+ 2,
2488
+ 8,
2489
+ 14,
2490
+ 7,
2491
+ 11,
2492
+ 7,
2493
+ 5,
2494
+ 11,
2495
+ 4,
2496
+ 7,
2497
+ 9,
2498
+ 7,
2499
+ 15,
2500
+ 11,
2501
+ 6,
2502
+ 17,
2503
+ 18,
2504
+ 11,
2505
+ 12,
2506
+ 15,
2507
+ 2,
2508
+ 16,
2509
+ 10,
2510
+ 6,
2511
+ 14,
2512
+ 11,
2513
+ 7,
2514
+ 7,
2515
+ 15
2516
+ ],
2517
+ "total_wealth": [
2518
+ 562506,
2519
+ 555803,
2520
+ 292308,
2521
+ 207782,
2522
+ 181469,
2523
+ 359185,
2524
+ 470911,
2525
+ 151371,
2526
+ 256275,
2527
+ 239219,
2528
+ 325933,
2529
+ 723242,
2530
+ 296119,
2531
+ 227024,
2532
+ 251069,
2533
+ 365679,
2534
+ 619112,
2535
+ 299076,
2536
+ 259695,
2537
+ 220046,
2538
+ 213414,
2539
+ 338811,
2540
+ 286664,
2541
+ 212868,
2542
+ 590306,
2543
+ 285102,
2544
+ 566014,
2545
+ 308283,
2546
+ 768490,
2547
+ 764840,
2548
+ 193169,
2549
+ 372406,
2550
+ 684516,
2551
+ 273782,
2552
+ 596146,
2553
+ 280478,
2554
+ 214833,
2555
+ 185897,
2556
+ 190274,
2557
+ 401202,
2558
+ 206550,
2559
+ 270067,
2560
+ 235420,
2561
+ 279311,
2562
+ 652928,
2563
+ 212536,
2564
+ 206334,
2565
+ 726142,
2566
+ 203296,
2567
+ 699506,
2568
+ 418301,
2569
+ 282907,
2570
+ 417529,
2571
+ 350566,
2572
+ 667362,
2573
+ 347030,
2574
+ 285176,
2575
+ 273511,
2576
+ 278020,
2577
+ 552859,
2578
+ 691699,
2579
+ 272052,
2580
+ 795658,
2581
+ 281669,
2582
+ 298931,
2583
+ 609401,
2584
+ 441278,
2585
+ 194219,
2586
+ 404023,
2587
+ 330447,
2588
+ 500500,
2589
+ 608964,
2590
+ 500500,
2591
+ 446082,
2592
+ 748767,
2593
+ 210757,
2594
+ 639768,
2595
+ 228133,
2596
+ 235360,
2597
+ 417551,
2598
+ 299601,
2599
+ 252278,
2600
+ 269131,
2601
+ 585814,
2602
+ 430215,
2603
+ 306637,
2604
+ 787633,
2605
+ 233910,
2606
+ 220032,
2607
+ 250615,
2608
+ 287973,
2609
+ 189035,
2610
+ 167402,
2611
+ 401691,
2612
+ 704608,
2613
+ 405637,
2614
+ 500500,
2615
+ 645720,
2616
+ 533539,
2617
+ 251516,
2618
+ 625317,
2619
+ 417201,
2620
+ 758855,
2621
+ 245988,
2622
+ 244025,
2623
+ 357619,
2624
+ 343450,
2625
+ 227640,
2626
+ 368153,
2627
+ 282057,
2628
+ 587691,
2629
+ 333565,
2630
+ 500500,
2631
+ 168827,
2632
+ 348821,
2633
+ 712868,
2634
+ 288106,
2635
+ 233619,
2636
+ 381997,
2637
+ 640554,
2638
+ 566076,
2639
+ 383749,
2640
+ 338989,
2641
+ 716293,
2642
+ 434001,
2643
+ 223075,
2644
+ 897251,
2645
+ 757354,
2646
+ 340869,
2647
+ 233664,
2648
+ 353330,
2649
+ 546790,
2650
+ 325505,
2651
+ 770050,
2652
+ 350019,
2653
+ 284630,
2654
+ 758910,
2655
+ 231671,
2656
+ 285924,
2657
+ 73368,
2658
+ 854554,
2659
+ 320278,
2660
+ 228891,
2661
+ 299220,
2662
+ 223420,
2663
+ 767863,
2664
+ 302387,
2665
+ 280103,
2666
+ 350358,
2667
+ 871814,
2668
+ 431125,
2669
+ 740777,
2670
+ 272644,
2671
+ 180307,
2672
+ 732650,
2673
+ 174124,
2674
+ 255506,
2675
+ 315449,
2676
+ 200724,
2677
+ 313516,
2678
+ 229145,
2679
+ 650679,
2680
+ 603071,
2681
+ 192628,
2682
+ 697945,
2683
+ 787958,
2684
+ 727038,
2685
+ 352582,
2686
+ 702689,
2687
+ 568246,
2688
+ 228107,
2689
+ 724510,
2690
+ 268964,
2691
+ 221054,
2692
+ 727902,
2693
+ 518598,
2694
+ 341595,
2695
+ 317873,
2696
+ 440608,
2697
+ 317920,
2698
+ 718158,
2699
+ 222103,
2700
+ 755200,
2701
+ 409451,
2702
+ 706524,
2703
+ 259664,
2704
+ 258414,
2705
+ 711597,
2706
+ 565888,
2707
+ 784718,
2708
+ 205791,
2709
+ 255534,
2710
+ 351802,
2711
+ 233859,
2712
+ 799481,
2713
+ 711368,
2714
+ 670090,
2715
+ 723192,
2716
+ 221084,
2717
+ 607026,
2718
+ 470705,
2719
+ 306840,
2720
+ 246258,
2721
+ 206013,
2722
+ 772590,
2723
+ 354640,
2724
+ 266802,
2725
+ 239932,
2726
+ 599622,
2727
+ 268122,
2728
+ 218762,
2729
+ 306181,
2730
+ 303030,
2731
+ 863968,
2732
+ 343588,
2733
+ 395127,
2734
+ 210060,
2735
+ 348957,
2736
+ 342301,
2737
+ 707821,
2738
+ 443972,
2739
+ 211876,
2740
+ 709017,
2741
+ 629961,
2742
+ 370324,
2743
+ 205908,
2744
+ 293466,
2745
+ 256635,
2746
+ 363262,
2747
+ 500500,
2748
+ 283340,
2749
+ 203743,
2750
+ 274109,
2751
+ 740661,
2752
+ 302056,
2753
+ 555443,
2754
+ 654204,
2755
+ 721419,
2756
+ 208164,
2757
+ 221625,
2758
+ 231556,
2759
+ 373435,
2760
+ 203087,
2761
+ 346890,
2762
+ 267667,
2763
+ 178062,
2764
+ 265014,
2765
+ 299563,
2766
+ 380786,
2767
+ 713456,
2768
+ 734327,
2769
+ 265917,
2770
+ 381189,
2771
+ 215169,
2772
+ 669048,
2773
+ 603603,
2774
+ 718432,
2775
+ 707567,
2776
+ 263083,
2777
+ 549923,
2778
+ 181219,
2779
+ 390805,
2780
+ 299967,
2781
+ 203012,
2782
+ 416110,
2783
+ 425500,
2784
+ 422134,
2785
+ 301053,
2786
+ 283420,
2787
+ 367239,
2788
+ 890809,
2789
+ 245872,
2790
+ 183077,
2791
+ 184067,
2792
+ 279876,
2793
+ 742910,
2794
+ 299998,
2795
+ 698255,
2796
+ 346205,
2797
+ 231599,
2798
+ 695991,
2799
+ 352416,
2800
+ 298979,
2801
+ 330324,
2802
+ 631160,
2803
+ 265964,
2804
+ 576585,
2805
+ 740893,
2806
+ 269553,
2807
+ 221849,
2808
+ 238827,
2809
+ 298126,
2810
+ 500500,
2811
+ 613572,
2812
+ 274518,
2813
+ 616710,
2814
+ 642258,
2815
+ 596859,
2816
+ 621563,
2817
+ 692382,
2818
+ 687397,
2819
+ 285501,
2820
+ 691629,
2821
+ 199768,
2822
+ 411637,
2823
+ 289097,
2824
+ 717257,
2825
+ 288351,
2826
+ 272966,
2827
+ 279593,
2828
+ 353755,
2829
+ 500500,
2830
+ 295736,
2831
+ 731812,
2832
+ 200165,
2833
+ 350903,
2834
+ 720280,
2835
+ 704168,
2836
+ 221867,
2837
+ 225026,
2838
+ 416286,
2839
+ 194762,
2840
+ 695199,
2841
+ 255118,
2842
+ 236495,
2843
+ 437430,
2844
+ 411740,
2845
+ 234956,
2846
+ 240749,
2847
+ 236978,
2848
+ 169024,
2849
+ 155243,
2850
+ 206135,
2851
+ 690535,
2852
+ 439210,
2853
+ 269415,
2854
+ 647771,
2855
+ 639345,
2856
+ 258925,
2857
+ 378679,
2858
+ 213664,
2859
+ 685264,
2860
+ 289741,
2861
+ 668860,
2862
+ 170854,
2863
+ 257792,
2864
+ 286833,
2865
+ 245149,
2866
+ 319471,
2867
+ 332295,
2868
+ 235670,
2869
+ 698140,
2870
+ 258691,
2871
+ 246187,
2872
+ 298435,
2873
+ 200619,
2874
+ 250464,
2875
+ 418455,
2876
+ 377661,
2877
+ 684601,
2878
+ 255464,
2879
+ 377984,
2880
+ 358964,
2881
+ 686704,
2882
+ 709754,
2883
+ 752463,
2884
+ 257280,
2885
+ 312477,
2886
+ 213836,
2887
+ 304575,
2888
+ 291167,
2889
+ 500500,
2890
+ 178337,
2891
+ 789009,
2892
+ 683703,
2893
+ 157606,
2894
+ 214839,
2895
+ 315259,
2896
+ 120436,
2897
+ 267745,
2898
+ 280367,
2899
+ 261738,
2900
+ 278096,
2901
+ 372572,
2902
+ 163019,
2903
+ 291542,
2904
+ 238519,
2905
+ 214736,
2906
+ 259119,
2907
+ 244921,
2908
+ 377713,
2909
+ 624421,
2910
+ 615029,
2911
+ 236074,
2912
+ 763172,
2913
+ 695802,
2914
+ 249703,
2915
+ 821227,
2916
+ 295772,
2917
+ 413700,
2918
+ 668612,
2919
+ 288536,
2920
+ 235933,
2921
+ 475276,
2922
+ 305506,
2923
+ 242868,
2924
+ 220881,
2925
+ 667746,
2926
+ 211986,
2927
+ 656093,
2928
+ 753873,
2929
+ 241197,
2930
+ 191798,
2931
+ 351336,
2932
+ 767892,
2933
+ 395045,
2934
+ 778656,
2935
+ 319135,
2936
+ 514770,
2937
+ 223288,
2938
+ 265952,
2939
+ 256250,
2940
+ 214971,
2941
+ 318107,
2942
+ 269731,
2943
+ 740479,
2944
+ 402808,
2945
+ 387392,
2946
+ 247050,
2947
+ 338642,
2948
+ 228653,
2949
+ 808940,
2950
+ 305573,
2951
+ 262345,
2952
+ 345486,
2953
+ 256140,
2954
+ 304059,
2955
+ 276516,
2956
+ 712191,
2957
+ 694856,
2958
+ 500500,
2959
+ 594784,
2960
+ 207511,
2961
+ 538063,
2962
+ 348398,
2963
+ 315341,
2964
+ 240808,
2965
+ 226640,
2966
+ 605800,
2967
+ 354207,
2968
+ 229894,
2969
+ 418628,
2970
+ 263580,
2971
+ 694423,
2972
+ 292503,
2973
+ 242202,
2974
+ 651495,
2975
+ 347325,
2976
+ 311807,
2977
+ 241617,
2978
+ 804944,
2979
+ 348136,
2980
+ 576774,
2981
+ 212606,
2982
+ 206709,
2983
+ 261585,
2984
+ 244037,
2985
+ 269181,
2986
+ 707092,
2987
+ 500500,
2988
+ 326132,
2989
+ 727745,
2990
+ 287901,
2991
+ 389777,
2992
+ 675727,
2993
+ 419645,
2994
+ 256615,
2995
+ 240604,
2996
+ 189945,
2997
+ 765046,
2998
+ 342019,
2999
+ 257148,
3000
+ 266591,
3001
+ 733913,
3002
+ 325030,
3003
+ 778031,
3004
+ 738432,
3005
+ 827280,
3006
+ 718082,
3007
+ 219191,
3008
+ 593597,
3009
+ 535286,
3010
+ 358413,
3011
+ 757450,
3012
+ 571676,
3013
+ 582299,
3014
+ 269359,
3015
+ 250894,
3016
+ 283831,
3017
+ 364934,
3018
+ 576926,
3019
+ 185152,
3020
+ 314005,
3021
+ 196022,
3022
+ 243608,
3023
+ 740377,
3024
+ 500500,
3025
+ 655634,
3026
+ 265088,
3027
+ 679931,
3028
+ 274109,
3029
+ 352078,
3030
+ 262353,
3031
+ 420476,
3032
+ 240225,
3033
+ 438506,
3034
+ 240291,
3035
+ 578544,
3036
+ 308748,
3037
+ 291215,
3038
+ 655861,
3039
+ 134437,
3040
+ 292093,
3041
+ 314815,
3042
+ 176290,
3043
+ 718131,
3044
+ 544054,
3045
+ 167977,
3046
+ 422726,
3047
+ 293855,
3048
+ 500500,
3049
+ 344730,
3050
+ 211847,
3051
+ 923610,
3052
+ 255148,
3053
+ 728288,
3054
+ 353048,
3055
+ 590722,
3056
+ 668235,
3057
+ 667627,
3058
+ 369024,
3059
+ 739054,
3060
+ 637499,
3061
+ 584052,
3062
+ 821493,
3063
+ 231556,
3064
+ 586735,
3065
+ 734446,
3066
+ 378741,
3067
+ 782222,
3068
+ 538820,
3069
+ 434353,
3070
+ 342367,
3071
+ 374198,
3072
+ 175915,
3073
+ 235140,
3074
+ 771733,
3075
+ 244888,
3076
+ 279001,
3077
+ 369648,
3078
+ 367933,
3079
+ 372352,
3080
+ 144536,
3081
+ 728248,
3082
+ 654618,
3083
+ 817780,
3084
+ 637544,
3085
+ 664858,
3086
+ 722470,
3087
+ 673056,
3088
+ 713102,
3089
+ 630659,
3090
+ 78348,
3091
+ 239207,
3092
+ 756791,
3093
+ 226746,
3094
+ 286640,
3095
+ 744030,
3096
+ 368947,
3097
+ 329273,
3098
+ 270162,
3099
+ 362640,
3100
+ 439493,
3101
+ 813477,
3102
+ 538057,
3103
+ 315642,
3104
+ 258446,
3105
+ 784909,
3106
+ 413568,
3107
+ 754458,
3108
+ 371752,
3109
+ 307060,
3110
+ 500500,
3111
+ 257736,
3112
+ 229524,
3113
+ 743996,
3114
+ 263626,
3115
+ 560388,
3116
+ 193488,
3117
+ 336745,
3118
+ 805386,
3119
+ 310968,
3120
+ 260327,
3121
+ 396521,
3122
+ 357735,
3123
+ 325987,
3124
+ 256133,
3125
+ 689740,
3126
+ 161057,
3127
+ 305462,
3128
+ 221852,
3129
+ 301447,
3130
+ 229849,
3131
+ 221699,
3132
+ 301729,
3133
+ 244100,
3134
+ 232527,
3135
+ 801193,
3136
+ 151417,
3137
+ 470403,
3138
+ 657032,
3139
+ 741987,
3140
+ 647420,
3141
+ 707633,
3142
+ 403585,
3143
+ 365949,
3144
+ 751919,
3145
+ 230774,
3146
+ 243600,
3147
+ 882975,
3148
+ 264289,
3149
+ 196744,
3150
+ 430371,
3151
+ 639106,
3152
+ 251167,
3153
+ 310493,
3154
+ 341879,
3155
+ 269168,
3156
+ 247219,
3157
+ 363762,
3158
+ 321769,
3159
+ 277439,
3160
+ 342203,
3161
+ 287053,
3162
+ 809929,
3163
+ 791987,
3164
+ 173394,
3165
+ 338958,
3166
+ 707903,
3167
+ 241903,
3168
+ 774480,
3169
+ 321487,
3170
+ 774627,
3171
+ 652820,
3172
+ 311513,
3173
+ 298780,
3174
+ 402079,
3175
+ 714170,
3176
+ 273999,
3177
+ 692450,
3178
+ 304501,
3179
+ 246818,
3180
+ 319616,
3181
+ 642629,
3182
+ 359895,
3183
+ 455353,
3184
+ 324757,
3185
+ 210726,
3186
+ 232880,
3187
+ 260375,
3188
+ 500500,
3189
+ 374357,
3190
+ 550583,
3191
+ 437224,
3192
+ 820574,
3193
+ 664196,
3194
+ 160079,
3195
+ 194575,
3196
+ 405604,
3197
+ 407762,
3198
+ 404097,
3199
+ 253350,
3200
+ 700569,
3201
+ 827987,
3202
+ 340942,
3203
+ 768625,
3204
+ 242523,
3205
+ 399924,
3206
+ 586689,
3207
+ 323175,
3208
+ 338619,
3209
+ 241459,
3210
+ 315517,
3211
+ 240163,
3212
+ 299228,
3213
+ 269865,
3214
+ 318659,
3215
+ 384017,
3216
+ 216748,
3217
+ 411139,
3218
+ 645444,
3219
+ 301550,
3220
+ 841297,
3221
+ 291797,
3222
+ 255012,
3223
+ 255839,
3224
+ 707198,
3225
+ 806736,
3226
+ 275484,
3227
+ 303372,
3228
+ 231445,
3229
+ 633919,
3230
+ 369268,
3231
+ 285823,
3232
+ 669590,
3233
+ 323221,
3234
+ 243289,
3235
+ 318615,
3236
+ 301803,
3237
+ 687613,
3238
+ 836022,
3239
+ 245851,
3240
+ 449978,
3241
+ 318927,
3242
+ 254921,
3243
+ 244772,
3244
+ 280185,
3245
+ 85268,
3246
+ 384509,
3247
+ 258011,
3248
+ 171683,
3249
+ 703112,
3250
+ 230130,
3251
+ 282517,
3252
+ 409998,
3253
+ 595067,
3254
+ 224256,
3255
+ 216793,
3256
+ 332728,
3257
+ 768288,
3258
+ 177003,
3259
+ 750620,
3260
+ 316888,
3261
+ 378864,
3262
+ 297318,
3263
+ 282259,
3264
+ 651635,
3265
+ 243650,
3266
+ 407731,
3267
+ 259643,
3268
+ 288221,
3269
+ 232282,
3270
+ 324801,
3271
+ 845026,
3272
+ 228185,
3273
+ 760479,
3274
+ 165957,
3275
+ 297045,
3276
+ 624358,
3277
+ 226448,
3278
+ 544236,
3279
+ 667456,
3280
+ 323736,
3281
+ 307525,
3282
+ 394375,
3283
+ 325973,
3284
+ 735095,
3285
+ 312150,
3286
+ 716134,
3287
+ 362077,
3288
+ 238110,
3289
+ 231645,
3290
+ 682976,
3291
+ 240086,
3292
+ 433126,
3293
+ 208006,
3294
+ 671325,
3295
+ 678790,
3296
+ 607272,
3297
+ 254200,
3298
+ 192734,
3299
+ 371139,
3300
+ 831474,
3301
+ 236133,
3302
+ 354281,
3303
+ 315972,
3304
+ 756890,
3305
+ 399483,
3306
+ 299318,
3307
+ 224940,
3308
+ 806373,
3309
+ 236614,
3310
+ 640566,
3311
+ 269644,
3312
+ 817708,
3313
+ 271416,
3314
+ 214721,
3315
+ 311329,
3316
+ 220472,
3317
+ 564573,
3318
+ 632135,
3319
+ 286414,
3320
+ 379642,
3321
+ 769559,
3322
+ 520762,
3323
+ 233921,
3324
+ 265410,
3325
+ 271703,
3326
+ 168479,
3327
+ 709348,
3328
+ 765804,
3329
+ 612588,
3330
+ 297916,
3331
+ 324079,
3332
+ 700376,
3333
+ 756406,
3334
+ 266857,
3335
+ 255866,
3336
+ 271545,
3337
+ 615600,
3338
+ 720823,
3339
+ 248596,
3340
+ 669062,
3341
+ 519202,
3342
+ 236093,
3343
+ 629596,
3344
+ 275742,
3345
+ 731947,
3346
+ 374220,
3347
+ 259541,
3348
+ 308983,
3349
+ 763666,
3350
+ 298055,
3351
+ 237737,
3352
+ 207289,
3353
+ 269239,
3354
+ 729880,
3355
+ 344464,
3356
+ 299004,
3357
+ 654589,
3358
+ 500500,
3359
+ 273519,
3360
+ 664479,
3361
+ 584798,
3362
+ 456651,
3363
+ 430411,
3364
+ 225515,
3365
+ 304339,
3366
+ 298309,
3367
+ 332868,
3368
+ 604924,
3369
+ 132308,
3370
+ 285461,
3371
+ 335224,
3372
+ 615769,
3373
+ 202880,
3374
+ 678614,
3375
+ 395668,
3376
+ 245684,
3377
+ 812342,
3378
+ 188875,
3379
+ 348584,
3380
+ 247714,
3381
+ 254683,
3382
+ 329936,
3383
+ 714217,
3384
+ 600058,
3385
+ 780109,
3386
+ 287430,
3387
+ 253275,
3388
+ 225199,
3389
+ 762425,
3390
+ 313042,
3391
+ 251571,
3392
+ 263634,
3393
+ 591198,
3394
+ 612222,
3395
+ 245892,
3396
+ 333642,
3397
+ 243801,
3398
+ 270697,
3399
+ 665966,
3400
+ 710753,
3401
+ 305730,
3402
+ 638991,
3403
+ 339191,
3404
+ 398466,
3405
+ 745204,
3406
+ 317378,
3407
+ 312820,
3408
+ 342059,
3409
+ 376739,
3410
+ 275064,
3411
+ 239766,
3412
+ 288417,
3413
+ 276955,
3414
+ 207769,
3415
+ 359324,
3416
+ 188050,
3417
+ 365335,
3418
+ 500500,
3419
+ 315300,
3420
+ 238222,
3421
+ 593565,
3422
+ 615649,
3423
+ 744821,
3424
+ 243281,
3425
+ 296523,
3426
+ 184787,
3427
+ 304991,
3428
+ 677969,
3429
+ 207424,
3430
+ 229843,
3431
+ 742525,
3432
+ 197376,
3433
+ 212603,
3434
+ 651137,
3435
+ 786891,
3436
+ 179253,
3437
+ 226106,
3438
+ 283779,
3439
+ 337598,
3440
+ 731080,
3441
+ 320270,
3442
+ 262926,
3443
+ 204318,
3444
+ 500500,
3445
+ 249516,
3446
+ 295202,
3447
+ 743414,
3448
+ 246879,
3449
+ 247419,
3450
+ 212014,
3451
+ 193043,
3452
+ 618852,
3453
+ 721229,
3454
+ 295351,
3455
+ 297357,
3456
+ 246945,
3457
+ 262500,
3458
+ 194876,
3459
+ 282117,
3460
+ 683908,
3461
+ 869501,
3462
+ 753858,
3463
+ 404216,
3464
+ 423407,
3465
+ 241752,
3466
+ 296847,
3467
+ 278649,
3468
+ 220851,
3469
+ 766178,
3470
+ 313678,
3471
+ 303355,
3472
+ 257113,
3473
+ 215106,
3474
+ 759673,
3475
+ 500500,
3476
+ 265165,
3477
+ 269253,
3478
+ 730303,
3479
+ 238600,
3480
+ 217840,
3481
+ 676339,
3482
+ 677402,
3483
+ 259450,
3484
+ 397158,
3485
+ 676339,
3486
+ 750821,
3487
+ 668234,
3488
+ 229552,
3489
+ 701729,
3490
+ 285112,
3491
+ 198083,
3492
+ 552641,
3493
+ 313925,
3494
+ 742229,
3495
+ 763177,
3496
+ 324831,
3497
+ 500500,
3498
+ 237417,
3499
+ 208780,
3500
+ 258929,
3501
+ 268317,
3502
+ 782412,
3503
+ 167952,
3504
+ 648086,
3505
+ 652998,
3506
+ 281105,
3507
+ 268439,
3508
+ 757210,
3509
+ 565135,
3510
+ 749698,
3511
+ 608645,
3512
+ 627831,
3513
+ 696751,
3514
+ 242659,
3515
+ 380142,
3516
+ 631065,
3517
+ 847106,
3518
+ 744415,
3519
+ 387101,
3520
+ 177390,
3521
+ 314989,
3522
+ 340913,
3523
+ 267617,
3524
+ 587313,
3525
+ 374086,
3526
+ 408079,
3527
+ 571026,
3528
+ 187544,
3529
+ 595339,
3530
+ 281074,
3531
+ 278655,
3532
+ 618257,
3533
+ 322670,
3534
+ 281641,
3535
+ 225549,
3536
+ 113734,
3537
+ 194465,
3538
+ 125681,
3539
+ 306394,
3540
+ 256757,
3541
+ 166481,
3542
+ 721451,
3543
+ 226555,
3544
+ 269628,
3545
+ 384991,
3546
+ 252932,
3547
+ 315809,
3548
+ 759416,
3549
+ 273753,
3550
+ 278131,
3551
+ 745737,
3552
+ 763394,
3553
+ 412374,
3554
+ 240226,
3555
+ 232285,
3556
+ 317680,
3557
+ 335279,
3558
+ 264505,
3559
+ 173940,
3560
+ 289130,
3561
+ 409575,
3562
+ 277970,
3563
+ 349196,
3564
+ 274123,
3565
+ 712318,
3566
+ 711262,
3567
+ 589099,
3568
+ 409832,
3569
+ 749146,
3570
+ 772259,
3571
+ 198143,
3572
+ 269633,
3573
+ 296094,
3574
+ 651704,
3575
+ 180111,
3576
+ 284582,
3577
+ 634994,
3578
+ 325802,
3579
+ 706619,
3580
+ 186730,
3581
+ 610486,
3582
+ 367607,
3583
+ 240348,
3584
+ 530704,
3585
+ 253295,
3586
+ 394334,
3587
+ 558775,
3588
+ 194576,
3589
+ 327147,
3590
+ 223591,
3591
+ 289736,
3592
+ 321193,
3593
+ 581510,
3594
+ 204301,
3595
+ 333943,
3596
+ 272973,
3597
+ 201652,
3598
+ 198521,
3599
+ 500500,
3600
+ 210660,
3601
+ 715323,
3602
+ 189927,
3603
+ 600782,
3604
+ 256818,
3605
+ 269921,
3606
+ 859481,
3607
+ 753840,
3608
+ 752732,
3609
+ 376593,
3610
+ 662055,
3611
+ 427351,
3612
+ 276014,
3613
+ 279890,
3614
+ 421546,
3615
+ 382881,
3616
+ 216028,
3617
+ 321872,
3618
+ 734626,
3619
+ 287165,
3620
+ 197551,
3621
+ 229272,
3622
+ 209563,
3623
+ 217225,
3624
+ 274499,
3625
+ 263626,
3626
+ 236842,
3627
+ 712113,
3628
+ 606001,
3629
+ 766015,
3630
+ 772181,
3631
+ 407028,
3632
+ 301094,
3633
+ 736269,
3634
+ 375628,
3635
+ 336611,
3636
+ 254687,
3637
+ 300867,
3638
+ 318282,
3639
+ 301183,
3640
+ 193200,
3641
+ 421840,
3642
+ 293548,
3643
+ 744874,
3644
+ 744022,
3645
+ 305400,
3646
+ 666861,
3647
+ 719252,
3648
+ 251364,
3649
+ 793560,
3650
+ 410894,
3651
+ 267209,
3652
+ 717955,
3653
+ 646170,
3654
+ 383602,
3655
+ 338110,
3656
+ 274683,
3657
+ 449842,
3658
+ 233333,
3659
+ 293014,
3660
+ 326903,
3661
+ 437411,
3662
+ 646786,
3663
+ 628451,
3664
+ 615304,
3665
+ 292960,
3666
+ 214544,
3667
+ 808189,
3668
+ 700019,
3669
+ 237210,
3670
+ 381793,
3671
+ 745627,
3672
+ 205356,
3673
+ 192099,
3674
+ 615894,
3675
+ 426497,
3676
+ 576225,
3677
+ 296414,
3678
+ 247930,
3679
+ 216632,
3680
+ 311973,
3681
+ 500500,
3682
+ 378792,
3683
+ 655637,
3684
+ 336422,
3685
+ 661424,
3686
+ 253636,
3687
+ 208250,
3688
+ 303857,
3689
+ 609821,
3690
+ 772172,
3691
+ 777772,
3692
+ 185280,
3693
+ 488460,
3694
+ 753671,
3695
+ 340134,
3696
+ 771960,
3697
+ 719303,
3698
+ 353645,
3699
+ 166250,
3700
+ 500500,
3701
+ 500500,
3702
+ 664634,
3703
+ 609360,
3704
+ 421607,
3705
+ 289118,
3706
+ 221723,
3707
+ 793951,
3708
+ 296241,
3709
+ 647758,
3710
+ 803715,
3711
+ 321638,
3712
+ 845750,
3713
+ 304355,
3714
+ 684387,
3715
+ 321556,
3716
+ 262093,
3717
+ 219168,
3718
+ 225047,
3719
+ 245103,
3720
+ 232752,
3721
+ 279258,
3722
+ 249315,
3723
+ 181873,
3724
+ 649955,
3725
+ 249423,
3726
+ 242038,
3727
+ 787317,
3728
+ 273146,
3729
+ 213435,
3730
+ 385429,
3731
+ 210614,
3732
+ 254716,
3733
+ 291627,
3734
+ 424126,
3735
+ 356243,
3736
+ 243070,
3737
+ 232510,
3738
+ 192167,
3739
+ 299744,
3740
+ 239207,
3741
+ 693187,
3742
+ 358633,
3743
+ 287094,
3744
+ 213689,
3745
+ 333931,
3746
+ 752875,
3747
+ 297040,
3748
+ 500500,
3749
+ 287995,
3750
+ 244167,
3751
+ 421402,
3752
+ 445960,
3753
+ 438166,
3754
+ 603074,
3755
+ 658339,
3756
+ 215983,
3757
+ 230927,
3758
+ 626523,
3759
+ 274767,
3760
+ 265672,
3761
+ 346241,
3762
+ 270253,
3763
+ 262525,
3764
+ 460558,
3765
+ 703960,
3766
+ 292899,
3767
+ 342936,
3768
+ 683890,
3769
+ 671092,
3770
+ 816653,
3771
+ 413789,
3772
+ 648037,
3773
+ 146810,
3774
+ 342073,
3775
+ 196259,
3776
+ 272575,
3777
+ 266492,
3778
+ 500500,
3779
+ 455892,
3780
+ 402784,
3781
+ 500500,
3782
+ 254946,
3783
+ 341040,
3784
+ 348356,
3785
+ 347666,
3786
+ 823813,
3787
+ 416289,
3788
+ 277123,
3789
+ 402218,
3790
+ 261573,
3791
+ 316085,
3792
+ 595730,
3793
+ 180393,
3794
+ 270884,
3795
+ 228786,
3796
+ 260305,
3797
+ 366963,
3798
+ 341691,
3799
+ 299361,
3800
+ 222738,
3801
+ 712482,
3802
+ 404652,
3803
+ 262917,
3804
+ 285871,
3805
+ 773462,
3806
+ 330461,
3807
+ 315390,
3808
+ 681088,
3809
+ 592162,
3810
+ 365122,
3811
+ 602422,
3812
+ 682841,
3813
+ 770241,
3814
+ 722736,
3815
+ 727347,
3816
+ 241048,
3817
+ 626914,
3818
+ 278090,
3819
+ 325542,
3820
+ 389034,
3821
+ 250963,
3822
+ 261904,
3823
+ 195084,
3824
+ 594530,
3825
+ 360438,
3826
+ 356922,
3827
+ 264602,
3828
+ 500500,
3829
+ 758894,
3830
+ 610661,
3831
+ 316967,
3832
+ 95918,
3833
+ 263706,
3834
+ 329422,
3835
+ 346068,
3836
+ 735464,
3837
+ 718257,
3838
+ 362251,
3839
+ 232497,
3840
+ 677499,
3841
+ 646175,
3842
+ 260064,
3843
+ 343189,
3844
+ 375795,
3845
+ 407722,
3846
+ 270092,
3847
+ 221909,
3848
+ 721044,
3849
+ 261568,
3850
+ 339468,
3851
+ 246696,
3852
+ 184516,
3853
+ 279633,
3854
+ 370439,
3855
+ 718377,
3856
+ 207314,
3857
+ 292567,
3858
+ 408069,
3859
+ 290494,
3860
+ 639286,
3861
+ 343099,
3862
+ 171294,
3863
+ 287620,
3864
+ 302096,
3865
+ 678667,
3866
+ 237412,
3867
+ 385305,
3868
+ 228855,
3869
+ 237547,
3870
+ 296862,
3871
+ 275923,
3872
+ 640850,
3873
+ 202576,
3874
+ 555217,
3875
+ 320625,
3876
+ 707433,
3877
+ 593556,
3878
+ 285158,
3879
+ 217505,
3880
+ 222724,
3881
+ 410059,
3882
+ 512054,
3883
+ 750813,
3884
+ 825445,
3885
+ 698649,
3886
+ 601304,
3887
+ 242001,
3888
+ 500500,
3889
+ 387798,
3890
+ 152095,
3891
+ 245656,
3892
+ 683888,
3893
+ 747111,
3894
+ 276679,
3895
+ 191743,
3896
+ 323707,
3897
+ 803009,
3898
+ 282777,
3899
+ 342607,
3900
+ 324925,
3901
+ 802985,
3902
+ 299575,
3903
+ 200942,
3904
+ 312517,
3905
+ 485604,
3906
+ 274796,
3907
+ 744405,
3908
+ 267140,
3909
+ 862426,
3910
+ 762900,
3911
+ 443897,
3912
+ 295182,
3913
+ 827360,
3914
+ 201773,
3915
+ 748911,
3916
+ 301601,
3917
+ 750106,
3918
+ 641633,
3919
+ 448734,
3920
+ 395682,
3921
+ 555388,
3922
+ 282835,
3923
+ 206118,
3924
+ 303378,
3925
+ 590781,
3926
+ 701834,
3927
+ 170082,
3928
+ 733124,
3929
+ 177464,
3930
+ 241369,
3931
+ 704073,
3932
+ 364029,
3933
+ 255076,
3934
+ 230526,
3935
+ 287840,
3936
+ 726752,
3937
+ 775493,
3938
+ 328793,
3939
+ 450920,
3940
+ 271128,
3941
+ 702485,
3942
+ 287611,
3943
+ 234834,
3944
+ 184850,
3945
+ 676215,
3946
+ 306375,
3947
+ 231894,
3948
+ 421156,
3949
+ 280026,
3950
+ 281110,
3951
+ 686810,
3952
+ 695630,
3953
+ 167373,
3954
+ 742875,
3955
+ 436680,
3956
+ 290828,
3957
+ 190520,
3958
+ 292677,
3959
+ 158072,
3960
+ 438294,
3961
+ 343508,
3962
+ 745320,
3963
+ 630467,
3964
+ 305448,
3965
+ 281041,
3966
+ 894851,
3967
+ 307991,
3968
+ 273944,
3969
+ 317981,
3970
+ 402153,
3971
+ 198069,
3972
+ 249302,
3973
+ 382668,
3974
+ 392441,
3975
+ 275542,
3976
+ 574882,
3977
+ 735092,
3978
+ 370539,
3979
+ 315420,
3980
+ 266870,
3981
+ 280059,
3982
+ 368741,
3983
+ 290690,
3984
+ 698831,
3985
+ 211054,
3986
+ 770998,
3987
+ 563934,
3988
+ 230907,
3989
+ 584891,
3990
+ 227476,
3991
+ 231689,
3992
+ 665809,
3993
+ 694163,
3994
+ 705661,
3995
+ 398823,
3996
+ 276949,
3997
+ 261369,
3998
+ 196316,
3999
+ 635624,
4000
+ 236177,
4001
+ 618496,
4002
+ 220112,
4003
+ 301606,
4004
+ 190772,
4005
+ 260863,
4006
+ 834288,
4007
+ 333151,
4008
+ 217950,
4009
+ 500500,
4010
+ 618920,
4011
+ 193079,
4012
+ 321265,
4013
+ 314208,
4014
+ 455681,
4015
+ 481687,
4016
+ 228416,
4017
+ 311696,
4018
+ 248286,
4019
+ 170875,
4020
+ 386265,
4021
+ 671038,
4022
+ 750434,
4023
+ 417658,
4024
+ 595063,
4025
+ 386272,
4026
+ 311521,
4027
+ 280675,
4028
+ 266535,
4029
+ 528231,
4030
+ 340470,
4031
+ 216289,
4032
+ 500500,
4033
+ 246976,
4034
+ 718520,
4035
+ 778016,
4036
+ 194571,
4037
+ 729452,
4038
+ 348618,
4039
+ 408251,
4040
+ 294522,
4041
+ 166218,
4042
+ 210393,
4043
+ 732384,
4044
+ 390467,
4045
+ 208339,
4046
+ 727512,
4047
+ 644409,
4048
+ 266171,
4049
+ 339649,
4050
+ 660969,
4051
+ 243805,
4052
+ 217595,
4053
+ 388031,
4054
+ 336505,
4055
+ 369829,
4056
+ 326609,
4057
+ 690351,
4058
+ 271545,
4059
+ 282144,
4060
+ 315558,
4061
+ 650964,
4062
+ 656486,
4063
+ 727727,
4064
+ 268545,
4065
+ 540852,
4066
+ 346196,
4067
+ 341351,
4068
+ 654143,
4069
+ 234483,
4070
+ 399496,
4071
+ 672202,
4072
+ 319744,
4073
+ 303028,
4074
+ 691809,
4075
+ 548141,
4076
+ 555566,
4077
+ 251596,
4078
+ 431975,
4079
+ 149768,
4080
+ 294387,
4081
+ 352371,
4082
+ 261798,
4083
+ 763066,
4084
+ 213577,
4085
+ 200772,
4086
+ 753051,
4087
+ 172876,
4088
+ 228467,
4089
+ 345385,
4090
+ 350788,
4091
+ 268680,
4092
+ 333030,
4093
+ 739073,
4094
+ 663853,
4095
+ 317570,
4096
+ 642063,
4097
+ 208015,
4098
+ 336056,
4099
+ 289440,
4100
+ 316797,
4101
+ 258238,
4102
+ 679416,
4103
+ 190111,
4104
+ 349341,
4105
+ 712243,
4106
+ 517112,
4107
+ 328800,
4108
+ 189518,
4109
+ 309932,
4110
+ 278985,
4111
+ 283477,
4112
+ 239537,
4113
+ 314629,
4114
+ 269840,
4115
+ 329967,
4116
+ 295392,
4117
+ 595427,
4118
+ 664192,
4119
+ 313422,
4120
+ 228386,
4121
+ 182138,
4122
+ 731045,
4123
+ 262469,
4124
+ 424888,
4125
+ 689394,
4126
+ 459820,
4127
+ 417901,
4128
+ 749302,
4129
+ 421528,
4130
+ 486300,
4131
+ 219229,
4132
+ 609185,
4133
+ 199034,
4134
+ 695786,
4135
+ 224833,
4136
+ 149733,
4137
+ 164924,
4138
+ 287010,
4139
+ 260497,
4140
+ 414444,
4141
+ 300648,
4142
+ 574876,
4143
+ 298428,
4144
+ 243821,
4145
+ 368141,
4146
+ 334009,
4147
+ 363878,
4148
+ 319715,
4149
+ 702771,
4150
+ 305472,
4151
+ 432496,
4152
+ 263941,
4153
+ 309957,
4154
+ 813484,
4155
+ 321931,
4156
+ 386581,
4157
+ 695268,
4158
+ 743668,
4159
+ 292964,
4160
+ 603242,
4161
+ 744853,
4162
+ 712005,
4163
+ 766110,
4164
+ 319038,
4165
+ 353523,
4166
+ 234776,
4167
+ 538864,
4168
+ 791241,
4169
+ 275774,
4170
+ 833140,
4171
+ 249350,
4172
+ 176016,
4173
+ 204411,
4174
+ 77167,
4175
+ 345725,
4176
+ 592722,
4177
+ 310538,
4178
+ 500500,
4179
+ 344676,
4180
+ 276577,
4181
+ 540169,
4182
+ 320254,
4183
+ 257642,
4184
+ 710159,
4185
+ 708584,
4186
+ 671350,
4187
+ 803488,
4188
+ 296836,
4189
+ 304811,
4190
+ 457729,
4191
+ 334079,
4192
+ 387075,
4193
+ 224918,
4194
+ 691629,
4195
+ 298577,
4196
+ 264754,
4197
+ 681666,
4198
+ 317847,
4199
+ 608182,
4200
+ 285898,
4201
+ 258144,
4202
+ 279043,
4203
+ 337302,
4204
+ 376691,
4205
+ 254283,
4206
+ 303600,
4207
+ 462152,
4208
+ 375534,
4209
+ 286135,
4210
+ 764272,
4211
+ 276517,
4212
+ 188976,
4213
+ 712322,
4214
+ 235051,
4215
+ 303048,
4216
+ 778460,
4217
+ 345652,
4218
+ 442120,
4219
+ 371253,
4220
+ 283137,
4221
+ 676849,
4222
+ 660561,
4223
+ 500500,
4224
+ 358165,
4225
+ 696908,
4226
+ 692763,
4227
+ 400430,
4228
+ 722862,
4229
+ 330549,
4230
+ 675817,
4231
+ 236035,
4232
+ 225336,
4233
+ 288136,
4234
+ 274120,
4235
+ 223889,
4236
+ 291997,
4237
+ 682013,
4238
+ 385129,
4239
+ 668831,
4240
+ 254823,
4241
+ 299473,
4242
+ 258272,
4243
+ 142890,
4244
+ 319573,
4245
+ 274806,
4246
+ 280131,
4247
+ 280414,
4248
+ 227850,
4249
+ 623458,
4250
+ 297494,
4251
+ 179236,
4252
+ 336641,
4253
+ 286257,
4254
+ 227886,
4255
+ 225042,
4256
+ 214027,
4257
+ 279530,
4258
+ 705741,
4259
+ 781914,
4260
+ 594561,
4261
+ 302365,
4262
+ 710143,
4263
+ 391717,
4264
+ 239717,
4265
+ 264641,
4266
+ 797580,
4267
+ 183369,
4268
+ 238275,
4269
+ 568007,
4270
+ 297264,
4271
+ 723438,
4272
+ 339817,
4273
+ 727745,
4274
+ 234496,
4275
+ 626469,
4276
+ 306350,
4277
+ 657255,
4278
+ 312887,
4279
+ 276173,
4280
+ 247439,
4281
+ 215952,
4282
+ 764434,
4283
+ 500500,
4284
+ 300348,
4285
+ 281043,
4286
+ 225217,
4287
+ 612646,
4288
+ 269148,
4289
+ 224865,
4290
+ 657387,
4291
+ 348178,
4292
+ 620193,
4293
+ 512675,
4294
+ 379006,
4295
+ 663156,
4296
+ 270402,
4297
+ 407457,
4298
+ 797569,
4299
+ 176283,
4300
+ 336679,
4301
+ 839659,
4302
+ 343505,
4303
+ 381484,
4304
+ 200049,
4305
+ 230047,
4306
+ 219083,
4307
+ 719905,
4308
+ 168704,
4309
+ 808793,
4310
+ 312307,
4311
+ 673613,
4312
+ 356772,
4313
+ 375206,
4314
+ 202519,
4315
+ 790186,
4316
+ 500500,
4317
+ 725001,
4318
+ 313966,
4319
+ 617109,
4320
+ 219964,
4321
+ 218865,
4322
+ 222915,
4323
+ 215847,
4324
+ 579919,
4325
+ 187419,
4326
+ 737401,
4327
+ 243729,
4328
+ 379702,
4329
+ 194852,
4330
+ 500500,
4331
+ 361267,
4332
+ 376824,
4333
+ 358140,
4334
+ 378876,
4335
+ 287133,
4336
+ 345352,
4337
+ 563096,
4338
+ 219386,
4339
+ 500500,
4340
+ 127213,
4341
+ 610494,
4342
+ 614279,
4343
+ 469718,
4344
+ 263899,
4345
+ 810196,
4346
+ 660635,
4347
+ 812227,
4348
+ 337299,
4349
+ 571909,
4350
+ 290432,
4351
+ 218753,
4352
+ 212560,
4353
+ 250224,
4354
+ 804277,
4355
+ 247755,
4356
+ 703170,
4357
+ 247671,
4358
+ 258112,
4359
+ 383834,
4360
+ 651856,
4361
+ 302064,
4362
+ 237291,
4363
+ 283149,
4364
+ 322986,
4365
+ 221508,
4366
+ 224586,
4367
+ 254792,
4368
+ 280102,
4369
+ 652587,
4370
+ 213755,
4371
+ 676270,
4372
+ 181080,
4373
+ 293856,
4374
+ 406399,
4375
+ 237192,
4376
+ 258297,
4377
+ 184717,
4378
+ 681349,
4379
+ 707468,
4380
+ 701192,
4381
+ 311614,
4382
+ 837685,
4383
+ 682056,
4384
+ 250105,
4385
+ 213099,
4386
+ 276047,
4387
+ 374283,
4388
+ 757472,
4389
+ 626221,
4390
+ 215945,
4391
+ 236537,
4392
+ 374202,
4393
+ 210807,
4394
+ 361604,
4395
+ 306428,
4396
+ 742942,
4397
+ 861295,
4398
+ 145643,
4399
+ 249698,
4400
+ 299160,
4401
+ 756265,
4402
+ 406388,
4403
+ 240271,
4404
+ 214140,
4405
+ 277898,
4406
+ 300572,
4407
+ 104582,
4408
+ 748870,
4409
+ 539498,
4410
+ 537357,
4411
+ 260350,
4412
+ 273361,
4413
+ 344463,
4414
+ 741161,
4415
+ 229112,
4416
+ 256133,
4417
+ 231634,
4418
+ 407499,
4419
+ 262644,
4420
+ 343158,
4421
+ 739882,
4422
+ 247444,
4423
+ 626414,
4424
+ 542748,
4425
+ 555798,
4426
+ 374004,
4427
+ 312695,
4428
+ 212661,
4429
+ 149428,
4430
+ 428163,
4431
+ 250714,
4432
+ 726387,
4433
+ 335684,
4434
+ 774004,
4435
+ 693992,
4436
+ 705034,
4437
+ 402854,
4438
+ 349759,
4439
+ 134006,
4440
+ 359106,
4441
+ 243307,
4442
+ 791486,
4443
+ 294556,
4444
+ 841276,
4445
+ 667282,
4446
+ 235277,
4447
+ 223635,
4448
+ 708652,
4449
+ 441812,
4450
+ 725696,
4451
+ 467759,
4452
+ 548900,
4453
+ 329053,
4454
+ 199973,
4455
+ 221497,
4456
+ 652138,
4457
+ 719659,
4458
+ 369937,
4459
+ 231086,
4460
+ 282217,
4461
+ 543453,
4462
+ 620681,
4463
+ 217449,
4464
+ 322643,
4465
+ 239648,
4466
+ 248347,
4467
+ 258904,
4468
+ 238635,
4469
+ 295852,
4470
+ 590893,
4471
+ 682480,
4472
+ 340180,
4473
+ 242134,
4474
+ 660876,
4475
+ 699291,
4476
+ 605792,
4477
+ 257257,
4478
+ 185827,
4479
+ 214821,
4480
+ 559311,
4481
+ 712228,
4482
+ 424141,
4483
+ 739282,
4484
+ 726717,
4485
+ 334345,
4486
+ 362348,
4487
+ 225401,
4488
+ 337876,
4489
+ 705352,
4490
+ 246469,
4491
+ 294268,
4492
+ 701599,
4493
+ 331432,
4494
+ 450673,
4495
+ 696727,
4496
+ 725275,
4497
+ 282187,
4498
+ 821571,
4499
+ 271997,
4500
+ 742772,
4501
+ 544682,
4502
+ 748975,
4503
+ 299002,
4504
+ 322765,
4505
+ 282916,
4506
+ 289021,
4507
+ 424724,
4508
+ 728504,
4509
+ 291718,
4510
+ 118147,
4511
+ 232640,
4512
+ 273947,
4513
+ 335446,
4514
+ 249273,
4515
+ 341667,
4516
+ 162350,
4517
+ 405317
4518
+ ]
4519
+ }
4520
+ },
4521
+ "lookupTables": []
4522
+ },
4523
+ "hooks": "function (record, type, meta) {\n\t\tconst NOW = dayjs();\n\t\tconst DATASET_START = NOW.subtract(days, 'days');\n\t\tconst CURSED_WEEK_START = DATASET_START.add(40, 'days');\n\t\tconst CURSED_WEEK_END = DATASET_START.add(47, 'days');\n\t\tconst LEGENDARY_WEAPON_RELEASE = DATASET_START.add(45, 'days');\n\n\t\t// Hook #2: TIME-BASED TREND - Cursed Week\n\t\tif (type === \"event\") {\n\t\t\tconst EVENT_TIME = dayjs(record.time);\n\n\t\t\t// During cursed week, dramatically increase death rates\n\t\t\tif (EVENT_TIME.isAfter(CURSED_WEEK_START) && EVENT_TIME.isBefore(CURSED_WEEK_END)) {\n\t\t\t\t// 50% chance to inject a death event\n\t\t\t\tif (chance.bool({ likelihood: 30 })) {\n\t\t\t\t\tconst deathEvent = {\n\t\t\t\t\t\tevent: \"player death\",\n\t\t\t\t\t\ttime: record.time,\n\t\t\t\t\t\tuser_id: record.user_id,\n\t\t\t\t\t\tcause_of_death: \"Curse\",\n\t\t\t\t\t\tplayer_level: chance.integer({ min: 1, max: 50 }),\n\t\t\t\t\t\tresurrection_used: chance.bool({ likelihood: 80 }), // More res usage during curse\n\t\t\t\t\t\tcursed_week: true,\n\t\t\t\t\t};\n\t\t\t\t\t// Return death event instead sometimes\n\t\t\t\t\tif (chance.bool({ likelihood: 50 })) {\n\t\t\t\t\t\treturn deathEvent;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Hook #7: TIMED RELEASE - Legendary Weapon\n\t\tif (type === \"event\") {\n\t\t\tconst EVENT_TIME = dayjs(record.time);\n\n\t\t\tif (record.event === \"find treasure\") {\n\t\t\t\t// After legendary weapon release, some lucky players get it\n\t\t\t\tif (EVENT_TIME.isAfter(LEGENDARY_WEAPON_RELEASE) && chance.bool({ likelihood: 2 })) {\n\t\t\t\t\trecord.treasure_type = \"Shadowmourne Legendary\";\n\t\t\t\t\trecord.treasure_value = 50000;\n\t\t\t\t\trecord.legendary_drop = true;\n\t\t\t\t} else {\n\t\t\t\t\trecord.legendary_drop = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Hook #3, #4, #5, #6, #1: EVERYTHING - Complex behavioral patterns\n\t\tif (type === \"everything\") {\n\t\t\tconst userEvents = record;\n\t\t\tconst firstEventTime = userEvents.length > 0 ? dayjs(userEvents[0].time) : null;\n\n\t\t\t// Track user behaviors\n\t\t\tlet usedAncientCompass = false;\n\t\t\tlet boughtLuckyCharm = false;\n\t\t\tlet joinedGuildEarly = false;\n\t\t\tlet earlyDeaths = 0;\n\t\t\tlet hasLegendaryWeapon = false;\n\t\t\tlet inspectedBeforeDungeon = false;\n\t\t\tlet searchedBeforeDungeon = false;\n\t\t\tlet subscriptionTier = \"Free\"; // Hook #8: Track subscription tier\n\n\t\t\t// First pass: identify user patterns\n\t\t\tuserEvents.forEach((event, idx) => {\n\t\t\t\tconst eventTime = dayjs(event.time);\n\t\t\t\tconst daysSinceStart = firstEventTime ? eventTime.diff(firstEventTime, 'days', true) : 0;\n\n\t\t\t\t// Hook #8: Capture subscription tier from any event that has it\n\t\t\t\tif (event.subscription_tier) {\n\t\t\t\t\tsubscriptionTier = event.subscription_tier;\n\t\t\t\t}\n\n\t\t\t\t// Hook #1: Track Ancient Compass usage\n\t\t\t\tif (event.event === \"use item\" && event.item_type === \"Ancient Compass\") {\n\t\t\t\t\tusedAncientCompass = true;\n\t\t\t\t}\n\n\t\t\t\t// Hook #5: Track Lucky Charm purchases\n\t\t\t\tif (event.event === \"real money purchase\" && event.product === \"Lucky Charm Pack\") {\n\t\t\t\t\tboughtLuckyCharm = true;\n\t\t\t\t}\n\n\t\t\t\t// Hook #3: Track early guild joining\n\t\t\t\tif (event.event === \"guild joined\" && daysSinceStart < 3) {\n\t\t\t\t\tjoinedGuildEarly = true;\n\t\t\t\t}\n\n\t\t\t\t// Hook #4: Track early deaths (first 7 days)\n\t\t\t\tif (event.event === \"player death\" && daysSinceStart < 7) {\n\t\t\t\t\tearlyDeaths++;\n\t\t\t\t}\n\n\t\t\t\t// Hook #7: Track legendary weapon ownership\n\t\t\t\tif (event.event === \"find treasure\" && event.legendary_drop) {\n\t\t\t\t\thasLegendaryWeapon = true;\n\t\t\t\t}\n\n\t\t\t\t// Hook #6: Track inspect + search patterns\n\t\t\t\tif (event.event === \"inspect\") {\n\t\t\t\t\tinspectedBeforeDungeon = true;\n\t\t\t\t}\n\t\t\t\tif (event.event === \"search for clues\") {\n\t\t\t\t\tsearchedBeforeDungeon = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Second pass: modify events based on patterns\n\t\t\tuserEvents.forEach((event, idx) => {\n\t\t\t\tconst eventTime = dayjs(event.time);\n\n\t\t\t\t// Set schema defaults for conditional properties\n\t\t\t\tif (event.event === \"quest turned in\") {\n\t\t\t\t\tevent.compass_user = false;\n\t\t\t\t\tevent.subscriber_advantage = \"Free\";\n\t\t\t\t}\n\t\t\t\tif (event.event === \"exit dungeon\") {\n\t\t\t\t\tevent.strategic_explorer = false;\n\t\t\t\t\tevent.legendary_weapon_equipped = false;\n\t\t\t\t\tevent.subscriber_advantage = \"Free\";\n\t\t\t\t}\n\t\t\t\tif (event.event === \"find treasure\") {\n\t\t\t\t\tevent.strategic_explorer = false;\n\t\t\t\t\tevent.subscriber_advantage = \"Free\";\n\t\t\t\t}\n\t\t\t\tif (event.event === \"combat completed\") {\n\t\t\t\t\tevent.legendary_weapon_equipped = false;\n\t\t\t\t\tevent.subscriber_advantage = \"Free\";\n\t\t\t\t\tevent.near_death_survival = false;\n\t\t\t\t}\n\t\t\t\tif (event.event === \"player death\") {\n\t\t\t\t\tevent.near_death_survival = false;\n\t\t\t\t\tevent.subscriber_advantage = \"Free\";\n\t\t\t\t}\n\n\t\t\t\t// Hook #1: CONVERSION - Ancient Compass users complete more quests\n\t\t\t\tif (usedAncientCompass && event.event === \"quest turned in\") {\n\t\t\t\t\t// Triple the rewards for compass users (they're more successful)\n\t\t\t\t\tevent.reward_gold = Math.floor((event.reward_gold || 100) * 1.5);\n\t\t\t\t\tevent.reward_xp = Math.floor((event.reward_xp || 500) * 1.5);\n\t\t\t\t\tevent.compass_user = true;\n\n\t\t\t\t\t// Add extra quest completions for compass users\n\t\t\t\t\tif (chance.bool({ likelihood: 40 })) {\n\t\t\t\t\t\tconst extraQuest = {\n\t\t\t\t\t\t\tevent: \"quest turned in\",\n\t\t\t\t\t\t\ttime: eventTime.add(chance.integer({ min: 10, max: 120 }), 'minutes').toISOString(),\n\t\t\t\t\t\t\tuser_id: event.user_id,\n\t\t\t\t\t\t\tquest_id: chance.pickone(questIds),\n\t\t\t\t\t\t\treward_gold: chance.integer({ min: 100, max: 500 }),\n\t\t\t\t\t\t\treward_xp: chance.integer({ min: 500, max: 2000 }),\n\t\t\t\t\t\t\tcompass_user: true,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tuserEvents.splice(idx + 1, 0, extraQuest);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Hook #5: PURCHASE VALUE - Lucky charm buyers spend 5x more\n\t\t\t\tif (boughtLuckyCharm) {\n\t\t\t\t\tif (event.event === \"real money purchase\") {\n\t\t\t\t\t\t// Increase purchase amounts\n\t\t\t\t\t\tif (event.price_usd) {\n\t\t\t\t\t\t\tconst currentPrice = event.price_usd;\n\t\t\t\t\t\t\tif (currentPrice < 49.99) {\n\t\t\t\t\t\t\t\tevent.price_usd = currentPrice * 2; // Upgrade tier\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tevent.lucky_charm_effect = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add additional purchase events (higher LTV)\n\t\t\t\t\tif (event.event === \"item purchased\" && chance.bool({ likelihood: 35 })) {\n\t\t\t\t\t\tconst extraPurchase = {\n\t\t\t\t\t\t\tevent: \"real money purchase\",\n\t\t\t\t\t\t\ttime: eventTime.add(chance.integer({ min: 1, max: 3 }), 'days').toISOString(),\n\t\t\t\t\t\t\tuser_id: event.user_id,\n\t\t\t\t\t\t\tproduct: chance.pickone([\n\t\t\t\t\t\t\t\t\"Premium Currency (5000)\",\n\t\t\t\t\t\t\t\t\"Legendary Weapon Chest\",\n\t\t\t\t\t\t\t\t\"Season Pass\"\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tprice_usd: chance.pickone([19.99, 49.99, 99.99]),\n\t\t\t\t\t\t\tpayment_method: chance.pickone([\"Credit Card\", \"PayPal\"]),\n\t\t\t\t\t\t\tlucky_charm_effect: true,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tuserEvents.splice(idx + 1, 0, extraPurchase);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Hook #6: BEHAVIORS TOGETHER - Inspect + Search before dungeon\n\t\t\t\tif (inspectedBeforeDungeon && searchedBeforeDungeon) {\n\t\t\t\t\tif (event.event === \"exit dungeon\") {\n\t\t\t\t\t\t// Much higher completion rate\n\t\t\t\t\t\tif (event.completion_status !== \"completed\") {\n\t\t\t\t\t\t\t// Convert 85% of non-completions to completions\n\t\t\t\t\t\t\tif (chance.bool({ likelihood: 85 })) {\n\t\t\t\t\t\t\t\tevent.completion_status = \"completed\";\n\t\t\t\t\t\t\t\tevent.strategic_explorer = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Find more treasure\n\t\t\t\t\tif (event.event === \"find treasure\") {\n\t\t\t\t\t\tevent.treasure_value = Math.floor((event.treasure_value || 50) * 2);\n\t\t\t\t\t\tevent.strategic_explorer = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Hook #7: TIMED RELEASE - Legendary weapon owners dominate\n\t\t\t\tif (hasLegendaryWeapon) {\n\t\t\t\t\t// Higher combat success\n\t\t\t\t\tif (event.event === \"combat completed\") {\n\t\t\t\t\t\tif (event.outcome !== \"Victory\") {\n\t\t\t\t\t\t\t// Convert 90% of losses to victories\n\t\t\t\t\t\t\tif (chance.bool({ likelihood: 90 })) {\n\t\t\t\t\t\t\t\tevent.outcome = \"Victory\";\n\t\t\t\t\t\t\t\tevent.legendary_weapon_equipped = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Complete dungeons faster and more successfully\n\t\t\t\t\tif (event.event === \"exit dungeon\") {\n\t\t\t\t\t\tevent.completion_status = \"completed\";\n\t\t\t\t\t\tevent.time_spent_mins = Math.floor((event.time_spent_mins || 60) * 0.6);\n\t\t\t\t\t\tevent.legendary_weapon_equipped = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Hook #8: SUBSCRIPTION TIER - Premium/Elite users have better outcomes\n\t\t\t\tif (subscriptionTier === \"Premium\" || subscriptionTier === \"Elite\") {\n\t\t\t\t\tconst isElite = subscriptionTier === \"Elite\";\n\n\t\t\t\t\t// Better combat outcomes\n\t\t\t\t\tif (event.event === \"combat completed\") {\n\t\t\t\t\t\tif (event.outcome !== \"Victory\") {\n\t\t\t\t\t\t\tconst winBoost = isElite ? 70 : 50; // Elite: 70%, Premium: 50%\n\t\t\t\t\t\t\tif (Math.random() * 100 < winBoost) {\n\t\t\t\t\t\t\t\tevent.outcome = \"Victory\";\n\t\t\t\t\t\t\t\tevent.loot_gained = true;\n\t\t\t\t\t\t\t\tevent.subscriber_advantage = subscriptionTier;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Higher quest completion and rewards\n\t\t\t\t\tif (event.event === \"quest turned in\") {\n\t\t\t\t\t\tconst rewardMultiplier = isElite ? 1.8 : 1.4; // Elite: 1.8x, Premium: 1.4x\n\t\t\t\t\t\tevent.reward_gold = Math.floor((event.reward_gold || 100) * rewardMultiplier);\n\t\t\t\t\t\tevent.reward_xp = Math.floor((event.reward_xp || 500) * rewardMultiplier);\n\t\t\t\t\t\tevent.subscriber_advantage = subscriptionTier;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Higher dungeon completion rates\n\t\t\t\t\tif (event.event === \"exit dungeon\") {\n\t\t\t\t\t\tif (event.completion_status !== \"completed\") {\n\t\t\t\t\t\t\tconst completionBoost = isElite ? 65 : 45; // Elite: 65%, Premium: 45%\n\t\t\t\t\t\t\tif (Math.random() * 100 < completionBoost) {\n\t\t\t\t\t\t\t\tevent.completion_status = \"completed\";\n\t\t\t\t\t\t\t\tevent.subscriber_advantage = subscriptionTier;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Faster completion times\n\t\t\t\t\t\tif (event.completion_status === \"completed\") {\n\t\t\t\t\t\t\tconst speedBoost = isElite ? 0.7 : 0.85; // Elite: 30% faster, Premium: 15% faster\n\t\t\t\t\t\t\tevent.time_spent_mins = Math.floor((event.time_spent_mins || 60) * speedBoost);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Better treasure finds\n\t\t\t\t\tif (event.event === \"find treasure\") {\n\t\t\t\t\t\tconst treasureBoost = isElite ? 2.0 : 1.5; // Elite: 2x, Premium: 1.5x\n\t\t\t\t\t\tevent.treasure_value = Math.floor((event.treasure_value || 50) * treasureBoost);\n\t\t\t\t\t\tevent.subscriber_advantage = subscriptionTier;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Reduced death rates (subscribers have advantages)\n\t\t\t\t\tif (event.event === \"player death\") {\n\t\t\t\t\t\tconst survivalChance = isElite ? 50 : 30; // Elite: 50% avoid death, Premium: 30%\n\t\t\t\t\t\tif (Math.random() * 100 < survivalChance) {\n\t\t\t\t\t\t\t// Convert death to combat completed with victory\n\t\t\t\t\t\t\tevent.event = \"combat completed\";\n\t\t\t\t\t\t\tevent.outcome = \"Victory\";\n\t\t\t\t\t\t\tevent.loot_gained = true;\n\t\t\t\t\t\t\tevent.subscriber_advantage = subscriptionTier;\n\t\t\t\t\t\t\tevent.near_death_survival = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Elite users get bonus engagement events\n\t\t\t\t\tif (isElite && Math.random() * 100 < 15) {\n\t\t\t\t\t\tif (event.event === \"quest turned in\" || event.event === \"exit dungeon\") {\n\t\t\t\t\t\t\tconst treasureTypes = [\"Rare Artifact\", \"Gold\", \"Weapon\", \"Armor\"];\n\t\t\t\t\t\t\tconst bonusEvent = {\n\t\t\t\t\t\t\t\tevent: \"find treasure\",\n\t\t\t\t\t\t\t\ttime: eventTime.add(Math.floor(Math.random() * 26) + 5, 'minutes').toISOString(),\n\t\t\t\t\t\t\t\tuser_id: event.user_id,\n\t\t\t\t\t\t\t\ttreasure_type: treasureTypes[Math.floor(Math.random() * treasureTypes.length)],\n\t\t\t\t\t\t\t\ttreasure_value: Math.floor(Math.random() * 601) + 200,\n\t\t\t\t\t\t\t\tsubscriber_advantage: \"Elite\",\n\t\t\t\t\t\t\t\telite_bonus: true,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tuserEvents.splice(idx + 1, 0, bonusEvent);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Hook #3: RETENTION - Early guild joiners retained\n\t\t\t// Hook #4: CHURN - High early death = churn\n\t\t\tconst shouldChurn = (!joinedGuildEarly && earlyDeaths >= 3) ||\n\t\t\t (earlyDeaths >= 5);\n\n\t\t\tif (shouldChurn) {\n\t\t\t\t// Remove 70% of events after first week (churn)\n\t\t\t\tconst firstWeekEnd = firstEventTime ? firstEventTime.add(7, 'days') : null;\n\t\t\t\tfor (let i = userEvents.length - 1; i >= 0; i--) {\n\t\t\t\t\tconst evt = userEvents[i];\n\t\t\t\t\tif (firstWeekEnd && dayjs(evt.time).isAfter(firstWeekEnd)) {\n\t\t\t\t\t\tif (chance.bool({ likelihood: 70 })) {\n\t\t\t\t\t\t\tuserEvents.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (joinedGuildEarly) {\n\t\t\t\t// Add extra engagement events for retained users\n\t\t\t\tconst lastEvent = userEvents[userEvents.length - 1];\n\t\t\t\tif (lastEvent && chance.bool({ likelihood: 60 })) {\n\t\t\t\t\tconst retentionEvent = {\n\t\t\t\t\t\tevent: \"combat completed\",\n\t\t\t\t\t\ttime: dayjs(lastEvent.time).add(chance.integer({ min: 1, max: 5 }), 'days').toISOString(),\n\t\t\t\t\t\tuser_id: lastEvent.user_id,\n\t\t\t\t\t\toutcome: \"Victory\",\n\t\t\t\t\t\tloot_gained: true,\n\t\t\t\t\t\tguild_member_retained: true,\n\t\t\t\t\t};\n\t\t\t\t\tuserEvents.push(retentionEvent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn record;\n\t}",
4524
+ "timestamp": "2026-04-10T01:39:07.396Z",
4525
+ "version": "4.0"
4526
+ }