- Site Map >
- Modding and Creation >
- Sims 4 Creation >
- Tutorials >
- General Modding - Custom Foods: An overview
- Site Map >
- Modding and Creation >
- Sims 4 Creation >
- Tutorials >
- General Modding - Custom Foods: An overview
Posts: 11,006
Thanks: 422651 in 1121 Posts
- The actual food objects: most of the time that will be one for the single serving (with different geometry states for full and half eaten), and one or two objects for Family and Party size servings (some foods only seem to have the latter, like cakes). Where necessary one can also add custom props for the cooking process, like mixing bowls and pots.
- Object tuning for the food items: this is kind of optional since it's not very exciting (one can simply re-use an existing one when there's no good reason not to).
- Recipes that define how to craft the foods: the simplest case would be something like the cereal with just one GetCraftableFromObject phase; most of the cooking recipes are more involved with multiple transitions and turn-based counter interactions etc. But when you start by copying an existing set of recipes (there's always one per serving size) you basically only need to adjust it a little bit.
- Interactions that make use of those recipes: one way to get a new recipe into the game would be to add it to the recipe list in an existing interaction (like fridge_Cook), but I don't know how it would work to do that via scripting (and the alternative, overriding that interaction, is pretty much a guarantee for collisions). I also suspect fiddling with the interactions in realtime might be a little performance intensive. So the next best thing I could think of (that's what I did for the foods linked above, at least) is to make a bunch of custom interactions instead, each of which lists only the custom recipes, and add those to the fridge and stove objects (see the stickied thread in Modding Discussion on how to do that). The disadvantage of this is that for the picker interactions, each one results in a new pie menu item since those do not have categories; OTOH with the pie menu interactions ("Serve Dinner" and such) this works very well even when there's one interaction per recipe.
- A script that adds said interactions to the relevant objects (stoves, fridges, microwaves etc; depending on what recipe it is). If your object is custom (like this Juice Blender) you can of course add them directly to the super_affordance lists in the object tuning.
Food objects:
When all one needs is a new texture on an existing food (they sometimes have very similar meshes, like chili and salad and parfait .. it's all just a bunch of stuff in a bowl), simply clone it in TSRW, import a new texture ("Materials" tab, or edit the reference in s4pe) and you're good to go. When changing the mesh, one needs to reassign the geometry states afterwards, which is a bit fiddly when they overlap one another ("Mesh" tab; click on the little plus sign in front of the geostates list in each group, then click on the name + three dots button next to it. The "Hide Selected" option in combination with "Ignore Backfaces" unticked can be rather helpful for that). Don't forget to do this for all (both) LODs.
Note that right now, craftable objects need to have 32bit IDs. I posted about this so maybe it will change at some point in the future.
Recipes:
See the Recipe tuning description (tdesc) -- link to the latest version see this sticky (General Modding Discussion). A browser that makes the tdescs easier to read is available here (Tools forum). It's probably best to take a close look at a few different cooking procedures in game, and then pick one that's close to the desired result and copy the recipe for it as a starting point. The recipes usually have the (US English) name of the food in their internal name, e.g. "recipe_Food_Gourmet_Parfait-Single", so it should be pretty simple to find the correct one; copying/renaming works like with all other XML tuning (see here for a primer).
Some important parts (for the rest, just look in the tdesc):
1. Phases: This is the main part of any recipe (food or otherwise); it defines the chain of animations and transitions the sim performs in game in order to craft the result. They are often not listed in order: "_first_phases" (near the top) defines which phase to start with (most often that's "GetIngredientTray"); each subsequent phase in turn lists the name of the next one ("next_phases"). If the recipe you cloned already has a crafting procedure that works for your food, you can completely ignore that part, or if you want to change small things (like what exactly the sim is chopping on the cutting board), you can do that here by changing the affordance_links in each phase accordingly. The number in "affordance_links" is the decimal ID of the corresponding CraftingStepInteraction. Look at some Maxis recipes, or search the /Interaction XML subfolder (e.g. for "Counter_CuttingBoard_Chop"), to see what's available:
13267 Counter_CuttingBoard_Chop_Lettuce
13268 Counter_CuttingBoard_Chop_Onion
13269 Counter_CuttingBoard_Chop_Tomato
29636 Counter_CuttingBoard_Chop_Dough
29642 Counter_CuttingBoard_Chop_Chicken
29643 Counter_CuttingBoard_Chop_Bread
33851 Counter_CuttingBoard_Chop_Apple
33938 Counter_CuttingBoard_Chop_Beans
33939 Counter_CuttingBoard_Chop_FishFillet
33940 Counter_CuttingBoard_Chop_MeatRed
33941 Counter_CuttingBoard_Chop_Melon
33942 Counter_CuttingBoard_Chop_Shrimp
37104 Counter_CuttingBoard_Chop_Asparagus
76045 Counter_CuttingBoard_Chop_FishFillet_White
So in order to have your sim chop chicken instead of melon in a recipe cloned from "recipe_Food_Gourmet_Parfait-Single", change
<T>33941<!--CraftingStepInteraction: Counter_CuttingBoard_Chop_Melon--></T>
to
<T>29642<!--CraftingStepInteraction: Counter_CuttingBoard_Chop_Chicken--></T> (comment is optional, but you may want to remember what you did there)
in your copy and that's it.
2. Retail Price: Not sure what this does -- according to the tdesc it is used to calculate the final price, but in my game it makes no difference. Maybe it's the selling price in case meals can be sold in GtW, I wouldn't know.
3. Additional Tests: skill_test should be self explaining (if a sim doesn't have that skill, they can't make the recipe) -- note this is an additional test: gourmet foods test for homestyle cooking skill here, and for foods that require a stove or fridge, recipes also check for availability of power ("is_delinquent" FALSE = if the sim/household in question is not guilty of not having paid their bills, the test passes and they can cook).
4. Name: this is the key for the string resource (STBL) that has the name of this food. Should be the same as the name hash for the actual object, unless there's a good reason they need to be different. Next is also the phase interaction name (the string that is used for the interaction in the game interface, like "Make Fruit & Yogurt Parfait" or "Serve Fruit & Yogurt Parfait").
5. Skill Test: The actual skill test -- if you want to change required minimum skill, change the number in "lower_bound".
6. Ingredients: See the Ambrosia recipe for a Maxian example of required ingredients (food can only be made when they are available):
<T n="all_ingredients_required">True</T>
When this is set to False or is missing, the ingredients will be optional.
The list below that defines what those ingredients are; they can be defined by tag (like "Func_Ingredient_Fruit" -- any object that has this tag in the tag list in COBJ will fulfill this requirement) or by reference. In the latter case, the number in "ingredient_ref" is the actual object definition (i.e. the ID of the COBJ/OBJD, not the tuning!).
Common ingredients by reference:
22466 -- Lemon, 0x00000000000057C2 gardenFruitGENLemon
23437 -- Strawberry, 0x000000000000B500 gardenFruitGENStrawberry
45295 -- Potato, 0x000000000000B0EF gardenFruitGENPotato
45311 -- Mushroom, 0x000000000000B0FF gardenFruitGENMushroom
46336 -- Tomato, 0x000000000000B500 gardenFruitGENTomato
46396 -- Onion, 0x000000000000B53C gardenFruitGENOnion
47457 -- Spinach, 0x000000000000B961 gardenFlowerGENSpinach
45732 -- Basil, 0x000000000000B2A4 gardenFlowerGENBasil
45734 -- Parsley, 0x000000000000B2A6 gardenFlowerGENParsley
45040 -- Bass, 0x000000000000AFF0 collectFishMedGENBass
45115 -- Trout, 0x000000000000B03B collectFishMedGENTrout
44914 -- Tilapia, 0x000000000000AF72 collectFishMedGENTilapia
Common ingredients by tag:
Func_Ingredient_Fruit
Func_Ingredient_Herb
Func_Ingredient_Veggie
Func_Ingredient_Fish
To find ingredients that are not on this list, open fullbuild0 in s4pe and search for "gardenFlower" / "gardenFruit", filter for OBJD.
Interactions
This is pretty simple -- copy the interaction you want (look in a stove/fridge/etc object tuning for a list of relevant cooking interactions, e.g. fridge_Cook S4_E882D22F_00000000_000000000000344B), scroll down to "recipes", and put the ID (decimal) of your recipe(s) in there.
Scripts
See the sticky linked above. You need Python 3.3 to compile the script for public consumption, which you can get here. The download linked above also has a script that you can copy and amend (injector.py won't need changing; pbox_foods-custom_2015-12.py is where the action is: "pbox_customfoods_fridge_sa_instance_ids" is the list of my own custom interactions (decimal IDs) for the fridges, "pbox_customfoods_stove_sa_instance_ids" is the stove interactions. Put your IDs in there instead, add on to the object IDs as desired (right now this only has the IDs of the base game Maxis objects), and replace the "pbox_" part with your own name. For testing it's probably best to leave it uncompiled; when you're done open the Windows console (Start > Search > cmd.exe), type
cd C:\path\to\your\script
(i..e whichever directory your script resides in), and -- assuming you have Python installed in C:\Python33 -- type
C:\Python33\python.exe -O -m py_compile "name-of-your-script"
This turns on optimisation (-O) and gives the built-in module (-m) named "py_compile" the name of your file to do its thing with (namely, compiling). It will generate a folder "__pycache__" in the same directory as your script, where you'll find the .pyo. This (and the injector.pyo) needs to be zipped; as of a handful of patches ago TS4 can digest .zip as .ts4script (simply rename the .zip), which hopefully helps to avoid users accidentially unzipping it. See also here.
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Thanks
Posts: 164
Thanks: 15692 in 10 Posts
ETA: Are you going to be updating recipes with new ingredients, or should I continue on? I made a few rough meshes and identified ingredients I'd like to add for existing recipes
Posts: 11,006
Thanks: 422651 in 1121 Posts
Re. new ingredients, two obvious additions I wanted to make at some point are eggs and chicken, but I haven't started doing anything yet (one of the cutting boards is with chicken anyway, so one could just recycle that). Please just go ahead, I won't be doing much in the next two weeks or so I think.
We (or rather, I) should probably split up recipes in smaller batches to make it easier for users to combine variants from different sources .. like if you'd make egg and modify the pancakes, they could use your pancake recipes and my salads and someone else's grilled salmon. Right now we're colliding head first XD. I don't have a good idea how to group them, though, apart from the obvious "one recipe (small, medium large) per package". Do you have a better idea, maybe?
(Also, two users have been reporting issues getting those custom foods to work .. unless it turns out to be something blatantly obvious (like not having unzipped the .ts4script, but I've been trying to rule that out), I'm at a loss as to what the issue might be =/)
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 164
Thanks: 15692 in 10 Posts
I'd be up for splitting things! I'm very, very close to having new ingredients work (eggs first, of course), but seem to be missing SOMEthing. I'll upload what I have tomorrow, since fresh eyes would probably see what's wrong right away
Posts: 11,006
Thanks: 422651 in 1121 Posts
I've started to split up mine now (one package per recipe, small/medium/large in the same package) -- I'd say we should use the original internal names for package names, to make it unambiguous which is which. Except for the fish + chips which would end up being Fish&Chips that way =P. So mine are like "pbox_recipe_SandwichMonteCristo", "pbox_recipe_FrenchToast", etc now .. also the tuna casserole that I turned into a generic fish casserole is "CasseroleTuna".
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 164
Thanks: 15692 in 10 Posts
Posts: 11,006
Thanks: 422651 in 1121 Posts
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 725
Thanks: 67157 in 117 Posts
Seems I will not be converting my foods to TS4 then. I neither use TSR Workshop, nor do I have any experience with script modding or Python.
Posts: 122
Posts: 11,006
Thanks: 422651 in 1121 Posts
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 1,408
Thanks: 110467 in 109 Posts
In the meantime I will poke in your food packages if you don't mind.
Edit: Is it as simple as creating a custom interaction tuning using your example and just replacing your custom ids in 'pbox_customfoods_fridge_sa_instance_ids' and 'pbox_customfoods_stove_sa_instance_ids' with my custom ids in the script ? Or is it something much more complicated which is going way over my head
Posts: 11,006
Thanks: 422651 in 1121 Posts
You should doublecheck which objects exactly your interactions need to be added to -- maybe you need more or different objects, like microwaves or EP stoves; also make sure you don't add stuff to stove interactions that doesn't need a stove to prepare, like cold meals. Also, like you say, please don't name your IDs "pbox" =) -- simply replace the "pbox" with "icemunmun" and you should be good to go.
For testing/editing, you can run your script from a subfolder like Mods/myfoodstuff/Scripts ( <-- needs to be named exactly like this: "Scripts", and it can't be more than one subfolder deep). This is very practical when you're still editing it; IIRC you can even edit the script while the game is running, in order to add or correct things (it's been a while since I did that, though).
Please be aware that if you re-use my stuff, CC NC-BY-SA applies (i.e. if you publish anything based on it, you will need to include the source code and allow others to re-use your work as well).
--
An unsolved issue right now: For the picker menus ("Cook Custom Meal" and the like), each new interaction results in a new menu unfortunately (since "Cook Meal" does not have its own pie menu category =/ ); this is why I keep updating my interactions when I make new foods (instead of giving each food its own interaction. Maybe it would be worthwhile to create one "big bucket of foods" interaction that everybody shares, where people add their recipes whenever they create new foods? We can set up shared accounts for modding groups on mts; if all the food-inclined modders would join such a group I could reupload the interactions with that group account, then everybody could add on to the script and interactions whenever they create a new food. It doesn't hurt anything when an interaction includes recipes that people don't have, they simply won't show up then.
Maybe it would also work to override the regular Cook Meal interaction so that it's using a pie menu .. then people could make their interactions use the same pie menu. But that would mean that users would need to download one more thing for the whole setup to work.
Let me know if you have other suggestions! =)
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 1,408
Thanks: 110467 in 109 Posts
Edit:Now I can see your post ( Your post shows up after I tried to doublepost.)
Thanks for the information.
I have opened up your ts4script with 7zip and looked at the source.Thanks for letting people use your script .And I will follow the CC NC-BY-SA.
So , I mainly need to work at figuring out which interactions are appropriate for the recipes.I will start with something simple like a salad ( following the garden salad which only requires a refrigerator) and see how far I can proceed.
A common Interaction with a separate download post for it will be a good idea to prevent unnecessary cluttering .( for example like Douglasveiga's CCLoader which is a common file required for all custom recipes for Sims 3 and circumvents the need for additional scripting for each new recipe. )
Posts: 11,006
Thanks: 422651 in 1121 Posts
Thanks a lot for that link to CCLoader -- I didn't follow TS3 modding much, so that is new to me =). I'll definitely take a look at it; maybe there's some good ideas we can re-use.
To figure out which interactions I needed to clone for my foods, I grabbed a similar recipe (Chili in the case of the soups) and searched the /BG XML folder for its ID. Every interaction that has Chili in the recipe list should also have soups, was the idea (they are prepared in a similar way, they both require a stove).
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 1,408
Thanks: 110467 in 109 Posts
1. I cloned gardensalad_single and garden salad_multi using S4S and changed the textures
2. Extracted the 3 recipe tuning of garden salad for single,medium and large and
3. Edited the XML ( I poked in your package to find out which ones I have to change).I did not define a custom mixing bowl like you did though.
4.My custom recipe tunungs:
icemunmun_recipe_Food_Homestyle_AutumnSalad-Single
icemunmun_recipe_Food_Homestyle_AutumnSalad-Medium
icemunmun_recipe_Food_Homestyle_AutumnSalad-Large
5.Extracted 7 fridge interaction tuning with custom ids. (I made my custom interaction ids separate instead of adding to yours to test things out)
My custom tuning-
icemunmun_fridge_Cook_PieMenu_CustomDinner_8Servings_Ingredients = 4737457361615045960
icemunmun_fridge_Cook_PieMenu_CustomLunch_1Serving_Ingredients = 1994509380498039986
icemunmun_fridge_Cook_PieMenu_CustomLunch_8Servings_Ingredients = 16537569335734133162
icemunmun_fridge_Cook_PieMenu_CustomDinner_1Serving_Ingredients = 11063287011038247672
icemunmun_fridge_CookCustomMeal-Autonomously = 15325221105365539183
icemunmun_fridge_CookCustomMeal = 14331236663124829657
icemunmun_fridge_CookCustomGroupMeal-Autonomously = 4383215468735259248
6. Added the custom interaction ids to pbox_customfoods_fridge_sa_instance_ids in your script
Now my list of issues:
1.I got the cook custom food interaction to show up but I am getting a blue thumbnail and the party option is greyed out
2. I can start making the recipe but it stops midway.When I click the resume option nothing happens
(I have attached the pictures)
The recipe and interaction files along with your edited scripts attached
What should i do now?
icemunmun_Recipe_and_EditedScript.7z (96.7 KB, 33 downloads) - View custom content | ||||||||||||||||||
Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2016-01-18 07:32:20 D.... 0 0 icemunmun_Recipe_and_EditedScript 2016-01-18 07:30:47 D.... 0 0 icemunmun_Recipe_and_EditedScript/Scripts 2016-01-17 17:23:16 ....A 8895 98672 icemunmun_Recipe_and_EditedScript/Autmn Salad_interaction Tuning.package 2016-01-17 15:55:08 ....A 66597 icemunmun_Recipe_and_EditedScript/Garden Salad Clone_multi.package 2016-01-18 06:51:02 ....A 58202 icemunmun_Recipe_and_EditedScript/Garden Salad Clone_single.package 2014-09-29 15:25:20 ....A 889 icemunmun_Recipe_and_EditedScript/Scripts/injector.py 2016-01-17 16:45:22 ....A 2412 icemunmun_Recipe_and_EditedScript/Scripts/pbox_foods-custom_2016-01.py ------------------- ----- ------------ ------------ ------------------------ 136995 98672 5 files, 2 folders |
Posts: 11,006
Thanks: 422651 in 1121 Posts
icemunmun_recipe_Food_Homestyle_AutumnSalad-Single:
<T n="definition">852942283<!--icemunmun_Food_Homestyle_AutumnSalad_Single--></T> |
This is looking for an OBJD/COBJ with instance 0x32D6DDCB, group 0. Your actual food object has 0x826D4D62847128F6, group 0x80000000. I suppose it's the same with the other recipes. To fix this, open the package in s4pe and renumber the COBJ and OBJD (select resource, doubleclick -- you can just paste the decimal in there, it'll convert it).
(Also, for the script please do not name your module and variables "pbox" -- please use your own namespace! You don't need to add any interactions other than your own, as well.)
Also, there is no need to clone the bowl textures and the footpirnt/rig/slots; since you're not changing the mesh you can just use the original.
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 1,408
Thanks: 110467 in 109 Posts
Your recipes are pointing to the wrong definitions. This is looking for an OBJD/COBJ with instance 0x32D6DDCB, group 0. Your actual food object has 0x826D4D62847128F6, group 0x80000000. I suppose it's the same with the other recipes. To fix this, open the package in s4pe and renumber the COBJ and OBJD (select resource, doubleclick -- you can just paste the decimal in there, it'll convert it). |
Oh...I completely missed that(I do the same thing for sims 3 recipes but completely missed it here!).Thank you so much.Now it shows up properly.
(Also, for the script please do not name your module and variables "pbox" -- please use your own namespace! You don't need to add any interactions other than your own, as well.) |
Yes I have edited the script with my own 'namespace' . I was adding to your script to check whether I was doing something wrong on the script.Back to using my own as the culprit was not the script
Thank you so much for your help :lovestruc .
But the different custom custom meal options for different creators are going to really clutter up the pie-menu...have you found a solution for that?
Posts: 11,006
Thanks: 422651 in 1121 Posts
Yes I have edited the script with my own 'namespace' . I was adding to your script to check whether I was doing something wrong on the script.Back to using my own as the culprit was not the script |
Ah, I see -- yes, for testing that makes sense of course =)
But the different custom custom meal options for different creators are going to really clutter up the pie-menu...have you found a solution for that? |
Well I see two options here:
Like I already said above, there might be a way to add on to the recipe list in the existing picker interaction with a script but a) I don't know if that is feasible and b) it might be a horrible idea anyway, performance wise.
Other than that, when you only want to add a food to the existing pie menus (like Serve Breakfast and so on), that should work independently .. it's only the picker menu that is lacking the category.
E: No categories for pickers, at all:
<TunableVariant type="None" name="pie_menu_option" class="OptionalTunable" default="use_picker" display="Pie Menu Option" muid="5CAC27BACBB8D8A9" description="Whether use Pie Menu to show choices other than picker dialog." Deprecated="False" filter="0" group="Picker Tuning"> <Tunable name="use_picker" class="TunableExistance" display="Use Picker" muid="74995D6F7CF1BE5C" /> <TunableTuple name="use_pie_menu" class="_TunablePieMenuOptionTuple" display="Use Pie Menu" muid="271777F37EA728E6" Deprecated="False" filter="0" group="General"> <Tunable type="pie_menu_category" name="pie_menu_category" class="TunableReference" display="Pie Menu Category" muid="18AA58C4AAA98A0" description="If set, then the generated Pie Menu interaction will be
categorized under this Pie Menu category, as opposed to using
the interaction's Pie Menu category." allow_none="True" Deprecated="False" filter="0" group="UI" /> <Tunable type="int" name="pie_menu_name" class="TunableLocalizedString" default="0x0" display="Pie Menu Name" muid="D67BE6258021B08E" description="The localized name for the pie menu item. The content should
always have {2.String} to wrap picker row data's name." Deprecated="False" filter="0" group="General" /> <Tunable type="bool" name="show_disabled_item" class="Tunable" default="False" display="Show Disabled Item" muid="DA7B3D8BC08D7ABD" description="If checked, the disabled item will show as disabled in the Pie
Menu with a greyed-out tooltip. Otherwise the disabled item will
not show up in the pie menu." Deprecated="False" filter="0" group="General" /> </TunableTuple> </TunableVariant>
E: I posted in the Maxian modding forum to see whether anyone can think of another way to do this .. if not, I guess founding a Food Group would be the next best thing. For now I can also add your recipes to my interactions if you tell me the final IDs.
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 1,408
Thanks: 110467 in 109 Posts
Assigning geostates for the bowls are bit tricky as they sit on top of each other and the bottom surface is hard to access!
Posts: 11,006
Thanks: 422651 in 1121 Posts
With the bowls, try using the "Hide Selected" option, possibly in combination with Ignore Backfaces turned off. The clicky-something option can also unselect when you have .. umm, I think Shift pressed. Or rightclick. Don't remember what it was. Sometimes it might make sense to first select everything, then unselect the parts you don't want.
You can hide groups as well, while assigning states for other groups.
Are you sure you need a custom mesh for your bowl food? Asking since sims eat so much stuff out of bowls, there's a lot of variations available already. You can also re-use my soup/pudding mesh if a flat top would work for you.
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 1,408
Thanks: 110467 in 109 Posts
Yes....Sadly,I know about those tricks about geostates and still find it a bit troublesome.Unselecting is by shift click. Its a beast for Sims 3 too.I finally managed to do it by selecting the outer bowl state first.
But I will follow your advice and try retexturing first.Extracting the uv map and retexturing it will be a faster process.No reason to unusually complicate things and go the tediouys way .
Posts: 1,408
Thanks: 110467 in 109 Posts
Medium-Family size (4) has ingredient requirement<T n="count">4</T> and Large-Party Size (8) has ingredient requirement <T n="count">8</T> but the menu shows a higher price for family size even though the ingredient required is less
Posts: 11,006
Thanks: 422651 in 1121 Posts
* checks *
Here you go:
The price in brackets is the sum total of flat fee + ingredients, i.e. how much it costs when none of the ingredients are available (the game uses a fixed average value for the latter though, unfortunately (the 5§/6§ I mentioned above), not the actual price of each individual ingredient:
Quote: Originally posted by Recipe.tdesc
(..) GtW users: The recipes have a _retail_price variable that seems not to be doing what the Maxian description says it does ("This is not the total price of the recipe. The total price of the recipe will be _retail_price + delta_ingredient_price -- in my testing the total price is flat_fee + delta_ingredient_price), so I'm guessing this is probably used for selling prepared meals in stores (assuming that is possible). Since I don't have GtW I can't check; let me know if putting meals on sale results in weirdly high or low prices. |
Quote from my Logical Cooking upload.
I think what happened there is that your _retail_price and flat_fee are out of sync.
E: ooh, you made fruit salad! I started to do that but didn't like the texture .. good to see that will solve itself now .
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Posts: 1,408
Thanks: 110467 in 109 Posts
1.Retail Price
2.Flat Price
3.Delta Price
My Retail Price and Delta Price were out of sync .After adjusting them , the prices are according to order now
Thank you .I am going to upload it now
Posts: 11,006
Thanks: 422651 in 1121 Posts
Stuff for TS2 · TS3 · TS4 | Please do not PM me with technical questions – we have Create forums for that.
In the kingdom of the blind, do as the Romans do.
Who Posted
|