// ==UserScript==
// @name Show Friendship XP
// @namespace RandomDudeFriendshipXP
// @version 2.1.3
// @description Shows the friendship XP you have for each Townsfolk
// @author ClientCoin
// @match *farmrpg.com/index.php
// @match *farmrpg.com/
// @match *alpha.farmrpg.com/
// @match *alpha.farmrpg.com/index.php
// @icon https://www.google.com/s2/favicons?sz=64&domain=farmrpg.com
// @grant none
// ==/UserScript==
// Update 2025-04-21 added in top bar and loved items
const nextLevelXP = {
1: 1250, 2: 2500, 3: 3500, 4: 4500, 5: 6000, 6: 7500, 7: 9000, 8: 11000, 9: 13000, 10: 13149,
11: 27584, 12: 16376, 13: 18275, 14: 20394, 15: 22759, 16: 25399, 17: 28345, 18: 31633, 19: 35302, 20: 39397,
21: 43967, 22: 49067, 23: 54758, 24: 61109, 25: 68197, 26: 76107, 27: 84935, 28: 94787, 29: 105782, 30: 118052,
31: 131746, 32: 147028, 33: 164083, 34: 164083, 35: 183116, 36: 204357, 37: 228062, 38: 254517, 39: 284040, 40: 316988,
41: 353758, 42: 394793, 43: 440588, 44: 491696, 45: 548732, 46: 612384, 47: 683420, 48: 762696, 49: 851168, 50: 949903,
51: 1060091, 52: 1183061, 53: 1320296, 54: 1473450, 55: 1644370, 56: 1835116, 57: 2047989, 58: 2285555, 59: 2550679, 60: 2846557,
61: 3176757, 62: 3545260, 63: 3956510, 64: 4415465, 65: 4927658, 66: 6137180, 67: 6849092, 68: 7643586, 69: 8530241, 70: 9519748,
71: 10624038, 72: 11856426, 73: 13231771, 74: 14766656, 75: 16479588, 76: 18391220, 77: 20524601, 78: 22905454, 79: 25562486, 80: 28527734,
81: 31836951, 82: 35530037, 83: 39651521, 84: 44251097, 85: 49384224, 86: 55112793, 87: 61505876, 88: 68640557, 89: 76602861, 90: 85488792,
91: 97405491, 92: 104472527, 93: 118823340, 94: 132606847, 95: 147989241, 96: 165155992, 97: 184314087, 98: 232148349, 99: 0,
}
const totalLevelXP = {
1: 0, 2: 1250, 3: 3750, 4: 7250, 5: 11750, 6: 17750, 7: 25250, 8: 34250, 9: 45250, 10: 58250,
11: 71399, 12: 98983, 13: 115359, 14: 133634, 15: 154028, 16: 176787, 17: 202186, 18: 230531, 19: 262164, 20: 297466,
21: 336863, 22: 380830, 23: 429897, 24: 484655, 25: 545764, 26: 613961, 27: 690068, 28: 775003, 29: 869790, 30: 975572,
31: 1093624, 32: 1225370, 33: 1372398, 34: 1536481, 35: 1700564, 36: 1883680, 37: 2088037, 38: 2316099, 39: 2570616, 40: 2854656,
41: 3171644, 42: 3525402, 43: 3920195, 44: 4360783, 45: 4852479, 46: 5401211, 47: 6013595, 48: 6697015, 49: 7459711, 50: 8310879,
51: 9260782, 52: 10320873, 53: 11503934, 54: 12824230, 55: 14297680, 56: 15942050, 57: 17777166, 58: 19825155, 59: 22110710, 60: 24661389,
61: 27507946, 62: 30684703, 63: 34229963, 64: 38186473, 65: 42601938, 66: 47529596, 67: 53666776, 68: 60515868, 69: 68159454, 70: 76689695,
71: 86209443, 72: 96833481, 73: 108689907, 74: 121921678, 75: 136688334, 76: 153167922, 77: 171559142, 78: 192083743, 79: 214989197, 80: 240551683,
81: 269079417, 82: 300916368, 83: 336446405, 84: 376097926, 85: 420349023, 86: 469733247, 87: 524846040, 88: 586351916, 89: 654992473, 90: 731595334,
91: 817084126, 92: 914489617, 93: 1018962144, 94: 1137785484, 95: 1270392331, 96: 1418381572, 97: 1583537564, 98: 1767851651, 99: 2000000000,
}
const imgData = {
11: "8301.png",
12: "seeds_peppers.png",
13: "eggplant.png",
14: "seeds_eggplants.png",
15: "8290.png",
16: "seeds_tomato.png",
17: "7718.PNG",
18: "7758.png",
19: "8391.PNG",
20: "seeds_carrots.png",
21: "5885.png",
22: "5779.PNG",
23: "8263.PNG",
24: "yellowperch.png",
25: "7736.PNG",
26: "5720.PNG",
27: "8259.PNG",
28: "seeds_peas.png",
29: "5805.png",
30: "seeds_cucumber.png",
31: "radish.png?1",
32: "seeds_radish.png",
33: "8317.png",
34: "seeds_onions.png",
35: "6143.PNG",
36: "5733.PNG",
37: "5736.PNG",
38: "5860.png",
39: "7735.PNG",
40: "6174.PNG",
41: "6146.PNG",
42: "feathers.png",
43: "mushroom.png",
44: "8297.png",
45: "7747.PNG",
46: "8248.PNG",
47: "seeds_hops.png",
48: "potato.png",
49: "seeds_potato.png",
50: "8291.png",
51: "seeds_leek.png",
52: "fern.png",
53: "flower.png",
54: "amethyst.png",
55: "5812.PNG",
56: "7828.PNG",
57: "7825.PNG",
58: "7826.PNG",
59: "8293.png",
60: "seeds_watermelon.png",
61: "orange.png",
62: "8251.PNG",
63: "trout.png",
64: "seeds_corn.png",
65: "8288.png",
66: "seeds_cabbage.png",
67: "8319-3.png?1",
68: "seeds_pumpkin.png",
69: "8294.png",
70: "seeds_wheet.png",
71: "8249.png",
72: "5829.PNG",
73: "5755.PNG",
74: "greenparchment.png",
75: "5691.png",
76: "5782.PNG",
77: "5711.PNG",
78: "5708.PNG",
79: "5865.png",
80: "5798.png",
81: "whiteparchment.png",
82: "greenbook.png",
83: "purplebook.png",
84: "orangejuice.png",
85: "8382.PNG",
86: "lemonade.png",
87: "7741.PNG",
88: "7802.png",
89: "7842.PNG",
90: "7875.PNG",
91: "5759.PNG",
92: "5685.png",
93: "5992.png",
94: "6071.PNG",
95: "ironring.png",
96: "rubyring.png",
97: "7820.png",
98: "7821.png",
99: "7832.PNG",
100: "7876.PNG",
101: "7904.png",
102: "5707.PNG",
103: "coal.png",
104: "powder.png",
105: "6123.png",
106: "6124.png",
107: "redcatfish.png",
108: "5910.png",
109: "5986.PNG",
110: "5987.PNG",
111: "6067.PNG",
112: "grapejuice.png",
113: "6033.PNG",
114: "7816.png",
115: "pufferfix.png",
116: "7848.PNG",
117: "7727.PNG?1",
118: "5754.PNG",
119: "7808.png",
120: "8272.PNG",
121: "wine.png",
122: "5945.PNG",
123: "6019.PNG",
124: "lemonring.png",
125: "aquaring.png",
126: "8016.png",
127: "5822.PNG",
128: "5908.png",
129: "5717.PNG",
130: "ironcup.png",
131: "7722.PNG",
132: "7737.PNG",
133: "7818.png",
134: "7831.PNG",
135: "7756.png",
136: "7785.png",
137: "steak.png",
138: "7787.png",
139: "7790.png",
140: "7726.PNG",
141: "7844.PNG",
142: "uemerald.png",
143: "emerald.png",
144: "carbonsphere.png",
145: "6150.png",
146: "greenring.png",
147: "rs1.png",
148: "rs2.png",
149: "rs3.png",
150: "rs4.png",
151: "rs5.png",
152: "rs6.png",
153: "rs7.png",
154: "rs8.png",
155: "rs9.png",
156: "rs10.png",
157: "8301g.png?1",
158: "seeds_gpeppers.png",
159: "8391g.png",
160: "seeds_gcarrots.png",
161: "8259g.png",
162: "seeds_gpeas.png",
163: "6172-1.png",
164: "6111.PNG",
165: "5969.PNG",
166: "6175.PNG",
167: "5847.png",
168: "7852.png",
169: "6017.png",
170: "5922.png",
171: "5963.png",
172: "5996.png",
173: "7843.png",
174: "7838.png?1",
175: "7999.png",
176: "7963.png",
177: "8014.png",
178: "8166.png",
179: "8072.png",
180: "7922.png",
181: "5835.png",
182: "7587.png",
183: "6979.png",
184: "7583.png",
185: "tea.png",
186: "8279.png",
187: "8250.PNG",
188: "fourleaf.png",
189: "5805g.png?1",
190: "seeds_gcucumber.png",
191: "7745.png",
192: "7749.png",
193: "5624.png",
194: "7748.png",
195: "8038.png",
196: "pearlnecklace.png",
197: "8898.png",
198: "5768.png",
199: "5766.png",
200: "5772.png",
201: "5771.png",
202: "5197.png",
203: "greendye.png",
204: "greenshield.png",
205: "8814.png?1",
206: "8819.png",
207: "8802.png",
208: "7574.png",
209: "7792.png",
210: "7578.png",
211: "mcs.png",
212: "4848.png",
213: "4887.png",
214: "4880.png",
215: "7211.png",
216: "7210.png",
217: "6956.png",
219: "4925.png",
220: "5249.png",
221: "rs11.png?1",
222: "rs12.png",
223: "rs13.png",
224: "rs14.png?1",
225: "rs15.png",
226: "rs16.png?1",
227: "rs17.png",
228: "rs18.png?1",
229: "rs19.png?1",
230: "rs20.png",
231: "5147-2.png",
232: "5162-2.png",
233: "5182-2.png",
234: "5230-2.png",
235: "onering.png",
236: "hammer.png?2",
237: "5875.png?1",
238: "5853.png?1",
239: "5563.png",
240: "4798.png",
241: "sharktooth.png",
242: "bacon.png",
243: "5392.png",
244: "6675.png",
245: "4920.png",
246: "4924.png",
247: "4868.png",
248: "8055.png",
249: "shimmertopazring.png",
250: "jarofhoney.png",
251: "5633.png",
252: "4917.png",
253: "poh.png",
254: "8311.png",
255: "seeds_cotton.png",
256: "8757.png",
257: "seeds_broccoli.png",
258: "4903.png",
259: "5592.png",
260: "5629.png",
261: "7212.png",
262: "geggplant.png?1",
263: "ujade.png",
264: "jade.png",
265: "jadecharm.png",
266: "7286.png",
267: "fishing_70_t.png",
268: "fishing_112_t.png",
269: "fishing_74_t.png",
270: "fishing_102_t.png",
271: "fishing_118_t.png",
272: "4910.png?1",
273: "5255.png?1",
274: "7475.png?1",
275: "8299.png",
276: "5763.png",
277: "gworm.png",
279: "limabean.png?1",
280: "teapot.png",
281: "8774.png",
282: "beetle.png",
283: "hbeetle.png",
284: "snail.png",
285: "caterpillar.png",
286: "fireant.png",
287: "giantcent.png",
288: "carvedowl.png",
289: "pinecone2.png",
290: "carvedrhino.png",
291: "carvedcamel.png",
292: "carvedrabbit.png",
293: "carvedsquirrel.png",
294: "carvedbear.png",
295: "carvedmoose.png",
296: "carvedwh.png",
297: "7422.png",
298: "buddystone.png",
299: "sword2.png",
300: "8927.png?1",
301: "7275.png?1",
302: "5655.png",
303: "6695.png",
304: "saltrock.png",
305: "salt.png",
306: "4899.png",
307: "7486.png",
308: "7477.png",
309: "7754.png",
310: "7878.png",
311: "7817.png",
312: "coral.png",
313: "ForestIcons_19_t.png",
314: "ForestIcons_34_t.png",
315: "4919.png",
316: "garnetring.png",
317: "8008.png",
318: "8030.png",
319: "ForestIcons_46_t.png",
320: "6005.png",
321: "ForestIcons_15_t.png",
322: "ForestIcons_11_t.png",
323: "raptor.png",
324: "3972.png",
325: "5273.png?1",
326: "scissors.png",
327: "5557.png?4",
328: "wheel.png",
329: "giftbasket.png",
330: "4497.png",
331: "basickey.png",
332: "4493.png",
333: "4493.png",
334: "4497.png",
335: "7179.png",
336: "8574.png",
337: "8574.png",
338: "magnaquartz.png",
339: "9380.png",
340: "9376.png",
341: "9387.png",
342: "9388.png",
343: "7405.png",
344: "7447.png",
345: "5167.png",
346: "8572.png",
347: "7148.png",
348: "4238.png",
349: "5686.png",
350: "ForestIcons_54_t.png",
351: "4601.png",
352: "seeds_geggplants.png",
353: "parts_026.png",
354: "candle.png",
355: "pumpkin_t_05.png",
356: "jaw_t_01.png?1",
357: "hat_t_02.png",
358: "candy_t_09.png",
359: "candy_t_08.png",
360: "bag_t_03.png",
361: "candycorn.png",
362: "spiderbutcutererr.png",
363: "8572.png",
364: "bag_t_03.png",
365: "5466.png",
366: "skelkey.png",
367: "hockeymask.png",
368: "lantern.png?1",
369: "rat_t_01.png",
370: "candy_t_11.png",
371: "egyptian1.png",
372: "bag_t_03.png",
373: "sunflower.png",
374: "seeds_sunflower.png",
375: "popcorn.png",
376: "4514.png",
377: "cornucopia.png",
378: "3258.png",
379: "8984.png",
380: "ducky.png",
381: "9078.png",
382: "3315.png",
383: "4080.png",
384: "fishing_64_t.png",
385: "7611.png",
386: "trident.png",
387: "am_t_01.png",
388: "4241.png",
389: "3493.png",
390: "fishing_75_t.png",
391: "5742.png",
392: "wire.png",
393: "3857.png?1",
394: "raptoregg.png",
395: "seeds_mushroom.png",
396: "4497.png",
397: "4497.png",
398: "4497.png",
399: "7468.png",
400: "ale.png",
401: "cr_t_05.png",
402: "cr_t_03_d.png",
403: "cr_t_03_c.png",
404: "cr_t_03.png",
405: "cr_t_03_e.png",
406: "cr_t_03_f.png",
407: "cr_t_03_b.png",
408: "cr_t_06_b.png?1",
409: "cr_t_06.png",
410: "seeds_pine.png",
411: "cr_t_08.png",
412: "cr_t_07.png",
413: "cr_t_04.png",
414: "scarf.png",
415: "4_sm.png",
416: "29_sm.png",
417: "28_sm.png",
418: "25_sm.png",
419: "18_sm.png",
420: "17_sm.png",
421: "15_sm.png",
422: "12_sm.png",
423: "10_sm.png",
424: "9_sm.png",
425: "5_sm.png",
426: "14_sm.png",
427: "pt_t_07.png",
428: "21_sm.png",
429: "7468.png",
430: "7468.png",
431: "7468.png",
432: "7468.png",
433: "7468.png",
434: "7468.png",
435: "7468.png",
436: "7468.png",
437: "7468.png",
438: "7468.png",
439: "7468.png",
440: "dasher.png",
441: "dancer.png",
442: "prancer.png",
443: "vixen.png",
444: "comet.png",
445: "cupid.png",
446: "donner.png",
447: "blitzen.png",
448: "rudolph.png",
449: "seeds_beet.png",
450: "2850.png",
451: "11_sm.png",
452: "petard.png",
453: "4497.png",
454: "goldpouch2.png",
455: "4764.png",
456: "4765.png",
457: "goldtrout.png?1",
458: "goldcatfish.png",
459: "goldcoral.png",
460: "golddrum.png",
461: "goldfin.png",
462: "goldflier.png",
463: "goldgill.png",
464: "goldray.png",
465: "goldseabass.png",
466: "goldjack.png?1",
467: "gboot.png?1",
468: "4289.png",
469: "7140.png",
470: "hourglass.png",
471: "bell.png",
472: "starmap1.png",
473: "spikey.png",
474: "drum.png",
475: "crabclaw.png",
476: "mappingcompass.png",
477: "wishbone.png",
478: "seadragon.png",
479: "frog.png",
481: "chumbucket.png",
482: "4456.png",
483: "l_06_t.png?1",
484: "l_02_t_b.PNG",
485: "l_02_t_c.PNG",
486: "l_02_t_a.PNG",
487: "l_03_t.PNG",
488: "card_valentines.png",
489: "l_05_t.PNG",
490: "giftbasket.png",
491: "4497.png",
492: "essense.png",
493: "7896.png",
494: "springbasket.png",
495: "5794.png",
496: "smush.png",
497: "2749.png",
498: "mw.png",
499: "5600.png",
500: "lnet.png?3",
501: "potogold.png",
502: "pog2.png",
503: "pog3.png",
504: "goldclover.png",
505: "7264.png?1",
506: "greenhat.png",
507: "goldhs.png",
508: "ap.png",
509: "goldpouch1.png",
510: "25gold.png",
511: "10gold.png",
512: "5gold.png",
513: "pt_t_18.png",
514: "2392.png",
515: "8455.png",
516: "2606.png",
517: "2099.png",
518: "egg06.png",
519: "fbasket.png",
520: "ears.png",
521: "egg01.png",
522: "egg02.png",
523: "egg03.png",
524: "egg04.png",
525: "egg05.png",
526: "egg07.png",
527: "egg08.png",
528: "egg09.png",
529: "egg10.png",
530: "egg11.png",
531: "egg12.png",
532: "ForestIcons_32_t.png",
533: "egg_gold.png",
534: "present02.png",
535: "bluedye.png",
536: "reddye.png",
537: "purpledye.png",
538: "redshield.png",
539: "purplebag.png",
540: "bluepurse.png",
541: "chocobunny.png",
542: "3911.png",
543: "3179.png",
544: "3788.png",
545: "4255.png",
546: "bluemilk.png?2",
547: "present03.png",
548: "juices.png",
549: "taco.png",
550: "pinata.png",
551: "sombrero.png",
552: "bookoffish.png",
553: "5658.png",
565: "hotpotato.png",
566: "onionrings.png",
567: "cornkabob.png",
568: "bluedrink.png",
569: "pirates_76_t.png",
570: "pirates_77_t.png",
571: "pirates_38_t.png",
572: "4456.png",
573: "8572.png",
574: "3296.PNG",
575: "3284.png",
576: "3276.png",
577: "3279.png",
578: "3281.png",
579: "3282.png",
580: "goldjelly.png",
581: "pirates_47_t.png",
582: "pirates_17_t.png",
583: "4497.png",
584: "7847.png",
585: "8976.png",
586: "peach.png",
587: "peachjuice.png",
588: "seeds_mbeet.png",
589: "seeds_msunflower.png",
590: "pulley.png",
591: "9327.PNG",
592: "9313.png",
593: "9389.PNG",
594: "9310.png",
595: "9374.PNG",
596: "pricklypear.png",
597: "9319.png",
598: "9331.PNG",
599: "4514b.png",
600: "9398.PNG",
601: "9383.PNG",
602: "bagofcorn.png",
603: "basket.png",
604: "sanddollar.png?1",
605: "card_clubs.png",
606: "card_diamonds.png",
607: "card_hearts.png",
608: "card_spades.png",
609: "ForestIcons_32_t.png",
610: "BagsAndBoxes_64_t.png",
611: "8617.png",
612: "7793.png",
613: "9304.png",
614: "soap_r.png",
615: "554.png",
616: "bandages_t_01.png",
617: "book_t_01.png?1",
618: "pad_t_01.PNG",
619: "pencil_t_01.png",
620: "pin_t_01.png",
621: "water_t_01.png",
622: "whistle_t_01.PNG",
623: "packaging_t_01.PNG",
624: "pegleg.png",
625: "5848.png",
626: "3900.png",
627: "2687.png",
628: "press.png",
629: "cornoil.png",
630: "rice.png",
631: "seeds_rice.png",
632: "langstaff.png",
633: "meerif.png",
634: "mushroomstew.png",
635: "onionsoup.png",
636: "fallbasket.png",
637: "2364.png?1",
638: "recipe.png",
639: "recipe.png",
641: "bonebroth.png",
642: "recipe.png",
643: "fishessensestew.png",
644: "corngreens.png",
645: "crabclawsoup.png",
646: "shrimpgreensmix.png",
647: "leekmeatcorn.png",
648: "recipe.png",
649: "recipe.png",
650: "recipe.png",
651: "recipe.png",
652: "recipe.png",
653: "fruitpunch.png",
654: "vegsoup4.png",
655: "recipe.png",
656: "bag_t_03.png",
657: "854.png",
658: "gp3.png",
659: "churn.png",
660: "4431.png",
661: "eggsandwich.png",
662: "recipe.png",
663: "broom_t_01.png",
664: "eyes_t_01.png",
665: "garlic_t_02.png",
666: "pot_t_01.png",
667: "5990.png",
668: "runecorn.png",
669: "bshoe2.png",
670: "jkey.png",
671: "heartcontainer.png?1",
672: "ppie.png",
673: "lpres.png",
674: "card_christmas.png",
675: "2473.png",
677: "9347.png",
678: "9325.png",
679: "9324.png",
680: "9379b.png",
681: "9306b32.png",
682: "9311.png",
683: "8957.png",
684: "9314.png",
685: "engine.png?1",
686: "keyglobe.png",
687: "wreath.png?2",
688: "frosteye.png",
689: "crowfish.png",
690: "bullfish.png",
691: "glassback.png",
692: "seacrest.png",
693: "seeker.png",
694: "stonejelly.png",
695: "goldseacrest.png",
696: "iceshark.png",
697: "iceshell.png",
698: "12_sm.png",
699: "ccookies.png",
701: "2324.png?1",
702: "4773.png",
703: "boxes_012.png",
704: "frozenkey.png",
705: "winterbasket.png?2",
706: "frozenpeas.png",
707: "frozencabbage.png",
708: "frozenpine.png",
709: "brooch.png?1",
710: "icestone.png",
712: "pboot.png",
713: "pboot2.png",
714: "8285.png",
715: "l_06_t.png?1",
716: "lcookies.png",
717: "frostshield.png?1",
718: "3729.png",
719: "3320.png",
720: "615.png",
721: "infring2.png",
722: "lavaring2.png",
723: "pie1.png?1",
724: "recipe.png",
725: "piepan.png",
726: "grapepie.png",
727: "recipe.png",
728: "kingcake.png?2",
729: "seeds_spring.png?1",
730: "yflowers.png",
731: "rflowers.png",
732: "bflowers.png",
733: "wflowers.png",
734: "oflowers.png",
735: "2599.png?1",
736: "195.png",
737: "1240.png",
738: "3826.png",
739: "buddydoll2.png",
741: "seeds_mcotton.png?1",
742: "bouquet.png?1",
743: "211.png",
745: "card_thankyou.png",
746: "card_congrats.png",
747: "card_buddylove.png",
748: "card_goodluck.png",
749: "card_clawed.png",
750: "card_capybirthday.png",
751: "buddycushion.png",
752: "timeegg.png",
753: "eggbasket.png",
754: "potatobattery.png",
755: "omelet1.png",
756: "omelet2.png",
757: "recipe.png",
758: "recipe.png",
759: "199.png",
760: "1026.png",
761: "borgenbuck.png",
762: "joker.png",
763: "piece23.png?1",
764: "piece04.png?1",
765: "piece09.png?1",
766: "stack_cards.png?2",
767: "vipcard.png",
768: "318.png",
769: "piece26.png?1",
770: "piece11.png?1",
771: "piece15.png?1",
772: "4497.png",
773: "3330.png",
774: "193.png?1",
775: "gboots.png?2",
776: "shipinabottle.png?3",
777: "1931.png",
778: "lemoncreampie.png",
779: "lunchbox2.png?1",
780: "recipe.png",
781: "greensoup.png",
782: "4488.png",
783: "6311.png",
784: "piece18.png?1",
785: "strangemask1.png?1",
786: "goldscythe.png",
787: "acornbutter.png?1",
788: "1621.png",
789: "bomb.png",
790: "beatrixbox.png?1",
791: "bluefireworks.png",
792: "moonbreaker.png",
793: "beachball.png?1",
794: "pirates_45_t.png?1",
795: "pirates_63_t.png?1",
796: "prismshell.png?1",
797: "stonekey.png?3",
798: "magicfeather.png?1",
800: "ambercane.png?2",
801: "card_weknow.png?12",
802: "card_yourock.png",
803: "yellowwatermelon.png",
805: "8267.PNG",
806: "calendar_t_01.png",
807: "buddybag.png?2",
808: "plant_t_01.png",
809: "brush_t_01.png",
810: "chocolate_t_01.png",
811: "globe.png",
812: "buddytk.png",
813: "8974.png",
814: "3966.png",
815: "pizzaslice.png",
816: "unusualgem.png",
817: "finp_618.png?1",
818: "unicornkey.png",
819: "eventkey.png",
820: "6687.png?2",
821: "9446.png",
822: "9439.png",
823: "9441.png",
824: "9445.png",
825: "nj_985.png",
826: "pineboard.png",
827: "raffleticket.png",
828: "expiredticket.png",
829: "applebasket.png?2",
830: "applepie2.png",
831: "card_gws.png",
832: "harpoon.png",
833: "fujiapple.png",
834: "greenapple.png",
835: "goldapple2.png",
837: "mlantern.png?1",
838: "809.png",
839: "stamper.png",
840: "7594.png",
841: "finp_705.png",
842: "finp_607.png",
843: "buckle.png?2",
844: "2451.png",
845: "707.png",
846: "856.png",
848: "1679.png",
849: "5304.png",
850: "5310.png",
851: "5488.png",
852: "jarofpickles.png",
853: "2077.png",
854: "873.PNG",
855: "1525.PNG",
856: "6475.png",
857: "2125.PNG",
858: "5576.png",
859: "rwb.png",
861: "BagsAndBoxes_59_t.png",
862: "923.png",
863: "bag_t_03.png",
864: "vipcard2.png",
865: "3827.png",
867: "soapbelt.png",
868: "s_98.png",
869: "4902.png",
870: "battery_t_01.png",
871: "ghost.png",
872: "149.png",
873: "876.png",
874: "1584.png",
875: "hessaxe2.png",
876: "s_08.png",
877: "738.png",
878: "739.png",
879: "boneaxe.png?2",
880: "cornucopia.png",
881: "2379.png",
882: "7200.png",
883: "cranjuice2.png",
884: "voidbag.png",
885: "147.png",
887: "minitimeegg.png",
888: "card_welcome.png",
889: "owlfeather.png",
890: "duckfeather.png",
891: "1588.png",
892: "973.png",
893: "8708.png",
894: "spear.png",
895: "blueparchment.png",
896: "bluediary.png",
897: "redparchment.png",
898: "reddiary.png",
899: "bluetwine.png",
900: "8322.PNG?1",
901: "aquacite.png",
902: "1138.png",
903: "fairycrystal.png",
904: "lapislazuli.png",
905: "bone2.png",
906: "plumore.png",
907: "oceanite.png",
908: "bone3.png",
909: "woodblewit.png",
910: "1896.PNG",
911: "1137.png",
912: "pyredrop.png",
913: "sunstone.png",
914: "firecrystal.png",
915: "bone4.png",
916: "3384.PNG",
917: "redmushrooms.png",
918: "stoneshell.png",
919: "2836.png",
920: "solorb.png",
921: "crystalpickaxe.png",
922: "sturdypickaxe.png",
923: "embershard.png",
924: "magmastone.png",
925: "bone5.png",
926: "uflarite.png",
927: "flarite.png",
928: "9478.png",
929: "brainfungus.png",
930: "rs27.png",
931: "1672.png",
932: "9489.png",
933: "4696.png",
934: "horns.png",
935: "snowflakes.png",
936: "gift_2.png",
937: "487.png",
938: "frozen_net.png",
939: "frozen_large_net.png",
940: "bagofsnowballs.png",
941: "snowcup.png",
942: "frozen_squid.png",
943: "frozen_sheepshead.png",
944: "frozen_spy.png",
945: "frozen_ray.png",
946: "frozen_boot.png",
947: "frozen_shell.png",
948: "frozen_catfish.png",
949: "frozen_lobster.png",
950: "frozen_biter.png",
951: "frozen_bones.png",
952: "frozen_jelly.png",
953: "frozen_angelfish.png",
954: "frozen_starfish.png",
955: "frozen_wheel.png",
956: "frozen_skull.png",
957: "frozen_feather.png",
958: "frozen_dagger.png",
959: "frozen_coin.png",
960: "frozen_claw.png",
961: "frozen_book.png",
962: "cornquartz2.png",
963: "frozen_chest.png",
964: "frozen_flowers.png?1",
965: "frozen_tomato.png",
966: "frozen_corn.png",
967: "7581.png",
968: "semi.png",
969: "sock.png",
970: "magicwire.png",
971: "3495.png",
972: "hsb.png",
973: "lovepotion.png",
974: "redletter.png",
975: "5046.png",
976: "greentwine.png",
977: "purpletwine.png",
978: "1096.png",
979: "piece01.png?1",
980: "piece03.png?1",
981: "piece22.png?1",
982: "piece24.png?1",
983: "piece30.png?1",
984: "2059.png",
985: "2064.png",
986: "spraybottle.png",
987: "luckybag.png",
988: "irishstick.png",
989: "palette.png",
992: "7896.png",
993: "7896-orange.png",
994: "7896-green.png",
995: "7896-green.png",
996: "7896-purple.png",
997: "7896.png",
998: "7896-green.png",
999: "7896-green.png",
1000: "7896-blue.png",
1001: "7896.png",
1002: "7896-green.png",
1003: "7896-green.png",
1004: "7896-yellow.png",
1005: "7896-green.png",
1006: "7896-green.png",
1007: "7896-orange.png",
1008: "7896-yellow.png",
1009: "7896-green.png",
1010: "7896-gray.png",
1011: "7896-yellow.png",
1012: "7896-purple.png",
1013: "7896-yellow.png",
1014: "Buddyidolhead.png",
1015: "Buddyidolbody.png",
1016: "Buddyidolhair.png",
1017: "Buddyidolgem.png",
1018: "Buddyidol.png",
1019: "Cornball.png",
1021: "airegg.png",
1022: "chaosegg.png",
1023: "earthegg.png",
1024: "fireegg.png",
1025: "lifeegg.png",
1026: "lightegg.png",
1027: "shadowegg.png",
1028: "spaceegg.png",
1029: "timeegg2.png",
1030: "wateregg.png",
1031: "mageggbasket.png",
1032: "magicchest01.png",
1033: "birdkite.png",
1034: "buddyssleepingcap.png",
1035: "whitetruffle.png",
1036: "blacktruffle.png",
1037: "pigcollar.png?1",
1038: "eggofzeal2.gif",
1039: "bsb01.png",
1040: "birthdaycakeslice.png",
1041: "reddfish.png",
1042: "cricket.png",
1043: "bugbag1.png",
1044: "bobble_lorn.png",
1045: "pinata_stick.png",
1046: "Buddiescandy.png",
1047: "strawberrycandy.png",
1048: "squishybears.png",
1049: "partyhat.png",
1050: "card_3ears.png",
1051: "bobble_charles.png",
1052: "bobble_jill.png",
1053: "carved_cat.png",
1054: "carved_chicken.png",
1055: "carved_cow.png",
1056: "carved_dragon.png",
1057: "carved_fox.png",
1058: "carved_mouse.png",
1059: "carved_pig.png",
1060: "carved_squisquatch.png",
1061: "bobble_beatrix.png",
1062: "bobble_borgen.png",
1063: "bobble_buddy.png",
1064: "bobble_ct.png",
1065: "wood_block.png",
1066: "3149.png",
1067: "bobble_cecil.png",
1068: "bobble_frank.png",
1069: "bobble_gary.png",
1070: "bobble_geist.png",
1071: "bobble_george.png",
1072: "bobble_holger.png",
1073: "bobble_mariya.png",
1074: "bobble_mummy.png",
1075: "bobble_ric.png",
1076: "bobble_roomba.png",
1077: "bobble_rosalie.png",
1078: "bobble_star.png",
1079: "bobble_thomas.png",
1080: "bobble_vincent.png",
1081: "voucher.png",
1082: "tote1.png",
1083: "sand_shovel.png",
1084: "sand_castle_bucket.png",
1085: "coconut.png",
1086: "beach_umbrella.png",
1087: "beach_towel.png",
1088: "beachball2.png",
1089: "antfarm.png?1",
1090: "2129.png",
1091: "bfw.png",
1092: "prunejuice.png",
1093: "greenfw.png",
1094: "glassjar.png",
1095: "mayo.png",
1096: "sticket.png",
1097: "token.png",
1098: "freedombelt.png",
1099: "BagsAndBoxes_30_t.png",
1100: "BagsAndBoxes_30_t.png",
1101: "BagsAndBoxes_17_t.png",
1102: "BagsAndBoxes_17_t.png",
1103: "babacola.png",
1104: "babasnack.png",
1105: "yoyo.png",
1106: "nuts.png",
1107: "appleturnover.png",
1108: "9419.png",
1109: "applecrate.png",
1110: "applecutter.png",
1111: "5296b.png",
1112: "jadeite.png?1",
1113: "viri_4012.png",
1114: "upyrite.png",
1115: "pyrite.png",
1116: "1276.PNG",
1117: "2429.png",
1118: "6594.png",
1119: "3476.png",
1120: "9090.png",
1121: "3980.png",
1122: "4173.png",
1123: "8874.png",
1124: "bag_t_03.png",
1125: "candyfish.png",
1126: "pbcup.png",
1127: "birdkey.png",
1128: "rucksack2.png",
1129: "needle.png",
1130: "piano.png",
1131: "redbrick2.png",
1132: "snowshoes.png",
1133: "2453.png",
1134: "goldfeed.png",
1135: "silk.png",
1136: "viri_4696.png",
1137: "pineshelf.png",
1138: "afk_9510.png",
1139: "afk_9592.png",
1140: "viri_3369b.png",
1141: "afk_9605.png",
1142: "afk_9531.png",
1143: "zbuddy.png",
1144: "afk_9541.png",
1145: "vbuddy.png",
1146: "gbuddy.png",
1147: "wbuddy.png",
1148: "friendshipbag.png",
1149: "tbuddy.png",
1150: "mbuddy.png",
1151: "jbuddy.png",
1152: "ebuddy.png",
1153: "bobble_baba.png",
1154: "bobble_cid.png",
1155: "lobster.png",
1156: "shinypresent.png",
1157: "eggnog.png",
1158: "nutcrackerbuddy.png",
1159: "cbuddy.png",
1160: "kbuddy.png",
1161: "sbuddy.png",
1162: "rbuddy.png",
1163: "yulegoatsm.png",
1164: "garland.png",
1165: "recipe.png",
1166: "card_sappy.png",
1167: "goldrudolph.png",
1168: "goldmittens.png",
1169: "goldwreath.png",
1170: "Maverick_coin.png",
1171: "frozen_radish.png",
1172: "Manekinekobuddydoll.png",
1173: "Snowman_Buddy_doll.png",
1174: "Buddy_doll_frozen.png",
1175: "frozen_chest.png",
1176: "fish_biscuit.png",
1177: "6320.png",
1178: "strangekey.png",
1179: "mushroomkey.png",
1180: "fishbook.png",
1181: "fishbook.png",
1182: "mushroombook.png",
1183: "painite.png",
1184: "gainite.png",
1185: "fishbook.png",
1186: "fishbook.png",
1187: "hsb.png",
1188: "buffteddy2.png",
1189: "heartcandies.png",
1190: "buddydoll_cupid.png",
1191: "buddydoll_groundhog.png",
1193: "valbelt.png",
1194: "springbasket.png",
1195: "hummingbird_feeder.png",
1196: "honeysuckle.png",
1197: "leafymcluckybuddydoll.png",
1198: "tanooki_buddy_doll.png"
}
const itemData = {
11: "Peppers",
12: "Pepper Seeds",
13: "Eggplant",
14: "Eggplant Seeds",
15: "Tomato",
16: "Tomato Seeds",
17: "Drum",
18: "Worms",
19: "Carrot",
20: "Carrot Seeds",
21: "Board",
22: "Iron",
23: "Bucket",
24: "Yellow Perch",
25: "Largemouth Bass",
26: "Eggs",
27: "Peas",
28: "Pea Seeds",
29: "Cucumber",
30: "Cucumber Seeds",
31: "Radish",
32: "Radish Seeds",
33: "Onion",
34: "Onion Seeds",
35: "Wood",
36: "Wooden Plank",
37: "Wooden Box",
38: "Nails",
39: "Crappie",
40: "Stone",
41: "Aquamarine",
42: "Feathers",
43: "Mushroom",
44: "Apple",
45: "Fish Bones",
46: "Hops",
47: "Hops Seeds",
48: "Potato",
49: "Potato Seeds",
50: "Leek",
51: "Leek Seeds",
52: "Fern Leaf",
53: "Purple Flower",
54: "Amethyst",
55: "Sturdy Box",
56: "Green Chromis",
57: "Blue Crab",
58: "Small Prawn",
59: "Watermelon",
60: "Watermelon Seeds",
61: "Orange",
62: "Lemon",
63: "Trout",
64: "Corn Seeds",
65: "Corn",
66: "Cabbage Seeds",
67: "Cabbage",
68: "Pumpkin Seeds",
69: "Pumpkin",
70: "Wheat Seeds",
71: "Wheat",
72: "Wooden Barrel",
73: "Purple Parchment",
74: "Green Parchment",
75: "Mushroom Paste",
76: "Unpolished Shimmer Stone",
77: "Shimmer Stone",
78: "Glass Orb",
79: "Looking Glass",
80: "Lemon Quartz",
81: "White Parchment",
82: "Green Diary",
83: "Purple Diary",
84: "Orange Juice",
85: "Milk",
86: "Lemonade",
87: "Bone Fish",
88: "Sunfish",
89: "Blue Catfish",
90: "Blue Shell",
91: "Acorn",
92: "Sweet Root",
93: "Unpolished Ruby",
94: "Ruby",
95: "Iron Ring",
96: "Ruby Ring",
97: "Clam Shell",
98: "Starfish",
99: "Clownfish",
100: "Pearl",
101: "Conch Shell",
102: "Shimmer Quartz",
103: "Coal",
104: "Black Powder",
105: "Bottle Rocket",
106: "Explosive",
107: "Catfish",
108: "Arrowhead",
109: "Hide",
110: "Leather",
111: "Bird Egg",
112: "Grape Juice",
113: "Bone",
114: "Marlin",
115: "Puffer",
116: "Old Boot",
117: "Glass Bottle",
118: "Leather Diary",
119: "Jellyfish",
120: "Grapes",
121: "Wine",
122: "Coin Purse",
123: "Ancient Coin",
124: "Lemon Quartz Ring",
125: "Aquamarine Ring",
126: "Amethyst Necklace",
127: "Wooden Shield",
128: "Straw",
129: "Broom",
130: "Iron Cup",
131: "Bluegill",
132: "Carp",
133: "Blue Sea Bass",
134: "Stingray",
135: "MIAB",
136: "Mussel",
137: "Steak",
138: "Green Jellyfish",
139: "Skipjack",
140: "Giant Squid",
141: "Shrimp",
142: "Unpolished Emerald",
143: "Emerald",
144: "Carbon Sphere",
145: "Steel",
146: "Emerald Ring",
147: "Runestone 01",
148: "Runestone 02",
149: "Runestone 03",
150: "Runestone 04",
151: "Runestone 05",
152: "Runestone 06",
153: "Runestone 07",
154: "Runestone 08",
155: "Runestone 09",
156: "Runestone 10",
157: "Gold Peppers",
158: "Gold Pepper Seeds",
159: "Gold Carrot",
160: "Gold Carrot Seeds",
161: "Gold Peas",
162: "Gold Pea Seeds",
163: "Twine",
164: "Horn",
165: "Horn Canteen",
166: "Leather Bag",
167: "Sturdy Shield",
168: "Strange Letter",
169: "Inferno Sphere",
170: "Antler",
171: "Blue Feathers",
172: "Gold Feather",
173: "Flier",
174: "Ruby Fish",
175: "Diamond",
176: "Magicite",
177: "Moonstone",
178: "Emberstone",
179: "Prism Shard",
180: "Book of Schemas",
181: "Book of Knots",
182: "Book of Flora",
183: "Book of Clues",
184: "Book of Maps",
185: "Iced Tea",
186: "Cheese",
187: "3-leaf Clover",
188: "4-leaf Clover",
189: "Gold Cucumber",
190: "Gold Cucumber Seeds",
191: "Grubs",
192: "Minnows",
193: "Rope",
194: "Fishing Net",
195: "Mystic Ring",
196: "Pearl Necklace",
197: "Steak Kabob",
198: "Mackerel",
199: "Globber",
200: "Blue Tiger Fish",
201: "Fluorifish",
202: "Sandstone",
203: "Green Dye",
204: "Green Shield",
205: "Red Starfish",
206: "Seahorse",
207: "Octopus",
208: "Book of Time",
209: "Book of Skill",
210: "Book of Insects",
211: "Magic Conch Shell",
212: "Dice",
213: "Pocket Watch",
214: "Wooden Mask",
215: "Cogwheel",
216: "Magnifying Glass",
217: "Horseshoe",
219: "Model Ship",
220: "Lava Sphere",
221: "Runestone 11",
222: "Runestone 12",
223: "Runestone 13",
224: "Runestone 14",
225: "Runestone 15",
226: "Runestone 16",
227: "Runestone 17",
228: "Runestone 18",
229: "Runestone 19",
230: "Runestone 20",
231: "Torch Fish",
232: "Flamejack",
233: "Redgill",
234: "Flarefin",
235: "Strange Ring",
236: "Hammer",
237: "Axe",
238: "Shovel",
239: "Leather Waterskin",
240: "Wizard Hat",
241: "Shark Tooth",
242: "Bacon",
243: "Spectacles",
244: "Amber",
245: "Eye Patch",
246: "Pirate Flag",
247: "Captains Log",
248: "Shimmer Topaz",
249: "Shimmer Ring",
250: "Honey",
251: "Small Spring",
252: "Treasure Chest",
253: "Piece of Heart",
254: "Cotton",
255: "Cotton Seeds",
256: "Broccoli",
257: "Broccoli Seeds",
258: "Pirate Bandana",
259: "Freaky Picture",
260: "Ladder",
261: "Dragon Skull",
262: "Gold Eggplant",
263: "Unpolished Jade",
264: "Jade",
265: "Jade Charm",
266: "Skull Coin",
267: "Diving Helmet",
268: "Shinefish",
269: "Large Clam Shell",
270: "Gold Crab",
271: "Goldfish",
272: "Wooden Pipe",
273: "Small Flute",
274: "Sealed Letter",
275: "Feed",
276: "Flour",
277: "Gummy Worms",
279: "Lima Bean",
280: "Teapot",
281: "Gold Leaf",
282: "Shiny Beetle",
283: "Horned Beetle",
284: "Snail",
285: "Caterpillar",
286: "Fire Ant",
287: "Giant Centipede",
288: "Carved Owl",
289: "Pine Cone",
290: "Carved Rhino",
291: "Carved Camel",
292: "Carved Rabbit",
293: "Carved Squirrel",
294: "Carved Bear",
295: "Carved Moose",
296: "Carved Warthog",
297: "Winged Amulet",
298: "Buddystone",
299: "Wooden Sword",
300: "Sturdy Sword",
301: "Fancy Pipe",
302: "Slimestone",
303: "Oak",
304: "Salt Rock",
305: "Salt",
306: "Swordfish",
307: "Barracuda",
308: "Sea Catfish",
309: "Plumbfish",
310: "Spiral Shell",
311: "Serpent Eel",
312: "Ruby Coral",
313: "Tribal Mask",
314: "Blue Gel",
315: "Compass",
316: "Garnet Ring",
317: "Garnet",
318: "Unpolished Garnet",
319: "Red Berries",
320: "Striped Feather",
321: "Thorns",
322: "Sour Root",
323: "Raptor Claw",
324: "Tribal Staff",
325: "Mystical Staff",
326: "Scissors",
327: "Seeing Stone",
328: "Wagon Wheel",
329: "Gift Basket 01",
330: "Grab Bag 01",
331: "Small Key",
332: "Small Chest 01",
333: "Small Chest 02",
334: "Grab Bag 02",
335: "Square Key",
336: "Medium Chest 01",
337: "Medium Chest 02",
338: "Magna Quartz",
339: "Small Screw",
340: "Magna Core",
341: "Flywheel",
342: "Small Gear",
343: "Flame Orb",
344: "Present 01",
345: "Strange Gem",
346: "Large Chest 01",
347: "Treasure Key",
348: "Fancy Box",
349: "Herbs",
350: "Green Cloak",
351: "Gouda",
352: "Gold Eggplant Seeds",
353: "Energy Core",
354: "Wax Candle",
355: "Jack-o-lantern",
356: "Chattering Teeth",
357: "Witch Hat",
358: "Candy",
359: "Lollipop",
360: "Treat Bag 01",
361: "Candy Corn",
362: "Spider",
363: "Large Chest 02",
364: "Treat Bag 02",
365: "Ring of Renthisj",
366: "Skeleton Key",
367: "Hockey Mask",
368: "Lantern",
369: "R.O.A.S.",
370: "Taffy",
371: "Egyptian Necklace",
372: "Treat Bag 03",
373: "Sunflower",
374: "Sunflower Seeds",
375: "Popcorn",
376: "Ruby Scorpion",
377: "Cornucopia 01",
378: "Water Lily",
379: "Apple Cider",
380: "Rubber Duckie",
381: "Backstabbing Dagger",
382: "Grasshopper",
383: "Cyclops Spider",
384: "Dragonfly",
385: "Paper Receipt",
386: "Trident of Poseidon",
387: "Sand",
388: "Hourglass",
389: "Orange Gecko",
390: "Seaweed",
391: "Cooked Turkey",
392: "Steel Wire",
393: "Fancy Guitar",
394: "Raptor Egg",
395: "Mushroom Spores",
396: "Grab Bag 03",
397: "Grab Bag 04",
398: "Grab Bag 05",
399: "Christmas Present 01",
400: "Cid's Stone Ale",
401: "Candy Cane",
402: "Orange Ornament",
403: "Green Ornament",
404: "Red Ornament",
405: "Yellow Ornament",
406: "Blue Ornament",
407: "Purple Ornament",
408: "Christmas Tree",
409: "Pine Tree",
410: "Pine Seeds",
411: "Snowman",
412: "Snowball",
413: "Santa Hat",
414: "Green Scarf",
415: "Gingerbread Man",
416: "Star",
417: "Mistletoe",
418: "Milk and Cookies",
419: "Christmas Stocking",
420: "Teddy Bear",
421: "Mittens",
422: "Bag of Presents 01",
423: "Gingerbread House",
424: "Christmas Sweater",
425: "Hot Cocoa",
426: "Candy Roll",
427: "Yarn",
428: "Snow Globe",
429: "Christmas Present 02",
430: "Christmas Present 03",
431: "Christmas Present 04",
432: "Christmas Present 05",
433: "Christmas Present 06",
434: "Christmas Present 07",
435: "Christmas Present 08",
436: "Christmas Present 09",
437: "Christmas Present 10",
438: "Christmas Present 11",
439: "Christmas Present 12",
440: "Dasher",
441: "Dancer",
442: "Prancer",
443: "Vixen",
444: "Comet",
445: "Cupid",
446: "Donner",
447: "Blitzen",
448: "Rudolph",
449: "Beet Seeds",
450: "Beet",
451: "Holiday Candles",
452: "Fireworks",
453: "Grab Bag 06",
454: "100 Gold",
455: "Wooden Bow",
456: "Sturdy Bow",
457: "Gold Trout",
458: "Gold Catfish",
459: "Gold Coral",
460: "Gold Drum",
461: "Goldfin",
462: "Gold Flier",
463: "Goldgill",
464: "Goldray",
465: "Gold Sea Bass",
466: "Goldjack",
467: "Gold Boot",
468: "Lucky Rabbit Foot",
469: "Tower Key",
470: "Opposition Hourglass",
471: "Bell",
472: "Star's Treasure Map",
473: "Spiked Shell",
474: "Fancy Drum",
475: "Crab Claw",
476: "Mapping Compass",
477: "Wishbone Necklace",
478: "Sea Dragon",
479: "Frog",
481: "Chum",
482: "Mystical Chest 01",
483: "Box of Chocolate 01",
484: "Heart Necklace Left Piece",
485: "Heart Necklace Right Piece",
486: "Heart Necklace",
487: "Bouquet of Roses",
488: "Valentines Card",
489: "Pink Ribbon",
490: "Gift Basket 02",
491: "Grab Bag 07",
492: "Essence of Slime",
493: "Official Share",
494: "Spring Basket 01",
495: "Pie",
496: "Strange Mushroom",
497: "Carnevale",
498: "Mealworms",
499: "Tea Leaves",
500: "Large Net",
501: "Pot of Gold (Large)",
502: "Pot of Gold (Medium)",
503: "Pot of Gold (Small)",
504: "Gold Shamrock",
505: "Mug of Beer",
506: "Green Top Hat",
507: "Gold Horseshoe",
508: "Arnold Palmer",
509: "50 Gold",
510: "25 Gold",
511: "10 Gold",
512: "5 Gold",
513: "Diary of O'Dynn",
514: "Bahltruvian Scales",
515: "Odthorin's Charm",
516: "Stones of Gallodor",
517: "Runecube",
518: "Egg 06",
519: "frank's Basket",
520: "Bunny Ears",
521: "Egg 01",
522: "Egg 02",
523: "Egg 03",
524: "Egg 04",
525: "Egg 05",
526: "Egg 07",
527: "Egg 08",
528: "Egg 09",
529: "Egg 10",
530: "Egg 11",
531: "Egg 12",
532: "Growth Medallion I",
533: "Gold Egg",
534: "Present 02",
535: "Blue Dye",
536: "Red Dye",
537: "Purple Dye",
538: "Red Shield",
539: "Purple Bag",
540: "Blue Purse",
541: "Chocolate Bunny",
542: "Headdress of Luna",
543: "Trigon Knot",
544: "Friendship Bracelet",
545: "Peculiar Gem",
546: "Blue Milk",
547: "Birthday Present",
548: "Drink Bundle",
549: "Taco",
550: "Pinata",
551: "Sombrero",
552: "Book of Fish",
553: "Runestone 23",
565: "Hot Potato",
566: "Onion Rings",
567: "Corn Kabob",
568: "Blue Spritz",
569: "Anglerfish",
570: "Purple Butterfly Fish",
571: "Pirate Hook",
572: "Mystical Chest 02",
573: "Large Chest 03",
574: "Crab",
575: "Green Barracuda",
576: "Mulberry Snapper",
577: "Jumbo Fish",
578: "Speckled Grouper",
579: "Orcafish",
580: "Gold Jelly",
581: "Cutlass",
582: "Runestone Necklace",
583: "Grab Bag 08",
584: "Tackle Box",
585: "Crossbow",
586: "Peach",
587: "Peach Juice",
588: "Mega Beet Seeds",
589: "Mega Sunflower Seeds",
590: "Pulley",
591: "Copper Wire",
592: "Steel Plate",
593: "Broken Pipe",
594: "Wrench",
595: "Small Bolt",
596: "Prickly Pear",
597: "Transistor",
598: "Machine Part",
599: "Onyx Scorpion",
600: "Scrap Wire",
601: "Scrap Metal",
602: "Corn Prize Bag",
603: "Summer Basket",
604: "Sand Dollar",
605: "Clubs",
606: "Diamonds",
607: "Hearts",
608: "Spades",
609: "Growth Medallion II",
610: "Backpack",
611: "Monster Skull",
612: "Y73841 Blueprint",
613: "Y73841 Detector",
614: "Soap",
615: "Canoe",
616: "Toilet Paper",
617: "Schoolbook",
618: "Notebook",
619: "Pencil",
620: "Safety Pin",
621: "Water Bottle",
622: "Whistle",
623: "Milk Carton",
624: "Peg Leg",
625: "Ashes of Pentagorn",
626: "Dragon Heart",
627: "Magic Mirror",
628: "Machine Press",
629: "Corn Oil",
630: "Rice",
631: "Rice Seeds",
632: "Langstaff Crest",
633: "Meerif Crest",
634: "Mushroom Stew",
635: "Onion Soup",
636: "Fall Basket",
637: "Cooking Pot",
638: "Holger's Mushroom Stew",
639: "George's Onion Soup",
641: "Bone Broth",
642: "Rosalie's Bone Broth",
643: "Cat's Meow",
644: "Quandary Chowder",
645: "Sea Pincher Special",
646: "Shrimp-a-Plenty",
647: "Over The Moon",
648: "Thomas's Cat's Meow",
649: "Jill's Quandary Chowder",
650: "Vincent's Sea Pincher Special",
651: "Cecil's Shrimp-a-Plenty",
652: "Roomba's Over The Moon",
653: "Fruit Punch",
654: "Neigh",
655: "Charles's Neigh",
656: "Treat Bag 04",
657: "Spooky Cookies",
658: "Gold Potato",
659: "Butter Churn",
660: "Butter",
661: "Breakfast Boost",
662: "Lorn's Breakfast Boost",
663: "Witch's Broom",
664: "Glass Eyes",
665: "Garlic",
666: "Witch's Brew",
667: "Bat Wing",
668: "Runecorn",
669: "Fancy Shoe",
670: "Jack-o-key",
671: "Heart Container",
672: "Pumpkin Pie",
673: "Lovely Present",
674: "Christmas Card",
675: "Spoon",
677: "Belt Drive",
678: "Metal Spool",
679: "Spool of Copper",
680: "Energy Coil",
681: "Control Box",
682: "Kill Switch",
683: "Pear Grease",
684: "Power Monitor",
685: "Engine",
686: "Keyglobe",
687: "Holiday Wreath",
688: "Frosteye",
689: "Crowfish",
690: "Bullfish",
691: "Glassback",
692: "Sea Crest",
693: "Seeker",
694: "Stone Jelly",
695: "Gold Sea Crest",
696: "Ice Shark",
697: "Frost Snapper Shell",
698: "Bag of Presents 02",
699: "Happy Cookies",
701: "Water Orb",
702: "Zho's Dagger",
703: "Cepathorf's Case",
704: "Frozen Playground Key",
705: "Winter Basket",
706: "Frozen Peas",
707: "Frozen Cabbage",
708: "Frozen Pine",
709: "Brooch of the Bahltruvian Elite",
710: "Glacierstone",
712: "Polished Boot",
713: "Pair of Boots",
714: "Bananas",
715: "Box of Chocolate 02",
716: "Lovely Cookies",
717: "Frost Shield",
718: "Maduin's Cup",
719: "Serpent of Trym",
720: "Spring Bangle",
721: "Inferno Ring",
722: "Lava Ring",
723: "Red Berry Pie",
724: "Rosalie's Red Berry Pie",
725: "Pie Pan",
726: "Concord Grape Pie",
727: "Rosalie's Concord Grape Pie",
728: "King Cake",
729: "Spring Seeds",
730: "Yellow Flowers",
731: "Red Flowers",
732: "Blue Flowers",
733: "White Flowers",
734: "Orange Flowers",
735: "Peafowl Feather",
736: "Fancy Chair",
737: "Fancy Pan Flute",
738: "Wooden Table",
739: "Buddy Doll",
741: "Mega Cotton Seeds",
742: "Bouquet of Flowers",
743: "Step Ladder",
745: "Thank You Card",
746: "Congratulations Card",
747: "Buddy Loves You Card",
748: "Good Luck Card",
749: "Clawed Card",
750: "Capy Birthday Card",
751: "Buddy Cushion",
752: "Time Egg",
753: "Egg Basket",
754: "Potato Battery",
755: "Hickory Omelette",
756: "Crunchy Omelette",
757: "Mariya's Hickory Omelette",
758: "Mariya's Crunchy Omelette",
759: "Steel Vise",
760: "Red Trunk",
761: "Borgen Buck",
762: "Joker",
763: "Piece 23",
764: "Piece 04",
765: "Piece 09",
766: "Stack of Cards",
767: "VIP Card",
768: "Sturdy Saw",
769: "Piece 26",
770: "Piece 11",
771: "Piece 15",
772: "Bag of Spring Seeds",
773: "Magic Lamp",
774: "Fancy Table",
775: "Pair of Gold Boots",
776: "Ship in a Bottle",
777: "Rune Dice",
778: "Lemon Cream Pie",
779: "Holger's Lunch Box",
780: "Baba Gec's Cabbage Stew",
781: "Cabbage Stew",
782: "Pearl Berries",
783: "Honeycomb",
784: "Piece 18",
785: "Ramjoram's Mask",
786: "Scythe of Dewstar",
787: "Acorn Butter",
788: "Red Twine",
789: "Bomb",
790: "Beatrix's Big Box of Boom",
791: "Blue Star Stomper",
792: "Moonbreaker",
793: "Beach Ball",
794: "Anchor",
795: "Ship Wheel",
796: "Prism Shell",
797: "Cave Key",
798: "Wizard's Second Favorite Feather",
800: "Amber Cane",
801: "We Know Card",
802: "You Rock Card",
803: "Yellow Watermelon",
805: "Apple Core",
806: "Desk Calendar",
807: "Buddy's School Bag",
808: "Potted Flower",
809: "Toothbrush",
810: "Protein Bar",
811: "World Globe",
812: "Keeper Trapper",
813: "Sling Blade",
814: "Mark of Knowledge",
815: "Pizza Slice",
816: "Unusual Gem",
817: "Fancy Violin",
818: "Unicorn Key",
819: "Event Key",
820: "Pickaxe",
821: "Esperium",
822: "Briomine",
823: "Calcifite",
824: "Green Halite",
825: "Sunflower Oil",
826: "Pine Board",
827: "Raffle Ticket",
828: "Expired Ticket",
829: "Apple Basket",
830: "Apple Pie",
831: "Get Well Soon Card",
832: "Harpoon",
833: "Fuji Apple",
834: "Green Apple",
835: "Gold Apple",
837: "Linked Lantern",
838: "Music Box",
839: "Notary Stamp",
840: "Notary Certificate",
841: "Leather Belt",
842: "Nailed Board",
843: "Steel Buckle",
844: "Awl",
845: "Wooden Button",
846: "Corn Husk Doll",
848: "Belt of Commander Uteer",
849: "Bessi Gan Belt",
850: "Velocity Belt",
851: "Belt of Truth",
852: "Jar of Pickles",
853: "Buddy's Old Pirate Belt",
854: "Bone Fragments",
855: "Unpolished Aquacite",
856: "Cave Mushroom",
857: "Fossilized Print",
858: "Broken Memory Belt",
859: "Raptor Wrangler Belt",
861: "Borgen Bag 01",
862: "Spooky Pie",
863: "Treat Bag 05",
864: "VIP Platinum Card",
865: "Spooky Doll",
867: "Steel Soap Belt",
868: "Belt of Menace",
869: "Utal's Sabre",
870: "QED Cell",
871: "Captured Ghost",
872: "QED Pack",
873: "Cleaver",
874: "Skull-in-the-box",
875: "Hessian's Axe",
876: "Horseman's Belt",
877: "Calavera 01",
878: "Calavera 02",
879: "Bone Pickaxe",
880: "Cornucopia 02",
881: "Thankful Notes",
882: "Bread",
883: "Cranberry Juice",
884: "Void Bag 01",
885: "Flying Machine",
887: "Mini Time Egg",
888: "Welcome Card",
889: "Owl Feather",
890: "Duck Feather",
891: "Waffle",
892: "Circuit Breaker Belt",
893: "Owl Guard Belt",
894: "Wooden Spear",
895: "Blue Parchment",
896: "Blue Diary",
897: "Red Parchment",
898: "Red Diary",
899: "Blue Twine",
900: "Pitchfork",
901: "Aquacite",
902: "Bird Skull 01",
903: "Fairy Crystal",
904: "Lapis Lazuli",
905: "Bone 02",
906: "Plum Ore",
907: "Oceanite",
908: "Bone 03",
909: "Purple Mushroom",
910: "Fossilized Frog",
911: "Ram Skull 01",
912: "Pyredrop",
913: "Sunstone",
914: "Fire Crystal",
915: "Bone 04",
916: "Orange Calcite",
917: "Red Mushrooms",
918: "Stone Shell",
919: "Fossilized Leaf",
920: "Sol Orb",
921: "Crystal Pickaxe",
922: "Sturdy Pickaxe",
923: "Embershard",
924: "Magmastone",
925: "Bone 05",
926: "Unpolished Flarite",
927: "Flarite",
928: "Pitviper Tail",
929: "Brain Fungus",
930: "Runestone 27",
931: "Fossilized Shell",
932: "Broken Sword",
933: "Re'taw",
934: "Reindeer Headband",
935: "Snowflakes",
936: "Fancy Present",
937: "Santa's Travel Belt",
938: "Frozen Fishing Net",
939: "Frozen Large Net",
940: "Bag of Snowballs",
941: "Snowball Cup",
942: "Frozen Squid",
943: "Frozen Sheepshead",
944: "Frozen Spyfish",
945: "Frozen Manta Ray",
946: "Frozen Boot",
947: "Frozen Shell",
948: "Frozen Catfish",
949: "Frozen Lobster",
950: "Frozen Biter",
951: "Frozen Bones",
952: "Frozen Jelly",
953: "Frozen Angelfish",
954: "Frozen Starfish",
955: "Frozen Wheel",
956: "Frozen Skull",
957: "Frozen Feather",
958: "Frozen Dagger",
959: "Frozen Coin",
960: "Frozen Crab Claw",
961: "Frozen Book",
962: "Refined Corn Quartz",
963: "Frozen Chest 01",
964: "Frozen Bouquet",
965: "Frozen Tomato",
966: "Frozen Corn",
967: "Forcepath's Book of Quest Requirements",
968: "Coderanger's Missing Semicolon",
969: "Tenfoo's Lost Sock",
970: "Firestream's Magic Wire",
971: "Heart-shaped Gem",
972: "Heart-shaped Box 01",
973: "Boltonic Love Potion 4",
974: "Red Envelope",
975: "Five Point Mace",
976: "Green Twine",
977: "Purple Twine",
978: "Cannon",
979: "Piece 01",
980: "Piece 03",
981: "Piece 22",
982: "Piece 24",
983: "Piece 30",
984: "Lucky Spiral Belt",
985: "Borgen's Dancing Belt",
986: "Boobun's Spray Bottle",
987: "Green Backpack",
988: "Shillelagh",
989: "Perfect Paint Palette",
992: "Certificate of Pepper Giving",
993: "Certificate of Carrot Giving",
994: "Certificate of Pea Giving",
995: "Certificate of Cucumber Giving",
996: "Certificate of Eggplant Giving",
997: "Certificate of Radish Giving",
998: "Certificate of Onion Giving",
999: "Certificate of Hops Giving",
1000: "Certificate of Potato Giving",
1001: "Certificate of Tomato Giving",
1002: "Certificate of Leek Giving",
1003: "Certificate of Watermelon Giving",
1004: "Certificate of Corn Giving",
1005: "Certificate of Cabbage Giving",
1006: "Certificate of Pine Giving",
1007: "Certificate of Pumpkin Giving",
1008: "Certificate of Wheat Giving",
1009: "Certificate of Broccoli Giving",
1010: "Certificate of Cotton Giving",
1011: "Certificate of Sunflower Giving",
1012: "Certificate of Beet Giving",
1013: "Certificate of Rice Giving",
1014: "Cursed Effigy Head",
1015: "Cursed Effigy Body",
1016: "Cursed Effigy Hair",
1017: "Cursed Effigy Gem",
1018: "Cursed Effigy",
1019: "Corn Ball",
1021: "Egg of Air",
1022: "Egg of Chaos",
1023: "Egg of Earth",
1024: "Egg of Fire",
1025: "Egg of Life",
1026: "Egg of Light",
1027: "Egg of Shadow",
1028: "Egg of Space",
1029: "Egg of Ages",
1030: "Egg of Water",
1031: "Magical Egg Basket",
1032: "Magical Chest 01",
1033: "Kite Kite",
1034: "Buddy's Sleeping Cap",
1035: "White Truffle",
1036: "Black Truffle",
1037: "Pig Collar",
1038: "Egg of Zeal",
1039: "Birthday Surprise Box 03",
1040: "Piece of Cake",
1041: "Red Diamond Fish",
1042: "Cricket",
1043: "Bug Bag 01",
1044: "Lorn Bobblehead",
1045: "Pinata Whop Stick",
1046: "B for Buddies",
1047: "Strawberry Good Goods",
1048: "Beary Squishies",
1049: "Party Hat",
1050: "3rd Birthday Card",
1051: "Charles Bobblehead",
1052: "Jill Bobblehead",
1053: "Carved Kitty",
1054: "Carved Chicken",
1055: "Carved Cow",
1056: "Carved Dragon",
1057: "Carved Fox",
1058: "Carved Mouse",
1059: "Carved Pig",
1060: "Carved Squisquatch",
1061: "Beatrix Bobblehead",
1062: "Borgen Bobblehead",
1063: "Buddy Bobblehead",
1064: "CptThomas Bobblehead",
1065: "Block of Wood",
1066: "Handsaw",
1067: "Cecil Bobblehead",
1068: "frank Bobblehead",
1069: "Gary Bobblehead",
1070: "Geist Bobblehead",
1071: "George Bobblehead",
1072: "Holger Bobblehead",
1073: "Mariya Bobblehead",
1074: "Mummy Bobblehead",
1075: "Ric Ryph Bobblehead",
1076: "Roomba Bobblehead",
1077: "Rosalie Bobblehead",
1078: "Star Bobblehead",
1079: "Thomas Bobblehead",
1080: "Vincent Bobblehead",
1081: "Supply Voucher",
1082: "Rosalie's Beach Tote",
1083: "Sand Shovel",
1084: "Sand Castle Bucket",
1085: "Coconut",
1086: "Beach Umbrella",
1087: "Beach Towel",
1088: "Buddy's Beach Ball",
1089: "Fire Ant Farm",
1090: "Safety Goggles",
1091: "Beatrix's Booming Brawl Box",
1092: "Prune Juice",
1093: "Green Torpedo",
1094: "Glass Jar",
1095: "Mayonnaise",
1096: "Support's Ticket",
1097: "Event Token",
1098: "Belt of Freedom",
1099: "Supply Bag 01",
1100: "Supply Bag 02",
1101: "Supply Crate 01",
1102: "Supply Crate 02",
1103: "Baba Cola",
1104: "Baba's Snack Pack",
1105: "YoYo",
1106: "Mixed Nuts",
1107: "Apple Turnover",
1108: "Strange Temple Necklace",
1109: "Apple Crate 01",
1110: "Apple Slicer",
1111: "Steel Pickaxe",
1112: "Jadeite",
1113: "Mossy Stone",
1114: "Unpolished Pyrite",
1115: "Pyrite",
1116: "Bone 06",
1117: "Blood Crystal",
1118: "Nightshade Cap",
1119: "Rune Shard",
1120: "Broken Bangle",
1121: "Fangs",
1122: "Fenrir's Coin",
1123: "Pumpkin Juice",
1124: "Treat Bag 06",
1125: "Gummy Globber",
1126: "Thomas's Cup of PB",
1127: "Bird Key",
1128: "Rucksack",
1129: "Sewing Needle",
1130: "Grand Piano",
1131: "Red Brick",
1132: "Snow Shoes",
1133: "Sail Cloth",
1134: "Gold Feed",
1135: "Silk",
1136: "Fancy Clock",
1137: "Pine Shelf",
1138: "Book of Spells",
1139: "Consumption Belt",
1140: "Quicksilver's Ring",
1141: "Tombstone",
1142: "Mana Scarab",
1143: "Zombie Buddy Doll",
1144: "Spooky Slime",
1145: "Vampire Buddy Doll",
1146: "Ghost Buddy Doll",
1147: "Werewolf Buddy Doll",
1148: "Friendship Bag 01",
1149: "Turkey Buddy Doll",
1150: "Movember Buddy Doll",
1151: "Jester Buddy Doll",
1152: "Adventure Buddy Doll",
1153: "Baba Bobblehead",
1154: "Cid Bobblehead",
1155: "Lobster",
1156: "Shiny Present",
1157: "Festive Eggnog",
1158: "Nut Cracker Buddy",
1159: "Nut Cracker Buddy Doll",
1160: "Krampus Buddy Doll",
1161: "Santa Buddy Doll",
1162: "Rudolph Buddy Doll",
1163: "Yule Goat",
1164: "Holiday Garland",
1165: "Mariya's Festive Eggnog",
1166: "Sappy Christmas Card",
1167: "Gold Rudolph",
1168: "Gold Mittens",
1169: "Gold Wreath",
1170: "Maverick Chip",
1171: "Frozen Radish",
1172: "Lucky Cat Buddy Doll",
1173: "Snowman Buddy Doll",
1174: "Frozen Buddy Doll",
1175: "Frozen Chest 02",
1176: "Fish Biscuit",
1177: "Cooked Fish",
1178: "Strange Key 01",
1179: "Gary's Crushroom Key",
1180: "Gary's Diary Page 36",
1181: "Gary's Diary Page 77",
1182: "Fungus Processing and You",
1183: "Painite",
1184: "Gainite",
1185: "Gary's Diary Page 12",
1186: "Gary's Diary Page 86",
1187: "Heart-shaped Box 02",
1188: "Gare Bear",
1189: "Heart Candies",
1190: "Cupid Buddy Doll",
1191: "Groundhog Buddy Doll",
1193: "Two Hearts Belt",
1194: "Spring Basket 02",
1195: "Hummingbird Feeder",
1196: "Honeysuckle",
1197: "Leprechaun Buddy Doll",
1198: "Tanooki Buddy Doll",
};
// NPC Gift Preferences (No Emojis)
// Format: npcGiftPreferences[NPC].loves / .likes / .dislikes => [Items]
const npcGiftPreferences = {
"Baba Gec": { "loves": ["Cabbage Stew", "Peach Juice", "Wooden Button"], "likes": ["Leek", "Onion", "Rope", "Snail"], "dislikes": ["Horned Beetle", "Stone", "Worms"] },
"Beatrix": { "loves": ["Black Powder", "Explosive", "Fireworks", "Iced Tea"], "likes": ["Bird Egg", "Carbon Sphere", "Coal", "Hammer", "Hops", "Oak"], "dislikes": ["Fire Ant", "Grubs", "Horned Beetle", "Worms"] },
"Borgen": { "loves": ["Cheese", "Gold Catfish", "Wooden Box"], "likes": ["Glass Orb", "Gold Carrot", "Gold Cucumber", "Gold Peas", "Milk", "Slimestone"], "dislikes": ["Green Dye", "Grubs", "Old Boot", "Purple Flower", "Valentines Card", "Worms"] },
"Buddy": { "loves": ["Pirate Bandana", "Pirate Flag", "Purple Flower", "Valentines Card"], "likes": ["Bone", "Bucket", "Giant Centipede", "Gold Peppers", "Gummy Worms", "Mushroom", "Snail", "Spider"], "dislikes": ["Crappie", "Drum", "Grubs", "Lemon", "Lemonade", "Peppers", "Snowball", "Worms"] },
"Cpt Thomas": { "loves": ["Fishing Net", "Gold Catfish", "Gold Drum", "Gold Trout", "Large Net"], "likes": ["Blue Crab", "Minnows"], "dislikes": ["Radish", "Spider", "Worms"] },
"Cecil": { "loves": ["Grasshopper", "Horned Beetle", "Leather", "MIAB", "Old Boot", "Shiny Beetle", "Yarn"], "likes": ["Aquamarine", "Giant Centipede", "Grapes", "Ladder", "Slimestone", "Snail"], "dislikes": ["Feathers", "Milk", "Mushroom", "Worms"] },
"Charles": { "loves": ["Apple", "Apple Cider", "Box of Chocolate 01", "Gold Carrot", "Peach", "Valentines Card"], "likes": ["3-leaf Clover", "Carrot", "Grasshopper", "Twine"], "dislikes": ["Blue Crab", "Bone", "Cheese", "Green Chromis", "Grubs", "Lemon", "Lemonade", "Snail", "Spider", "Stone", "Worms"] },
"Cid": { "loves": ["Bomb", "Diamonds", "Explosive", "Mushroom Stew", "Safety Goggles", "Spider"], "likes": ["Black Powder", "Blue Feathers", "Shimmer Stone", "Stone"], "dislikes": ["Cheese", "Worms"] },
"frank": { "loves": ["Carrot", "Gold Carrot"], "likes": ["Blue Dye", "Blue Feathers", "Bucket", "Caterpillar", "Feathers", "Grasshopper"], "dislikes": ["Eggs", "Fire Ant", "Mushroom", "Peas", "Trout", "Worms"] },
"Gary Bearson V": { "loves": ["Apple Cider", "Gold Trout", "Yarn", "You Rock Card"], "likes": ["Feathers", "Oak", "Trout"], "dislikes": ["Black Powder", "Bucket", "Radish", "Tomato", "Worms"], "superLoves": ["Gare Bear"] },
"Geist": { "loves": ["Gold Catfish", "Goldgill", "Sea Pincher Special", "Shrimp-a-Plenty"], "likes": ["Blue Crab", "Green Chromis", "Stingray", "Yellow Perch"], "dislikes": ["Axe", "Black Powder", "Explosive", "Gummy Worms", "Worms"], "superLoves": ["Prism Shell"] },
"George": { "loves": ["Apple Cider", "Carbon Sphere", "Hide", "Mug of Beer", "Spider"], "likes": ["Arrowhead", "Bird Egg", "Glass Orb", "Hops", "Mushroom Stew", "Orange Juice"], "dislikes": ["Bone", "Cheese", "Fish Bones", "Worms"], "superLoves": ["Perfect Paint Palette"] },
"Holger": { "loves": ["Gold Trout", "Mug of Beer", "Potato", "Wooden Table"], "likes": ["Apple Cider", "Arrowhead", "Bluegill", "Carp", "Cheese", "Horn", "Largemouth Bass", "Mushroom Stew", "Peach", "Peas", "Trout"], "dislikes": ["Aquamarine", "Milk", "Valentines Card", "Worms"] },
"Jill": { "loves": ["Leather", "MIAB", "Mushroom Paste", "Peach", "Yellow Perch"], "likes": ["Cheese", "Grapes", "Milk", "Old Boot", "Scrap Metal", "Tomato"], "dislikes": ["Grubs", "Hops", "Snowball", "Spider", "Stingray", "Worms"], "superLoves": ["Refined Corn Quartz"] },
"Lorn": { "loves": ["Glass Orb", "Gold Peas", "Milk", "Shrimp", "Small Prawn"], "likes": ["3-leaf Clover", "Apple Cider", "Bucket", "Green Parchment", "Iced Tea", "Iron Cup", "Peas", "Purple Parchment"], "dislikes": ["Crappie", "Old Boot", "Snail", "Spider", "Worms"] },
"Mariya": { "loves": ["Cat's Meow", "Leather Diary", "Mushroom Stew", "Onion Soup", "Over The Moon", "Quandary Chowder", "Sea Pincher Special", "Shrimp-a-Plenty"], "likes": ["Cucumber", "Eggplant", "Eggs", "Iced Tea", "Milk", "Peach", "Radish"], "dislikes": ["Black Powder", "Explosive", "Spider", "Worms"] },
"Mummy": { "loves": ["Bone", "Spider", "Valentines Card"], "likes": ["Fish Bones", "Hammer", "Treat Bag 02", "Yarn"], "dislikes": ["Box of Chocolate 01", "Cheese", "Coal", "Drum", "Snowball", "Worms"] },
"Ric Ryph": { "loves": ["5 Gold", "Hammer", "Mushroom Paste", "Shovel"], "likes": ["Arrowhead", "Black Powder", "Bucket", "Carbon Sphere", "Coal", "Green Parchment", "Old Boot", "Unpolished Shimmer Stone"], "dislikes": ["Aquamarine", "Caterpillar", "Cheese", "Ladder", "Milk", "Valentines Card", "Worms"], "superLoves": ["Five Point Mace"] },
"ROOMBA": { "loves": ["Carbon Sphere", "Scrap Metal"], "likes": ["Glass Orb", "Hammer", "Scrap Wire"], "dislikes": ["3-leaf Clover", "Acorn", "Arrowhead", "Bird Egg", "Milk", "Snowball", "Worms"], "superLoves": ["Refined Corn Quartz"] },
"Rosalie": { "loves": ["Blue Dye", "Box of Chocolate 01", "Gold Carrot", "Green Dye", "Purple Dye", "Red Dye", "Valentines Card"], "likes": ["Apple", "Apple Cider", "Aquamarine", "Carrot", "Caterpillar", "Fireworks", "Iced Tea", "Purple Flower"], "dislikes": ["Carp", "Coal", "Fire Ant", "Fish Bones", "Grubs", "Horned Beetle", "Iron Cup", "Old Boot", "Spider", "Worms"] },
"Star Meerif": { "loves": ["Blue Feathers", "Gold Feather"], "likes": ["Eggs", "Feathers"], "dislikes": ["Bone", "Cheese", "Grubs", "Iron Cup", "Lemon", "Lemonade", "Worms"], "superLoves": ["Ramjoram's Mask"] },
"Thomas": { "loves": ["Fishing Net", "Flier", "Gold Catfish", "Gold Trout", "Goldgill"], "likes": ["Carp", "Drum", "Gummy Worms", "Iced Tea", "Largemouth Bass", "Mealworms", "Minnows"], "dislikes": ["Eggs", "Green Dye", "Leek", "Worms"] },
"Vincent": { "loves": ["5 Gold", "Apple Cider", "Axe", "Lemonade", "Mushroom Paste", "Onion Soup", "Orange Juice"], "likes": ["Acorn", "Apple", "Cheese", "Hops", "Horn", "Leather Diary", "Shovel", "Wooden Box"], "dislikes": ["Aquamarine", "Purple Flower", "Purple Parchment", "Shrimp", "Valentines Card", "Worms"] },
};
//FarmRPG does some weird stuff where the previous page is still contained in the html of the current page, which might cause this to break if I overlooked something.
//querySelector(".page-on-center") does not work as I hoped it does...
function renderNpcXp() {
const locName = location.hash.slice(location.hash.search(/[^#!\/]/), location.hash.search(/.php/))
switch (locName) { //switch in case i wanna add it to profiles, too (still unnecessary, but let me do what i want!)
case 'npclevels':
const format = (new Intl.NumberFormat("en-US", {maximumSignificantDigits: 3, notation: "compact"})).format
let npcList
for (const title of document.querySelectorAll(".content-block-title")) {
if (title.textContent.trim() === "Current Levels") npcList = title.nextElementSibling.nextElementSibling;
}
for (let npc of npcList.querySelectorAll(".col-33")) {
const name = npc.querySelector("strong").textContent
const lvl = parseInt(npc.childNodes[4].textContent.match(/\d+/)[0])
const progressBar = npc.querySelector(".progressbar")
const progress = progressBar?.dataset.progress === undefined ? 0 : parseFloat(progressBar.dataset.progress)
const lvlXP = Math.floor(nextLevelXP[lvl] * progress / 100)
const nextGoal = nextLevelXP[lvl]
const totalXP = Math.floor(totalLevelXP[lvl] + lvlXP)
const totalPerc = Math.floor(100*(totalXP / totalLevelXP[99]))
const paddedPerc = String(totalPerc).padStart(3, " ").replace(/ /g, '\u00A0');
const linkEl = npc.childNodes[0];
const imgEl = linkEl.querySelector('img');
imgEl.style.width = '1rem';
imgEl.style.height = '1rem';
const regularLoves = (npcGiftPreferences[name]?.loves || []).map(item => {
const itemId = Object.entries(itemData).find(([id, itemName]) => itemName === item)?.[0];
if (!itemId || !imgData[itemId]) return '';
const imgSrc = `/img/items/${imgData[itemId]}`;
return `<a href="item.php?id=${itemId}"><img style="width:1rem;height:1rem" src="${imgSrc}" title="${item}" alt="${item}"></a>`;
}).join('');
const universalSuperLoves = ["Bouquet of Flowers", "Heart Container"].map(item => {
const itemId = Object.entries(itemData).find(([id, itemName]) => itemName === item)?.[0];
if (!itemId || !imgData[itemId]) return '';
const imgSrc = `/img/items/${imgData[itemId]}`;
return `<a href="item.php?id=${itemId}"><img style="width:1rem;height:1rem" src="${imgSrc}" title="${item}" alt="${item}"></a>`;
}).join('');
const npcSpecificSuperLoves = (npcGiftPreferences[name]?.superLoves || []).map(item => {
const itemId = Object.entries(itemData).find(([id, itemName]) => itemName === item)?.[0];
if (!itemId || !imgData[itemId]) return '';
const imgSrc = `/img/items/${imgData[itemId]}`;
return `<a href="item.php?id=${itemId}"><img style="width:1rem;height:1rem" src="${imgSrc}" title="${item}" alt="${item}"></a>`;
}).join('');
npc.outerHTML = `
<div class="col-100" style="width: 100%; margin-bottom: 0px;">
<div style="display: flex; flex-flow: row nowrap; justify-content: space-between; align-items: center; width: 100%;">
<a href="${linkEl.href}" style="color: ${lvl > 98 ? "gray" : lvl >= 92 ? "green" : lvl < 72 ? "orange" : "#eee"} !important; display: flex; width: 50%;">
<div style="width:40%;text-align:left;vertical-align:middle">
${imgEl.outerHTML}
<strong>${name}</strong>
</div>
<div style="width:65%;text-align:left;margin-top:auto;margin-bottom:0;font-family: monospace">
<strong>LEVEL ${lvl}</strong>: ${paddedPerc}% (${formatM(totalXP)} XP)
</div>
</a>
<div style="width:50%;text-align:center;margin-top:auto;margin-bottom:0; display: flex; justify-content: space-between;">
<div style="width:70%; text-align:center;">${regularLoves}</div>
<div style="width:25%; text-align:center;">${universalSuperLoves}</div>
<div style="width:10%; text-align:center;">${npcSpecificSuperLoves}</div>
</div>
</div>
</div>
`;
}
break
default:
return;
}
document.querySelectorAll('.row.no-gutter[style*="margin-bottom:15px"]').forEach(row => {
row.style.marginBottom = '0px';
});
reorderTownsfolkv3();
}
function formatB(value) {
return (value / 1e9).toFixed(3) + 'B';
}
function formatM(value) {
const str = (value / 1e6).toFixed(0) + 'M'
return str.padStart(5, " ").replace(/ /g, '\u00A0');
}
window.copyXP = function () {
const xpEl = document.getElementById('xpText');
const valueText = xpEl.textContent;
const percentText = `(${xpEl.dataset.percent}%)`;
const combined = `Friendship XP: ${valueText} ${percentText}`;
const button = document.querySelector('#copyXPButton');
navigator.clipboard.writeText(combined).then(() => {
const originalText = button.textContent;
button.textContent = '✅ Copied!';
setTimeout(() => {
button.textContent = originalText;
}, 1000);
});
};
function renderSuggestedItems(npcName) {
const container = document.getElementById("suggested-items");
if (!container) return;
const npc = npcGiftPreferences[npcName];
if (!npc) {
container.innerHTML = `<div>No gift data for ${npcName}</div>`;
return;
}
const makeItemImgs = (items) =>
items.map(item => {
const itemId = Object.entries(itemData).find(([id, name]) => name === item)?.[0];
if (!itemId || !imgData[itemId]) return '';
const imgSrc = `/img/items/${imgData[itemId]}`;
return `<a href="item.php?id=${itemId}"><img class="itemimgsm" src="${imgSrc}" title="${item}" alt="${item}"></a>`;
}).join('');
const regularLoves = makeItemImgs(npc.loves || []);
const universalSuperLoves = makeItemImgs(["Bouquet of Flowers", "Heart Container"]);
const npcSuperLoves = makeItemImgs(npc.superLoves || []);
container.innerHTML = `
<div style="text-align: center; margin-top: 0.5rem;">
<strong>🎁 ${npcName}'s Suggested Items:</strong><br>
${regularLoves}${universalSuperLoves}${npcSuperLoves}
</div>
`;
}
function reorderTownsfolkv3() {
const allContentBlocks = document.querySelectorAll('.content-block');
let targetContainer = null;
allContentBlocks.forEach((block) => {
const titleElement = block.querySelector('.content-block-title');
if (titleElement && titleElement.textContent.trim() === "Current Levels") {
const cardContentInners = block.querySelectorAll('.card-content-inner');
cardContentInners.forEach((inner) => {
if (inner.querySelector('.row.no-gutter')) {
targetContainer = inner;
}
});
}
});
if (!targetContainer) return;
// 🧼 Clean up duplicate summary blocks before doing anything else
targetContainer.querySelectorAll('.npc-summary-row').forEach(e => e.remove());
const npcBlocks = Array.from(targetContainer.querySelectorAll('.col-100'));
if (!npcBlocks.length) return;
// ...continue as you already have...
//console.log(`Found ${npcBlocks.length} NPC blocks.`);
// Clear the container by removing all `.row.no-gutter` elements
const rows = targetContainer.querySelectorAll('.row.no-gutter');
rows.forEach(row => row.remove());
//console.log(`Cleared ${rows.length} existing rows.`);
// Categorize blocks: flashy, normal, and maxed
const flashy = [];
const normal = [];
const maxed = [];
let totalxp = 0;
npcBlocks.forEach(block => {
const isFlashy = block.querySelector('.itemimg.glow1') !== null;
const xp = parseXP(block);
totalxp = totalxp + xp;
if (isFlashy) {
block.style.marginBottom = '15px'; // Add margin for flashy blocks
flashy.push(block);
} else if (xp === 2000) {
maxed.push(block); // Maxed blocks go last
} else {
normal.push(block); // Normal blocks sorted by XP
}
});
let xpMax = (flashy.length + normal.length + maxed.length) * 2000;
console.log(`Categorized blocks - Flashy: ${flashy.length}, Normal: ${normal.length}, Maxed: ${maxed.length}, Total XP = ${totalxp}/${xpMax}`);
// Sort normal blocks by XP in descending order
normal.sort((a, b) => parseXP(b) - parseXP(a));
// Create a new container for the reordered blocks
const newContainer = document.createElement('div');
newContainer.className = 'row no-gutter';
newContainer.style.display = 'flex';
newContainer.style.flexFlow = 'row wrap';
// Count how many NPCs are maxed (2000M XP)
const completedCount = maxed.length;
// Find the next closest NPC to completion (highest XP below 2000)
const nextUp = [...normal].sort((a, b) => parseXP(b) - parseXP(a))[0];
const nextUpName = nextUp?.querySelector('strong')?.textContent || "Unknown";
const nextUpXP = parseXP(nextUp);
const nextUpPercent = ((nextUpXP / 2000) * 100).toFixed(1);
const summaryRow = document.createElement('div');
summaryRow.classList.add('col-100', 'npc-summary-row'); // <== Add this line
summaryRow.style = `
padding: 0.25rem 0;
margin: 0;
font-weight: bold;
font-family: monospace;
color: orange;
background: transparent;
text-align: center;
line-height: 1.4;
`;
const maxXP = (flashy.length + normal.length + maxed.length) * 2000;
const percent = ((totalxp / maxXP) * 100).toFixed(1);
summaryRow.innerHTML = `
<div style="
border: 2px solid gold;
border-radius: 12px;
padding: 0.75rem;
margin-bottom: 1rem;
background: rgba(255, 215, 0, 0.05);
box-shadow: 0 0 10px gold;
">
<div style="display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: center; font-family: monospace;">
<!-- Left Side: Total XP -->
<div style="width: 50%; text-align: center;">
<div style="font-weight: bold;">🧑🤝🧑 Total Friendship XP:</div>
<div data-percent="${percent}" id="xpText">${totalxp}M / ${maxXP}M</div>
<div>(${percent}%)</div>
<div style="margin-top: 0.5rem; display: flex; flex-direction: column; align-items: center;">
<button id="copyXPButton" onclick="window.copyXP()" style="
background: transparent;
border: 1px solid gold;
color: gold;
border-radius: 6px;
font-size: 0.7rem;
cursor: pointer;
padding: 0.1rem 0.6rem;
">📋 Copy to clipboard</button>
</div>
</div>
<!-- Right Side: NPC Progress -->
<div style="width: 50%; text-align: center;">
<div style="font-weight: bold;">✅ ${completedCount} / ${flashy.length + normal.length + maxed.length} NPCs Complete</div>
<div>
<a href="${nextUp.querySelector('a')?.href}" style="color: gold"> 📈 Next: ${nextUpName} (${nextUpPercent}%) </a>
</div>
<div style="margin-top: 0.5rem;">
<div id="suggested-items" style="margin-top: 0.25rem;"></div>
</div>
</div>
</div>
</div>
`;
newContainer.querySelectorAll('.npc-summary-row').forEach(e => e.remove());
newContainer.insertBefore(summaryRow, newContainer.firstChild);
setTimeout(() => renderSuggestedItems(nextUpName), 0);
// Add blocks in order
flashy.forEach(block => newContainer.appendChild(block));
normal.forEach(block => newContainer.appendChild(block));
maxed.forEach(block => newContainer.appendChild(block));
//console.log("Prepared new container with sorted blocks:", newContainer);
// Remove any old summaries
targetContainer.querySelectorAll('.npc-summary-row').forEach(e => e.remove());
// Add summary at the top
//targetContainer.insertBefore(summaryRow, targetContainer.firstChild);
targetContainer.appendChild(newContainer);
//console.log("New container appended to target container.");
}
/**
* Parse the numeric "M XP" from a .col-100 block.
* Example text: "... ( 37M XP)"
* We'll return 37 as a Number if it's "37M" or 2000 if "2000M", etc.
*/
function parseXP(npcBlock) {
// Find text that looks like "123M XP" or " 37M XP"
const text = npcBlock.textContent || '';
// We'll match something like "(\d+)M XP"
const match = text.match(/(\d+)M\s*XP/i);
// Convert to a number
return match ? parseInt(match[1], 10) : 0;
}
function createContainer(originalContainer) {
const newContainer = document.createElement('div style="display:flex;flex-flow:row wrap"');
newContainer.className = originalContainer.className; // Copy original container's classes
newContainer.style = originalContainer.style.cssText; // Copy inline styles
return newContainer;
}
$(document).ready(() => {
const target = document.querySelector("#fireworks");
const observer = new MutationObserver(mutations => {
for (const mutation of mutations) {
if (mutation.attributeName === "data-page") {
const newPage = target.getAttribute("data-page");
if (newPage === "npclevels") {
renderNpcXp();
}
}
}
});
const config = {
attributes: true,
childList: true,
subtree: true
};
observer.observe(target, config);
const observera = new MutationObserver(() => {
reorderTownsfolkv3();
});
// Fire immediately if already on npclevels
const currentPage = target.getAttribute("data-page");
if (currentPage === "npclevels") {
renderNpcXp();
}
});