@ak--47/dungeon-master 1.0.0 → 1.2.0

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 (104) hide show
  1. package/README.md +7 -7
  2. package/dungeons/technical/ad-spend-schema.json +128 -0
  3. package/dungeons/technical/ad-spend.js +116 -0
  4. package/dungeons/technical/anonymous-users-schema.json +92 -0
  5. package/dungeons/technical/anonymous-users.js +102 -0
  6. package/dungeons/technical/array-of-object-lookup-schema.json +191 -0
  7. package/dungeons/{array-of-object-lookup.js → technical/array-of-object-lookup.js} +12 -5
  8. package/dungeons/technical/experiments-schema.json +203 -0
  9. package/dungeons/technical/experiments.js +168 -0
  10. package/dungeons/technical/foobar-schema.json +362 -0
  11. package/dungeons/{foobar.js → technical/foobar.js} +3 -3
  12. package/dungeons/technical/group-analytics-schema.json +241 -0
  13. package/dungeons/technical/group-analytics.js +151 -0
  14. package/dungeons/technical/mirror-strategies-schema.json +84 -0
  15. package/dungeons/technical/mirror-strategies.js +126 -0
  16. package/dungeons/technical/nested-objects-schema.json +145 -0
  17. package/dungeons/technical/nested-objects.js +207 -0
  18. package/dungeons/technical/retention-cadence-schema.json +37 -0
  19. package/dungeons/{retention-cadence.js → technical/retention-cadence.js} +2 -3
  20. package/dungeons/technical/sanity-schema.json +185 -0
  21. package/dungeons/{sanity.js → technical/sanity.js} +4 -2
  22. package/dungeons/technical/scale-test-schema.json +70 -0
  23. package/dungeons/technical/scale-test.js +90 -0
  24. package/dungeons/technical/scd-schema.json +467 -0
  25. package/dungeons/{scd.js → technical/scd.js} +20 -10
  26. package/dungeons/technical/simple-schema.json +362 -0
  27. package/dungeons/{simple.js → technical/simple.js} +7 -7
  28. package/dungeons/technical/simplest-schema.json +724 -0
  29. package/dungeons/{simplest.js → technical/simplest.js} +7 -7
  30. package/dungeons/technical/text-generation-schema.json +1062 -0
  31. package/dungeons/{text-generation.js → technical/text-generation.js} +24 -11
  32. package/dungeons/vertical/community-schema.json +579 -0
  33. package/dungeons/vertical/community.js +794 -0
  34. package/dungeons/vertical/devtools-schema.json +601 -0
  35. package/dungeons/vertical/devtools.js +843 -0
  36. package/dungeons/vertical/ecommerce-schema.json +604 -0
  37. package/dungeons/{ecommerce.js → vertical/ecommerce.js} +43 -5
  38. package/dungeons/vertical/education-schema.json +5686 -0
  39. package/dungeons/{education.js → vertical/education.js} +70 -39
  40. package/dungeons/vertical/fintech-schema.json +630 -0
  41. package/dungeons/{fintech.js → vertical/fintech.js} +107 -56
  42. package/dungeons/vertical/fitness-schema.json +530 -0
  43. package/dungeons/vertical/fitness.js +808 -0
  44. package/dungeons/vertical/food-delivery-schema.json +36728 -0
  45. package/dungeons/{food.js → vertical/food-delivery.js} +67 -26
  46. package/dungeons/vertical/gaming-schema.json +438 -0
  47. package/dungeons/{gaming.js → vertical/gaming.js} +29 -16
  48. package/dungeons/vertical/healthcare-schema.json +549 -0
  49. package/dungeons/vertical/healthcare.js +775 -0
  50. package/dungeons/vertical/insurance-application-schema.json +485 -0
  51. package/dungeons/{insurance-application.js → vertical/insurance-application.js} +41 -31
  52. package/dungeons/vertical/logistics-schema.json +574 -0
  53. package/dungeons/vertical/logistics.js +799 -0
  54. package/dungeons/vertical/marketplace-schema.json +533 -0
  55. package/dungeons/vertical/marketplace.js +850 -0
  56. package/dungeons/vertical/media-schema.json +4749 -0
  57. package/dungeons/{media.js → vertical/media.js} +103 -19
  58. package/dungeons/vertical/rpg-schema.json +2491 -0
  59. package/dungeons/{rpg.js → vertical/rpg.js} +87 -60
  60. package/dungeons/vertical/sass-schema.json +3128 -0
  61. package/dungeons/{sass.js → vertical/sass.js} +65 -26
  62. package/dungeons/vertical/social-schema.json +620 -0
  63. package/dungeons/{social.js → vertical/social.js} +76 -17
  64. package/dungeons/vertical/travel-schema.json +580 -0
  65. package/dungeons/vertical/travel.js +742 -0
  66. package/index.js +20 -16
  67. package/lib/core/config-validator.js +286 -1
  68. package/lib/core/context.js +16 -5
  69. package/lib/core/storage.js +2 -0
  70. package/lib/generators/adspend.js +3 -3
  71. package/lib/generators/events.js +141 -14
  72. package/lib/generators/funnels.js +67 -7
  73. package/lib/generators/text.js +2 -2
  74. package/lib/orchestrators/user-loop.js +444 -22
  75. package/lib/templates/soup-presets.js +2 -2
  76. package/lib/utils/utils.js +4 -5
  77. package/package.json +4 -3
  78. package/scripts/dungeon-to-json.mjs +163 -0
  79. package/scripts/extract-dungeon-schema.mjs +343 -0
  80. package/scripts/json-to-dungeon.mjs +200 -0
  81. package/scripts/run-dungeon.mjs +76 -0
  82. package/scripts/run-many.mjs +118 -0
  83. package/scripts/verify-runner.mjs +42 -0
  84. package/types.d.ts +316 -1
  85. package/dungeons/array-of-object-lookup-schema.json +0 -327
  86. package/dungeons/ecommerce-schema.json +0 -462
  87. package/dungeons/education-schema.json +0 -2409
  88. package/dungeons/fintech-schema.json +0 -14034
  89. package/dungeons/foobar-schema.json +0 -403
  90. package/dungeons/food-delivery-schema.json +0 -192
  91. package/dungeons/food-delivery.js +0 -602
  92. package/dungeons/food-schema.json +0 -1152
  93. package/dungeons/gaming-schema.json +0 -1270
  94. package/dungeons/insurance-application-schema.json +0 -204
  95. package/dungeons/media-schema.json +0 -906
  96. package/dungeons/retention-cadence-schema.json +0 -78
  97. package/dungeons/rpg-schema.json +0 -4526
  98. package/dungeons/sanity-schema.json +0 -255
  99. package/dungeons/sass-schema.json +0 -1291
  100. package/dungeons/scd-schema.json +0 -919
  101. package/dungeons/simple-schema.json +0 -608
  102. package/dungeons/simplest-schema.json +0 -1418
  103. package/dungeons/social-schema.json +0 -1118
  104. package/dungeons/text-generation-schema.json +0 -3096
@@ -1,4526 +0,0 @@
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
- }