Advertisement
Guest User

Pierre and Joja Shop Inventories (Stardew Valley 1.5.6)

a guest
Mar 1st, 2023
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 17.66 KB | Gaming | 0 0
  1. This is mostly useful for modders but can also be very useful for regular players. I painstakingly extracted the shop inventories from the Stardew Valley 1.5.6 game code and rewrote them as a JSON file, which shows the inventory of each shop. You can finally see clearly what items Pierre sells that don't exist at Joja, and how the different shop prices behave.
  2.  
  3. I am posting this for my own reference in the future and to help other modders, but I am sure it will be handy for regular players too!
  4.  
  5. Just keep one thing in mind (it's mentioned in the comments in the JSON comments below too): The "price" value is not what you will see in-game, unless it's marked as "price_static". By default, the game multiplies every non-static "price" by 2.0. The multiplier also varies up/down if you've changed the game's "difficulty/profit margin" settings. The prices listed below in the JSON are the raw, internal prices that are then multiplied by the game to derive your final price.
  6.  
  7. If you're playing with default settings, the multiplier is 2.0 for all prices, or 2.5 at JojaMart if you haven't bought a membership there yet (2.0 after you're a member). In other words, Joja is 25% more expensive until you'e a member.
  8.  
  9. The "Unique Items" lists at the end are generated by comparing the two shop lists and includes only the items that differ between the two shops, for easy comparison.
  10.  
  11.  
  12.  
  13. {
  14.  "_comments": [
  15.    "Prices of \"-1\" means \"sell them at the default value specified in the item's own definition\".",
  16.     "If you have \"Pierre's Missing Stocklist\", the \"season\" requirements are ignored at Pierre's shop (not at Joja).",
  17.     "The game uses Game1.MasterPlayer.hasOrWillReceiveMail(\"PierreStocklist\") to check if you have unlocked all-year seeds.",
  18.     "Out-of-season seeds at Pierre's cost 50% more than their regular in-season price.",
  19.     "Strawberry Seeds can still only be purchased during the Egg Festival.",
  20.     "Pierre's stock is in Locations/SeedShop.cs in the function shopStock().",
  21.     "JojaMart's stock is in Utility.cs in the function getJojaStock().",
  22.     "All JojaMart prices are increased by 25% until you buy a Membership, which then sets all shop inventory to their default/actual prices.",
  23.     "The game uses Game1.player.hasOrWillReceiveMail(\"JojaMember\") to check if you have personally bought a Joja membership.",
  24.     "By default, all prices below and the default prices in the data files are multiplied by 2.0. So a price of 100 for Sunflower Seeds at Pierre's will actually be 200g in the shop. Joja uses 2.5 as its default multiplier, and 2.0 after you're a member.",
  25.     "As part of the price multiplication, the game also adjusts the price multiplier via the game's \"Difficulty Multiplier\", which is the configurable profit margin, which raises/lowers shop prices. Which items are affected by that seems like it might be slightly different in Joja prices vs Pierre's, but assuming you play with the default multiplier, prices are consistent across both shops.",
  26.     "Every item below is listed in the exact order that the game code adds them, which represent the same item list order that you see in-game. In many cases, JojaMart has the same items but in a different order than Pierre's.",
  27.     "The \"Unique Items\" lists below are the cut-down versions of the main lists, to only include the items that differ between the two shops, for easy comparison. The lists of differences were generated via a diff program."
  28.   ],
  29.   "pierres": [
  30.     { "item_id": 472, "price": -1, "season": "spring", "_comment": "Parsnip Seeds" },
  31.     { "item_id": 473, "price": -1, "season": "spring", "_comment": "Bean Starter" },
  32.     { "item_id": 474, "price": -1, "season": "spring", "_comment": "Cauliflower Seeds" },
  33.     { "item_id": 475, "price": -1, "season": "spring", "_comment": "Potato Seeds" },
  34.     { "item_id": 427, "price": -1, "season": "spring", "_comment": "Tulip Bulb" },
  35.     { "item_id": 477, "price": -1, "season": "spring", "_comment": "Kale Seeds" },
  36.     { "item_id": 429, "price": -1, "season": "spring", "_comment": "Jazz Seeds" },
  37.     { "item_id": 476, "price": -1, "season": "spring", "year": 2, "_comment": "Garlic Seeds" },
  38.     { "item_id": 273, "price": -1, "season": "spring", "year": 2, "_comment": "Rice Shoot" },
  39.     { "item_id": 479, "price": -1, "season": "summer", "_comment": "Melon Seeds" },
  40.     { "item_id": 480, "price": -1, "season": "summer", "_comment": "Tomato Seeds" },
  41.     { "item_id": 481, "price": -1, "season": "summer", "_comment": "Blueberry Seeds" },
  42.     { "item_id": 482, "price": -1, "season": "summer", "_comment": "Pepper Seeds" },
  43.     { "item_id": 483, "price": -1, "season": "summer", "_comment": "Wheat Seeds" },
  44.     { "item_id": 484, "price": -1, "season": "summer", "_comment": "Radish Seeds" },
  45.     { "item_id": 453, "price": -1, "season": "summer", "_comment": "Poppy Seeds" },
  46.     { "item_id": 455, "price": -1, "season": "summer", "_comment": "Spangle Seeds" },
  47.     { "item_id": 302, "price": -1, "season": "summer", "_comment": "Hops Starter" },
  48.     { "item_id": 487, "price": -1, "season": "summer", "_comment": "Corn Seeds" },
  49.     { "item_id": 431, "price": 100, "season": "summer", "_comment": "Sunflower Seeds" },
  50.     { "item_id": 485, "price": -1, "season": "summer", "year": 2, "_comment": "Red Cabbage Seeds" },
  51.     { "item_id": 490, "price": -1, "season": "fall", "_comment": "Pumpkin Seeds" },
  52.     { "item_id": 487, "price": -1, "season": "fall", "_comment": "Corn Seeds" },
  53.     { "item_id": 488, "price": -1, "season": "fall", "_comment": "Eggplant Seeds" },
  54.     { "item_id": 491, "price": -1, "season": "fall", "_comment": "Bok Choy Seeds" },
  55.     { "item_id": 492, "price": -1, "season": "fall", "_comment": "Yam Seeds" },
  56.     { "item_id": 493, "price": -1, "season": "fall", "_comment": "Cranberry Seeds" },
  57.     { "item_id": 483, "price": -1, "season": "fall", "_comment": "Wheat Seeds" },
  58.     { "item_id": 431, "price": 100, "season": "fall", "_comment": "Sunflower Seeds" },
  59.     { "item_id": 425, "price": -1, "season": "fall", "_comment": "Fairy Seeds" },
  60.     { "item_id": 299, "price": -1, "season": "fall", "_comment": "Amaranth Seeds" },
  61.     { "item_id": 301, "price": -1, "season": "fall", "_comment": "Grape Starter" },
  62.     { "item_id": 489, "price": -1, "season": "fall", "year": 2, "_comment": "Artichoke Seeds" },
  63.     { "item_id": 297, "price": -1, "_comment": "Grass Starter" },
  64.     { "item_id": 297, "price_static": 1000, "amount": 1, "recipe": true, "_comment": "Grass Starter (Recipe), only listed if not known yet. Uses static price (not affected by discounts or multipliers)." },
  65.     { "item_id": 245, "price": -1, "_comment": "Sugar" },
  66.     { "item_id": 246, "price": -1, "_comment": "Wheat Flour" },
  67.     { "item_id": 423, "price": -1, "_comment": "Rice" },
  68.     { "item_id": 247, "price": -1, "_comment": "Oil" },
  69.     { "item_id": 419, "price": -1, "_comment": "Vinegar" },
  70.     { "item_id": 368, "price": 50, "days_played": 15, "_comment": "Basic Fertilizer (only after you've played 15 or more days)" },
  71.     { "item_id": 370, "price": 50, "days_played": 15, "_comment": "Basic Retaining Soil (only after you've played 15 or more days)" },
  72.     { "item_id": 465, "price": 50, "days_played": 15, "_comment": "Speed-Gro (only after you've played 15 or more days)" },
  73.     { "item_id": 369, "price": 75, "year": 2, "_comment": "Quality Fertilizer" },
  74.     { "item_id": 371, "price": 75, "year": 2, "_comment": "Quality Retaining Soil" },
  75.     { "item_id": 466, "price": 75, "year": 2, "_comment": "Deluxe Speed-Gro" },
  76.     { "type": "wallpaper", "item_id": "random_wallpaper", "price": -1,  "_comment": "Randomly selected wallpaper which changes every day (the real game code calculates a random item ID for it), except the Joja Wallpaper." },
  77.     { "type": "wallpaper", "item_id": "random_flooring", "price": -1,  "_comment": "Randomly selected flooring which changes every day (the real game code calculates a random item ID for it). Uses the Wallpaper item type even though it's flooring." },
  78.     { "type": "furniture", "item_id": 1308, "price": -1, "_comment": "Catalogue" },
  79.     { "item_id": 628, "price": 1700, "_comment": "Cherry Sapling" },
  80.     { "item_id": 629, "price": 1000, "_comment": "Apricot Sapling" },
  81.     { "item_id": 630, "price": 2000, "_comment": "Orange Sapling" },
  82.     { "item_id": 631, "price": 3000, "_comment": "Peach Sapling" },
  83.     { "item_id": 632, "price": 3000, "_comment": "Pomegranate Sapling" },
  84.     { "item_id": 633, "price": 2000, "_comment": "Apple Sapling" },
  85.     { "type": "player_buyback", "item_id": "sold_items", "_comment": "A dynamically generated list of items that the player has previously sold to Pierre" },
  86.     { "item_id": 458, "price": -1, "has_dating_candidate": true, "_comment": "Bouquet (only if dateable friend with 8+ hearts; checked via Game1.player.hasAFriendWithHeartLevel(8, true))" }
  87.   ],
  88.   "joja": [
  89.     { "type": "big_craftable", "item_id": 272, "price_static": 50000, "event_seen": 502261, "_comment": "Auto-Petter (only after completing the Joja Community Development Form). Uses static price (not affected by discounts or multipliers)." },
  90.     { "item_id": 167, "price_static": 75, "_comment": "Joja Cola. Uses static price (not affected by discounts or multipliers)." },
  91.     { "type": "wallpaper", "item_id": "joja_wallpaper", "price_static": 20, "_comment": "Joja Wallpaper. Uses static price (not affected by discounts or multipliers)." },
  92.     { "type": "furniture", "item_id": 1609, "price_static": 500, "_comment": "J. Cola Light (a painting). Uses static price (not affected by discounts or multipliers)." },
  93.     { "item_id": 472, "price": -1, "season": "spring", "_comment": "Parsnip Seeds" },
  94.     { "item_id": 473, "price": -1, "season": "spring", "_comment": "Bean Starter" },
  95.     { "item_id": 474, "price": -1, "season": "spring", "_comment": "Cauliflower Seeds" },
  96.     { "item_id": 475, "price": -1, "season": "spring", "_comment": "Potato Seeds" },
  97.     { "item_id": 427, "price": -1, "season": "spring", "_comment": "Tulip Bulb" },
  98.     { "item_id": 429, "price": -1, "season": "spring", "_comment": "Jazz Seeds" },
  99.     { "item_id": 477, "price": -1, "season": "spring", "_comment": "Kale Seeds" },
  100.     { "item_id": 480, "price": -1, "season": "summer", "_comment": "Tomato Seeds" },
  101.     { "item_id": 482, "price": -1, "season": "summer", "_comment": "Pepper Seeds" },
  102.     { "item_id": 483, "price": -1, "season": "summer", "_comment": "Wheat Seeds" },
  103.     { "item_id": 484, "price": -1, "season": "summer", "_comment": "Radish Seeds" },
  104.     { "item_id": 479, "price": -1, "season": "summer", "_comment": "Melon Seeds" },
  105.     { "item_id": 302, "price": -1, "season": "summer", "_comment": "Hops Starter" },
  106.     { "item_id": 453, "price": -1, "season": "summer", "_comment": "Poppy Seeds" },
  107.     { "item_id": 455, "price": -1, "season": "summer", "_comment": "Spangle Seeds" },
  108.     { "item_id": 431, "price": 50, "season": "summer", "_comment": "Sunflower Seeds" },
  109.     { "item_id": 487, "price": -1, "season": "fall", "_comment": "Corn Seeds" },
  110.     { "item_id": 488, "price": -1, "season": "fall", "_comment": "Eggplant Seeds" },
  111.     { "item_id": 483, "price": -1, "season": "fall", "_comment": "Wheat Seeds" },
  112.     { "item_id": 490, "price": -1, "season": "fall", "_comment": "Pumpkin Seeds" },
  113.     { "item_id": 299, "price": -1, "season": "fall", "_comment": "Amaranth Seeds" },
  114.     { "item_id": 301, "price": -1, "season": "fall", "_comment": "Grape Starter" },
  115.     { "item_id": 492, "price": -1, "season": "fall", "_comment": "Yam Seeds" },
  116.     { "item_id": 491, "price": -1, "season": "fall", "_comment": "Bok Choy Seeds" },
  117.     { "item_id": 493, "price": -1, "season": "fall", "_comment": "Cranberry Seeds" },
  118.     { "item_id": 431, "price": 50, "season": "fall", "_comment": "Sunflower Seeds" },
  119.     { "item_id": 425, "price": -1, "season": "fall", "_comment": "Fairy Seeds" },
  120.     { "item_id": 297, "price": -1, "_comment": "Grass Starter" },
  121.     { "item_id": 245, "price": -1, "_comment": "Sugar" },
  122.     { "item_id": 246, "price": -1, "_comment": "Wheat Flour" },
  123.     { "item_id": 423, "price": -1, "_comment": "Rice" },
  124.     { "type": "wallpaper", "item_id": "random_wallpaper", "price_static": 250,  "_comment": "Uses static price (not affected by discounts or multipliers). Randomly selected wallpaper which changes every day (the real game code calculates a random item ID for it), except the Joja Wallpaper. Different random number seed than Pierre's, so a wallpaper that is sold at JojaMart will be sold at Pierre's General Store on the following day." },
  125.     { "type": "wallpaper", "item_id": "random_flooring", "price_static": 250,  "_comment": "Uses static price (not affected by discounts or multipliers). Randomly selected flooring which changes every day (the real game code calculates a random item ID for it). Uses the Wallpaper item type even though it's flooring. Different random number seed than Pierre's, so a wallpaper that is sold at JojaMart will be sold at Pierre's General Store on the following day." }
  126.   ],
  127.   "pierres_unique_items": [
  128.     { "item_id": 476, "price": -1, "season": "spring", "year": 2, "_comment": "Garlic Seeds" },
  129.     { "item_id": 273, "price": -1, "season": "spring", "year": 2, "_comment": "Rice Shoot" },
  130.     { "item_id": 481, "price": -1, "season": "summer", "_comment": "Blueberry Seeds" },
  131.     { "item_id": 487, "price": -1, "season": "summer", "_comment": "Corn Seeds" },
  132.     { "item_id": 431, "price": 100, "season": "summer", "_comment": "Sunflower Seeds" },
  133.     { "item_id": 485, "price": -1, "season": "summer", "year": 2, "_comment": "Red Cabbage Seeds" },
  134.     { "item_id": 431, "price": 100, "season": "fall", "_comment": "Sunflower Seeds" },
  135.     { "item_id": 489, "price": -1, "season": "fall", "year": 2, "_comment": "Artichoke Seeds" },
  136.     { "item_id": 297, "price_static": 1000, "amount": 1, "recipe": true, "_comment": "Grass Starter (Recipe), only listed if not known yet. Uses static price (not affected by discounts or multipliers)." },
  137.     { "item_id": 247, "price": -1, "_comment": "Oil" },
  138.     { "item_id": 419, "price": -1, "_comment": "Vinegar" },
  139.     { "item_id": 368, "price": 50, "days_played": 15, "_comment": "Basic Fertilizer (only after you've played 15 or more days)" },
  140.     { "item_id": 370, "price": 50, "days_played": 15, "_comment": "Basic Retaining Soil (only after you've played 15 or more days)" },
  141.     { "item_id": 465, "price": 50, "days_played": 15, "_comment": "Speed-Gro (only after you've played 15 or more days)" },
  142.     { "item_id": 369, "price": 75, "year": 2, "_comment": "Quality Fertilizer" },
  143.     { "item_id": 371, "price": 75, "year": 2, "_comment": "Quality Retaining Soil" },
  144.     { "item_id": 466, "price": 75, "year": 2, "_comment": "Deluxe Speed-Gro" },
  145.     { "type": "wallpaper", "item_id": "random_wallpaper", "price": -1,  "_comment": "Randomly selected wallpaper which changes every day (the real game code calculates a random item ID for it), except the Joja Wallpaper." },
  146.     { "type": "wallpaper", "item_id": "random_flooring", "price": -1,  "_comment": "Randomly selected flooring which changes every day (the real game code calculates a random item ID for it). Uses the Wallpaper item type even though it's flooring." },
  147.     { "type": "furniture", "item_id": 1308, "price": -1, "_comment": "Catalogue" },
  148.     { "item_id": 628, "price": 1700, "_comment": "Cherry Sapling" },
  149.     { "item_id": 629, "price": 1000, "_comment": "Apricot Sapling" },
  150.     { "item_id": 630, "price": 2000, "_comment": "Orange Sapling" },
  151.     { "item_id": 631, "price": 3000, "_comment": "Peach Sapling" },
  152.     { "item_id": 632, "price": 3000, "_comment": "Pomegranate Sapling" },
  153.     { "item_id": 633, "price": 2000, "_comment": "Apple Sapling" },
  154.     { "type": "player_buyback", "item_id": "sold_items", "_comment": "A dynamically generated list of items that the player has previously sold to Pierre" },
  155.     { "item_id": 458, "price": -1, "has_dating_candidate": true, "_comment": "Bouquet (only if dateable friend with 8+ hearts; checked via Game1.player.hasAFriendWithHeartLevel(8, true))" }
  156.   ],
  157.   "joja_unique_items": [
  158.     { "type": "big_craftable", "item_id": 272, "price_static": 50000, "event_seen": 502261, "_comment": "Auto-Petter (only after completing the Joja Community Development Form). Uses static price (not affected by discounts or multipliers)." },
  159.     { "item_id": 167, "price_static": 75, "_comment": "Joja Cola. Uses static price (not affected by discounts or multipliers)." },
  160.     { "type": "wallpaper", "item_id": "joja_wallpaper", "price_static": 20, "_comment": "Joja Wallpaper. Uses static price (not affected by discounts or multipliers)." },
  161.     { "type": "furniture", "item_id": 1609, "price_static": 500, "_comment": "J. Cola Light (a painting). Uses static price (not affected by discounts or multipliers)." },
  162.     { "item_id": 431, "price": 50, "season": "summer", "_comment": "Sunflower Seeds" },
  163.     { "item_id": 431, "price": 50, "season": "fall", "_comment": "Sunflower Seeds" },
  164.     { "type": "wallpaper", "item_id": "random_wallpaper", "price_static": 250,  "_comment": "Uses static price (not affected by discounts or multipliers). Randomly selected wallpaper which changes every day (the real game code calculates a random item ID for it), except the Joja Wallpaper. Different random number seed than Pierre's, so a wallpaper that is sold at JojaMart will be sold at Pierre's General Store on the following day." },
  165.     { "type": "wallpaper", "item_id": "random_flooring", "price_static": 250,  "_comment": "Uses static price (not affected by discounts or multipliers). Randomly selected flooring which changes every day (the real game code calculates a random item ID for it). Uses the Wallpaper item type even though it's flooring. Different random number seed than Pierre's, so a wallpaper that is sold at JojaMart will be sold at Pierre's General Store on the following day." }
  166.   ]
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement