forked from techmunk/stardew-predictor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
463 lines (453 loc) · 31.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
<!DOCTYPE html>
<html>
<head>
<title>Stardew Predictor</title>
<meta charset="UTF-8" />
<meta property="og:title" content="Stardew Predictor" />
<meta property="og:description" content="An app which simulates the pRNG in Stardew Valley, reads a save file, and predicts some future events." />
<meta property="og:image" content="https://mouseypounds.github.io/stardew-predictor/og-embed-image.png" />
<meta property="twitter:image" content="https://mouseypounds.github.io/stardew-predictor/og-embed-image.png" />
<meta name="theme-color" content="#ffe0b0">
<meta name="author" content="MouseyPounds" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="./stardew-predictor.css" />
<link rel="stylesheet" type="text/css" href="./wallpaper.css" />
<link rel="stylesheet" type="text/css" href="./shirt.css" />
<link rel="icon" type="image/png" href="./favicon_p.png" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="./jquery-3.2.1.min.js"><\/script>')</script>
<script src="./cs-random.js"></script>
<script src="./stardew-predictor.js?v=4.0.4"></script>
</head>
<body>
<div id="TOC">
<h1>Navigation</h1>
<div id="TOC-details">
</div>
</div>
<div id="header" class="panel">
<h1>Stardew Predictor</h1>
<h2 id="sec_about">About</h2>
<p>This app simulates the random number generator used in <a href="http://stardewvalley.net/">Stardew Valley</a> and makes "predictions" about
the game after reading the save file. The information predicted includes special mine levels
(e.g. mushroom floor & infestations), random items sold by some vendors, results from cracking geodes, the train schedule, and more.</p>
<p>Most changed & added content from version 1.5 is supported. <span class="strong note">While the app tries to detect the version in the save and use
prediction logic specific to that version, it will spoil some new features regardless. You have been warned.</span> </p>
<p>The app is written in Javascript and uses <a href="https://jquery.com/">jQuery</a>, <a href="https://github.com/peterolson/BigInteger.js">BigInteger.js</a>, and <a href="https://github.com/substack/semver-compare">semver-compare</a>; it is hosted on GitHub Pages at <a href="https://mouseypounds.github.io/stardew-predictor/">https://mouseypounds.github.io/stardew-predictor/</a> and the source code repository is <a href="https://github.com/MouseyPounds/stardew-predictor">https://github.com/MouseyPounds/stardew-predictor</a>.
Please report any bugs, suggestions, or other feedback to <a href="https://community.playstarbound.com/threads/webapp-stardew-predictor-gaze-into-the-future-of-your-farm.141370/">the topic in the Chucklefish forums.</a></p>
</div>
<div id="input-container" class="panel">
<h2 id="sec_save_file">Save File</h2>
<p>Select a save file to check: <input type="file" id="file_select" /></p>
<p>Please use the full save file named with your farmer's name (or farm name) and an ID number (e.g. <span class="path">Fred_148093307</span>); do not use the <span class="path">SaveGameInfo</span> file as it does not contain all the necessary information.
<p>Default save file locations are:
<ul><li>Windows: <span class="path">%AppData%\StardewValley\Saves\</span></li>
<li>Mac OSX & Linux: <span class="path">~/.config/StardewValley/Saves/</span></li>
</ul>
</div>
<div id="progress-container" class="panel">
<h2 id="sec_working">Working...</h2>
<progress id="progress" value="0" max="100"></progress>
</div>
<div id="output-container" class="panel">
<h2 id="sec_results">Results</h2>
<output id="out-summary"> </output>
<div id="tabset-div" class="tabset">
<input type="radio" name="tabset" id="tab-mines" checked>
<label for="tab-mines">Mines<br/> </label>
<input type="radio" name="tabset" id="tab-cart" >
<label for="tab-cart">Traveling<br/>Cart</label>
<input type="radio" name="tabset" id="tab-krobus" >
<label for="tab-krobus">Krobus<br/> </label>
<input type="radio" name="tabset" id="tab-sandy" >
<label for="tab-sandy">Sandy<br/> </label>
<input type="radio" name="tabset" id="tab-wallpaper" >
<label for="tab-wallpaper">Wallpaper<br/> </label>
<input type="radio" name="tabset" id="tab-geode" >
<label for="tab-geode">Geodes<br/> </label>
<input type="radio" name="tabset" id="tab-train" >
<label for="tab-train">Trains<br/> </label>
<input type="radio" name="tabset" id="tab-night" >
<label for="tab-night">Night<br/>Events</label>
<input type="radio" name="tabset" id="tab-crane" >
<label for="tab-crane">Crane<br/>Game</label>
<input type="radio" name="tabset" id="tab-trash" >
<label for="tab-trash">Garbage<br/>Cans</label>
<!--<input type="radio" name="tabset" id="tab-resort" >
<label for="tab-resort">Resort<br/>Visitors</label> -->
<input type="radio" name="tabset" id="tab-enchant" >
<label for="tab-enchant">Enchants<br/> </label>
<input type="radio" name="tabset" id="tab-minechest" >
<label for="tab-minechest">Mine<br/>Chests</label>
<input type="radio" name="tabset" id="tab-gembirds" >
<label for="tab-gembirds">Gem<br/>Birds</label>
<input type="radio" name="tabset" id="tab-winterstar" >
<label for="tab-winterstar">Winter<br/>Star</label>
<div class="tab-panels">
<section id="sec-mines" class="tab-panel">
<h3>Special Mine Floors</h3>
<p class="intro" id="mine-intro">This calendar showss the prediction of various special levels in
<a href="https://stardewvalleywiki.com/The_Mines">the Mines</a> and <a href="https://stardewvalleywiki.com/Skull_Cavern">Skull Cavern.</a></p>
<ul><li>Mushroom levels respawn in version 1.3 and earlier, but starting in 1.4, mushrooms will only appear on your first visit.</li>
<li>Monster and slime infestations are persistent in all versions and can be revisited multiple times per day.</li>
<li>Quarry levels were added in 1.4; this is when the level uses the gray quarry mine tileset and spawns grey & brown slimes as well as <a href="https://stardewvalleywiki.com/Haunted_Skull">Haunted Skulls</a>. These can only happen if the quarry itself has been unlocked and will override other types of infestations, so the predictor only calculates them if the save has quarry access.</li>
<li>Dinosaur levels were also added in 1.4; these have a grassy tileset and are primarily inhabited by <a href="https://stardewvalleywiki.com/Pepper_Rex">Pepper Rex</a>. They can only occur in the Skull Cavern, and the predictor will check up to level 500 for them. Note that this prediction is not 100% accurate because the logic the game uses to determine which map to use for a particular level in the skull cavern uses a different (unpredictable) RNG and certain maps are not allowed to be Dinosaur levels.</li>
</ul>
<!-- divs inside of fieldsets because of Chrome bugs with flex display -->
<fieldset id="mines-buttons"><div class="buttons">
<button id="mines-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="mines-prev-month" type="button" class="browse">< Previous Month</button>
<button id="mines-reset" type="button" class="browse">Reset Calendar</button>
<button id="mines-next-month" type="button" class="browse">Next Month ></button>
<button id="mines-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-mines"> </output>
</section>
<section id="sec-cart" class="tab-panel">
<h3 id="cart-title">Traveling Merchant Cart and Night Market Boat</h3>
<p class="intro" id="cart-intro">Inventory list for the <a href="https://stardewvalleywiki.com/Traveling_Cart">traveling
merchant</a>. The merchant operates a cart in <a href="https://stardewvalleywiki.com/Cindersap_Forest">Cindersap Forest</a>
every Friday and Sunday (6am - 8pm) and also a boat during the winter <a href="https://stardewvalleywiki.com/Night_Market">Night
Market.</a> Results can be browsed by week (the Night Market is treated as a separate week) or searched using a case-insensitive
substring (regular expression wildcards are allowed.)</p>
<p class="note">Stardew 1.5 added a "year 1 guarantee" option which adds an extra Red Cabbage Seeds item to the cart sometime during year 1. The Predictor does not currently handle this option so search results do not yet include it.</p>
<fieldset id="cart-search">
<input type="text" id="cart-search-text" class="search">
<button id="cart-search-button" type="button" class="search">Search</button><br />
Search Range: <select id="cart-search-range">
<option value="1">1 year</option>
<option value="2" selected>2 years</option>
<option value="3">3 years</option>
<option value="5">5 years</option>
<option value="10">10 years</option>
</select><br />
<input type="checkbox" id="cart-search-all"> Start search from Spring 1, Year 1 instead of current day
</fieldset>
<fieldset id="cart-buttons"><div class="buttons">
<button id="cart-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="cart-prev-week" type="button" class="browse">< Previous Week</button>
<button id="cart-reset" type="button" class="browse">Reset Browsing</button>
<button id="cart-next-week" type="button" class="browse">Next Week ></button>
<button id="cart-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-cart"> </output>
</section>
<section id="sec-krobus" class="tab-panel">
<h3>Krobus' Sewer Shop Stock</h3>
<p class="intro" id="Krobus-intro">Partial inventory list for <a href="https://stardewvalleywiki.com/Krobus">Krobus</a> who sells items
in the <a href="https://stardewvalleywiki.com/Sewers">Sewers</a>. While his stock is static on most days, there is a random
fish sold on Wednesdays and a random cooked dish sold on Saturdays; these items can be predicted and are listed below.
Results can be browsed by week or searched using a case-insensitive substring (regular expression wildcards are allowed.)</p>
<fieldset id="krobus-search">
<input type="text" id="krobus-search-text" class="search">
<button id="krobus-search-button" type="button" class="search">Search</button><br />
Search Range: <select id="krobus-search-range">
<option value="1">1 year</option>
<option value="2" selected>2 years</option>
<option value="3">3 years</option>
<option value="5">5 years</option>
<option value="10">10 years</option>
</select><br />
<input type="checkbox" id="krobus-search-all"> Start search from Spring 1, Year 1 instead of current day
</fieldset>
<fieldset id="krobus-buttons"><div class="buttons">
<button id="krobus-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="krobus-prev-week" type="button" class="browse">< Previous Week</button>
<button id="krobus-reset" type="button" class="browse">Reset Browsing</button>
<button id="krobus-next-week" type="button" class="browse">Next Week ></button>
<button id="krobus-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-krobus"> </output>
</section>
<section id="sec-sandy" class="tab-panel">
<h3>Sandy's Oasis Shop Stock</h3>
<p class="intro" id="sandy-intro">Partial inventory list for <a href="https://stardewvalleywiki.com/Sandy">Sandy</a> who sells items
in the <a href="https://stardewvalleywiki.com/Oasis">Oasis shop</a>. While her stock is mostly static, beginning in version 1.4 there
is a random shirt sold every day; this shirt choice is predictable and listed below. The shirt is always 1000g.
Results can be browsed by week or searched using a case-insensitive substring (regular expression wildcards are allowed.)</p>
<fieldset id="sandy-search">
<input type="text" id="sandy-search-text" class="search">
<button id="sandy-search-button" type="button" class="search">Search</button><br />
Search Range: <select id="sandy-search-range">
<option value="1">1 year</option>
<option value="2" selected>2 years</option>
<option value="3">3 years</option>
<option value="5">5 years</option>
<option value="10">10 years</option>
</select><br />
<input type="checkbox" id="sandy-search-all"> Start search from Spring 1, Year 1 instead of current day
</fieldset>
<fieldset id="sandy-buttons"><div class="buttons">
<button id="sandy-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="sandy-prev-week" type="button" class="browse">< Previous Week</button>
<button id="sandy-reset" type="button" class="browse">Reset Browsing</button>
<button id="sandy-next-week" type="button" class="browse">Next Week ></button>
<button id="sandy-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-sandy"> </output>
</section>
<section id="sec-wallpaper" class="tab-panel">
<h3>Wallpaper from Pierre and Joja</h3>
<p class="intro" id="wallpaper-intro">This calendar shows the prediction of which
<a href="https://stardewvalleywiki.com/Wallpaper">wallpaper</a> and <a href="https://stardewvalleywiki.com/Flooring">flooring</a>
items are available at Pierre's General Store and the Joja Mart. This is mainly useful for those who use a bug that causes
wallpaper to be interpreted as another item for various situations such as bundles, crafting, and use in machines; because
of this, item equivalence is listed when applicable. As of version 1.4 most (if not all) of these
exploits have been patched, but this page might still be relevant for those who want to get a specific
wall/floor without buying the <a href="https://stardewvalleywiki.com/Catalogue">Catalogue</a>.</p>
<fieldset id="wallpaper-buttons"><div class="buttons">
<button id="wallpaper-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="wallpaper-prev-week" type="button" class="browse">< Previous Week</button>
<button id="wallpaper-reset" type="button" class="browse">Reset Calendar</button>
<button id="wallpaper-next-week" type="button" class="browse">Next Week ></button>
<button id="wallpaper-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-wallpaper"> </output>
</section>
<section id="sec-geode" class="tab-panel">
<h3>Geode Processing</h3>
<p class="intro" id="geode-intro">Predicted results from cracking open all types of
<a href="https://stardewvalleywiki.com/Minerals#Geodes">geodes</a> at Clint's
<a href="https://stardewvalleywiki.com/Blacksmith">Blacksmith Shop</a>. The number of geodes opened is a cumulative count across all types. Results can
be browsed twenty at a time or searched using a case-insensitive substring (regular expression wildcards are allowed.)
Note that in multiplayer, each player's geode count is tracked separately; the browse results are initially set and highlighted
based on the host's count.</p>
<p>In 1.5, the Golden Coconut is a new geode-type item with its own item pool. There is a small chance for a rolled item to be replaced with the Golden Helmet; browsing results will show this potential replacement, but the player will only actually receive the hat if they have not previously gotten one. Note that potential donations for the new Field Office are not currently checked, although only one donatable item (the Fossilized Skull) can be found this way.</p>
<p>Also in 1.5, if the Qi's Crop Challenge is active, all geode types may drop either 1 or 5 Qi Beans instead of their normal items. This situation is also shown on browsing results.</p>
<p class="note">Finally, the Geode Crusher item from 1.5 uses the same RNG but the count is offset by 1. For example if you have already crushed 12 geodes, the next geode cracked by Clint will use the results from line 13, but the next geode cracked by the Crusher will use the results from line 12.</p>
<fieldset id="geode-search">
<input type="text" id="geode-search-text" class="search">
<button id="geode-search-button" type="button" class="search">Search</button><br />
Search Range: <select id="geode-search-range">
<option value="100">100 geodes</option>
<option value="200" selected>200 geodes</option>
<option value="500">500 geodes</option>
<option value="1000">1000 geodes</option>
</select><br />
<input type="checkbox" id="geode-search-all"> Start search from first geode instead of current geode
</fieldset>
<fieldset id="geode-buttons"><div class="buttons">
<button id="geode-prev-100" type="button" class="browse"><< Previous 100</button>
<button id="geode-prev" type="button" class="browse">< Previous 20</button>
<button id="geode-reset" type="button" class="browse">Reset Browsing</button>
<button id="geode-next" type="button" class="browse">Next 20 ></button>
<button id="geode-next-100" type="button" class="browse">Next 100 >></button>
</div></fieldset>
<output id="out-geode"> </output>
</section>
<section id="sec-train" class="tab-panel">
<h3>Train Schedule</h3>
<p class="intro" id="train-intro">This calendar shows the predicted train spawns on the
<a href="https://stardewvalleywiki.com/Railroad">Railroad</a> map. The time of the train can be predicted, but the type of train cars
and amount of dropped items cannot.</p>
<p class="note">Note that a train will not spawn on the first day after a save is loaded or reloaded.</p>
<fieldset id="train-buttons"><div class="buttons">
<button id="train-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="train-prev-month" type="button" class="browse">< Previous Month</button>
<button id="train-reset" type="button" class="browse">Reset Calendar</button>
<button id="train-next-month" type="button" class="browse">Next Month ></button>
<button id="train-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-train"> </output>
</section>
<section id="sec-night" class="tab-panel">
<h3>Night Events</h3>
<p class="intro" id="night-intro">This calendar shows potential
<a href="https://stardewvalleywiki.com/Random_Events">overnight events</a> on the farm. These events will not occur if there
is a player wedding the next day, and they will also be overridden by a restoration event from the completion of a
<a href="https://stardewvalleywiki.com/Bundles">full Community Center room</a> or a
<a href="https://stardewvalleywiki.com/Joja_Community_Development_Form">Joja Community Development</a> purchase.
Most of these events also have other checks they must pass to actually trigger (such as finding a suitable location),
so <span class="strong">they are not 100% guaranteed</span>; in particular the
<a href="https://stardewvalleywiki.com/Strange_Capsule">strange capsule</a> and stone owl events were
<a href="https://www.reddit.com/r/StardewValley/comments/5aj878/the_last_mystery_and_a_technical_explanation/">extremely rare</a>
in earlier versions of the game, and in Stardw Valley 1.5.3 or later the strange capsule will only trigger once per save.</p>
<p class="note">Note: The app may misidentify the type of event in version 1.2 if the farmer has the possibility of
having more children.</p>
<fieldset id="night-buttons"><div class="buttons">
<button id="night-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="night-prev-month" type="button" class="browse">< Previous Month</button>
<button id="night-reset" type="button" class="browse">Reset Calendar</button>
<button id="night-next-month" type="button" class="browse">Next Month ></button>
<button id="night-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-night"> </output>
</section>
<section id="sec-crane" class="tab-panel">
<h3>Crane Game</h3>
<p class="intro" id="crane-intro">This calendar shows the presence of the worst villain in Stardew Valley, the green shirt man
who hogs the crane game at the <a href="https://stardewvalleywiki.com/Movie_Theater">Movie Theater.</a> He will always be there
on your first theater visit and also after every movie. His presence before movies (for later visits) is predictable and shown below.</p>
<fieldset id="crane-buttons"><div class="buttons">
<button id="crane-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="crane-prev-month" type="button" class="browse">< Previous Month</button>
<button id="crane-reset" type="button" class="browse">Reset Calendar</button>
<button id="crane-next-month" type="button" class="browse">Next Month ></button>
<button id="crane-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-crane"> </output>
</section>
<section id="sec-trash" class="tab-panel">
<h3>Garbage Cans</h3>
<p class="intro" id="trash-intro">This calendar shows the prediction of some <a href="https://stardewvalleywiki.com/Garbage_Can">Garbage Can</a> loot.
While luck plays a big role in what you find in cans, there is still a good amount of predictability. Most notably, the
<a href="https://stardewvalleywiki.com/Garbage_Hat">Garbage Hat</a> is nearly guaranteed; if it shows up on this list, it should happen in game.
Additionally, some results are highly reliable because the roll is good enough to pass the check even with worst possible luck. Some caveats about these
predictions are listed below: </p>
<ul>
<li>Some item spawns (most notably the hat) will only trigger if you have checked at least 20 cans total on the save; the app always assumes
that is true when making predictions; other item spawns require specific progress (such as deepest mine level or if the desert is accessible), and
will only be listed if that progress is found in the save.</li>
<li>Some item spawns may be superceded by location-specific loot (for example the can by the Museum might spawn a geode instead of what is listed here) because of a second luck-based roll.</li>
<li>Finally, sometimes cans not listed in the predictions might still give items on a particular day, especially if luck is high.</li>
</ul>
<fieldset id="trash-buttons"><div class="buttons">
<button id="trash-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="trash-prev-month" type="button" class="browse">< Previous Month</button>
<button id="trash-reset" type="button" class="browse">Reset Calendar</button>
<button id="trash-next-month" type="button" class="browse">Next Month ></button>
<button id="trash-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-trash"> </output>
</section>
<!--
<section id="sec-resort" class="tab-panel">
<h3>Resort Visitors</h3>
<p class="intro" id="resort-intro">This attempts to predict which NPCs will visit the Island Resort on a given day. These are not 100% guaranteed as they won't visit when it is raining on the Island or if some other unpredictable things have happened (such as being "invisible" due to a heart event.) And obviously it is meaningless until the player visits the Island and builds the resort itself.</p>
<fieldset id="resort-buttons"><div class="buttons">
<button id="resort-prev-year" type="button" class="browse"><< Previous Year</button>
<button id="resort-prev-month" type="button" class="browse">< Previous Month</button>
<button id="resort-reset" type="button" class="browse">Reset Calendar</button>
<button id="resort-next-month" type="button" class="browse">Next Month ></button>
<button id="resort-next-year" type="button" class="browse">Next Year >></button>
</div></fieldset>
<output id="out-resort"> </output>
</section>
-->
<section id="sec-enchant" class="tab-panel">
<h3>Enchantments</h3>
<p class="intro" id="enchant-intro">Predicted results from enchanting tools and weapons at the
Forge in the Volcano. The number of times enchanted is a cumulative count across all items.
Note that in multiplayer, each player's enchant count is tracked separately; the browse results are initially set and highlighted
based on the host's count. Searching is not currently supported.</p>
<p>Since the current enchantment is excluded from the pool of possible outcomes, there can be two possible results; the first result listed assumes no current enchantment and the tooltip that displays when you hover over the "..." will give more details. Additionally, hoes and watering cans are assumed to be Iridium level so that the "Expansive" enchantment is available.</p>
<p class="note">The version 1.5.2 patch changed the mechanics to exclude the last two enchantments on an item from the possible results rather than just the current enchantment. The predictor has not yet been updated for this change and it might be complicated enough that enchantment predictions wind up being removed in a later version.</p>
<!--
<fieldset id="enchant-search">
<input type="text" id="enchant-search-text" class="search">
<button id="enchant-search-button" type="button" class="search">Search</button><br />
Search Range: <select id="enchant-search-range">
<option value="100">100 enchants</option>
<option value="200" selected>200 enchants</option>
<option value="500">500 enchants</option>
<option value="1000">1000 enchants</option>
</select><br />
<input type="checkbox" id="enchant-search-all"> Start search from first enchant instead of current enchant
</fieldset>
-->
<fieldset id="enchant-buttons"><div class="buttons">
<button id="enchant-prev-big" type="button" class="browse"><< Previous 100</button>
<button id="enchant-prev" type="button" class="browse">< Previous 20</button>
<button id="enchant-reset" type="button" class="browse">Reset Browsing</button>
<button id="enchant-next" type="button" class="browse">Next 20 ></button>
<button id="enchant-next-big" type="button" class="browse">Next 100 >></button>
</div></fieldset>
<output id="out-enchant"> </output>
</section>
<section id="sec-minechest" class="tab-panel">
<h3>Mine Chests</h3>
<p class="intro" id="minechest-intro">Starting in version 1.5, one of the advanced startup options allows for randomized
loot in the mine reward chests. This loot can be predicted and is listed below. Note that even when this option is used, some of the chests still only have one possible reward.</p>
<output id="out-minechest"> </output>
</section>
<section id="sec-gembirds" class="tab-panel">
<h3>Gem Bird Types</h3>
<p class="intro" id="gembirds-intro">This shows which types of Gem Birds will appear in each Island location; this could be used to complete the jungle gem shrine puzzle before all birds are encountered in-game.</p>
<p class="note" id="gembirds-note"></p>
<output id="out-gembirds"> </output>
</section>
<section id="sec-winterstar" class="tab-panel">
<h3>Feast of the Winter Star Gift Assignments</h3>
<p class="intro" id="winterstar-intro">This shows the secret gift assignments for the
<a href="https://stardewvalleywiki.com/Feast_of_the_Winter_Star">Winter Star festival</a>. The actual gift(s) the player(s) will receive
cannot be reliably predicted, but a list of all the possibilities is provided. In a version 1.5 save, the presence of
<a href="https://stardewvalleywiki.com/Leo">Leo</a> may affect the outcome; the app will predict based upon Leo's current
status.</p>
<p class="note" id="winterstar-note"></p>
<fieldset id="winterstar-buttons"><div class="buttons">
<button id="winterstar-prev" type="button" class="browse">< Previous Year</button>
<button id="winterstar-reset" type="button" class="browse">Reset</button>
<button id="winterstar-next" type="button" class="browse">Next Year ></button>
</div></fieldset>
<output id="out-winterstar"> </output>
</section>
</div>
</div>
</div>
<div id="changelog" class="panel">
<noscript><span class="error">Javascript appears to be unsupported by or disabled in your browser. Stardew Predictor will not work without it.</span></noscript>
<h2 id="sec_changelog">Changelog</h2>
<ul>
<li>15 Jan 2021 - v4.0.4 - Updating Night event chances for Stardew Valley 1.5.3</li>
<li> 9 Jan 2021 - v4.0.3 - No code changes, only clarifications on some mechanics.</li>
<li>30 Dec 2020 - v4.0.2 - Made geode fix only apply to 1.5 saves</li>
<li>28 Dec 2020 - v4.0.1 - Fixed geode predictions</li>
<li>22 Dec 2020 - v4.0 - Initial support for Stardew Valley 1.5</li>
<li>24 Jul 2020 - v3.1.3 - Updated forum link in footer</li>
<li> 6 Mar 2020 - v3.1.2 - Fixed Krobus search</li>
<li> 1 Feb 2020 - v3.1.1 - Fixed one of the white eggs in the cart prediction being incorrectly listed as brown. (Thanks rickselby)</li>
<li>29 Dec 2019 - v3.1.0 - Added Skull Cave Dino levels to Mine info and a new tab for Garbage Can loot; also some fixes and formatting changes</li>
</ul>
<h3>Older changes</h3>
<div id="changelog_old" class="collapsible">
<button id="changelog_toggle" type="button">Show</button>
<ul class="initial_hide">
<li>13 Dec 2019 - v3.0.3 - Another small version error regarding artifact troves in search results</li>
<li> 7 Dec 2019 - v3.0.2 - Version detection changed again to handle semver like 1.4.2</li>
<li>30 Nov 2019 - v3.0.1 - Version detection should now properly identify day one 1.4 saves</li>
<li>26 Nov 2019 - v3.0 - Support for Stardew Valley 1.4</li>
<li> 5 July 2019 - v2.2.1 - Fixed a wiki link error.</li>
<li>30 Jan 2019 - v2.2 - Improved support for iOS save files</li>
<li>24 Oct 2018 - v2.1 - Added Wallpaper predictions and moved images to spritesheets</li>
<li> 3 Oct 2018 - v2.0.2 - Bug fixes for Winter Star processing when using URL ID parameter instead of a save</li>
<li> 1 Sept 2018 - v2.0.1 - Collapse older entries in changelog</li>
<li>20 Aug 2018 - v2.0 - Added Krobus tab (thanks ronw23 on GitHub). Better input sanitization for anti-Cat protection</li>
<li>18 Aug 2018 - v1.8 - Added public domain BigInteger library; MP support and fixed predictions for Winter Star 1.3</li>
<li>17 Aug 2018 - v1.7.1 - Added warning about broken Winter Star predictions in 1.3</li>
<li>17 Aug 2018 - v1.7 - Small bugfix on Geode predictions for 1.3</li>
<li>24 May 2018 - v1.6 - Favicon; Baby question for 1.2 save night events</li>
<li>23 May 2018 - v1.5.1 - Clarification in Night event intro & disclaimer about 1.2</li>
<li>21 May 2018 - v1.5 - Night events added; list potential Winter Star gifts.</li>
<li> 7 May 2018 - v1.4 - Geode counter bugfix; additional multiplayer support</li>
<li> 6 May 2018 - v1.3 - Traveling Merchant now includes Night Market if save is from 1.3</li>
<li> 4 May 2018 - v1.2 - Days Played bugfix</li>
<li>14 Apr 2018 - v1.1 - Train schedule added</li>
<li> 7 Mar 2018 - v1.0 - Full release, searching for geodes added</li>
<li> 4 Mar 2018 - v0.94 - Rewrite of RNG class to avoid ES2015-specific features for Pale Moon compatibility</li>
<li> 3 Mar 2018 - v0.93 - Indicator for geode contents which need donation</li>
<li>25 Feb 2018 - v0.92 - Fixing Baryte spelling and double-button processing bug</li>
<li>22 Feb 2018 - v0.91 - Search for Cart items, Winter Star bugfix</li>
<li>20 Feb 2018 - v0.9 - Beta Testing</li>
<li> 4 July 2017 - v0.5 - Alpha Testing</li>
</ul>
</div>
</div>
<div id="footer" class="panel">
Stardew Apps by MouseyPounds: <a href="https://mouseypounds.github.io/stardew-checkup/">Stardew Checkup</a> ||
<a href="https://mouseypounds.github.io/stardew-predictor/">Stardew Predictor</a> ||
<a href="https://mouseypounds.github.io/stardew-fair-helper/">Stardew Fair Helper</a>
<br />
Other Stardew Valley resources: <a href="http://stardewvalley.net/">Website</a> ||
<a href="http://store.steampowered.com/app/413150/Stardew_Valley/">Steam Page</a> ||
<a href="https://www.gog.com/game/stardew_valley">GOG Page</a> ||
<a href="http://www.stardewvalleywiki.com/">Wiki</a> ||
<a href="https://forums.stardewvalley.net/index.php">Forums</a> ||
<a href="https://www.reddit.com/r/StardewValley">Subreddit</a> ||
<a href="https://discordapp.com/invite/StardewValley">Discord</a>
<br />
Stardew Valley is developed by <a href="http://twitter.com/concernedape">ConcernedApe</a> and self-published on most platforms.
<br />
Some images are cropped from in-game screenshots and their copyright is held by ConcernedApe.
</div>
</body>
</html>