Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Lab Assistant
Original Poster
#1 Old 12th Apr 2020 at 4:24 AM Last edited by TheSimKid : 26th Apr 2020 at 7:05 PM. Reason: strings/xml package
Default UI Mod: Creating New Build-Buy Categories (COMPANION FORUM)
Hi all. For years now I have been working on a recategorization mod that works to reorganize the cluttered Sims 3 build-buy catalog into one more akin to the Sims 4. I'm not the very best at coding and I have no C# skills, but I've managed to somewhat create new categories for build-buy by editing the BuyCatalog.xml, but I can't seem to add text to these categories or be able to move items into the categories. I cannot use the grid in S3PE or S3OC since these are new categories.

For example: TS3 has refrigerator or stove categories, but rather a "large appliances" category. I want to create these new sections and change the objd to those categories.

Could anyone give advice who has some experience in modding the UI for TS3?

I figured out how to add text strings, but I still can't figure out how to move the objects into the new categories. But I'm getting closer!

My ongoing project is listed below...
BIG PROJECT: Let's Recategorize the Sims 3 Catalog! Build Buy Overhaul! (FEEDBACK WANTED)
Screenshots
Attached files:
File Type: zip  thesimkid_recats_UI.zip (7.7 KB, 64 downloads)
Description: contains strings and xml (testing purposes only)
Advertisement
Scholar
#2 Old 13th Apr 2020 at 6:47 PM
TS3 uses c# not python. What do you mean by can't use the grid in S3PE?

If you like my mods. Consider supporting me on Patreon
Check out my website for updates on my mods and other work PuddingFace.wixsite.com
Check out my Youtube channel for tutorials(modding tutorials) and other content Youtube

Follow me on Twitter Instagram Pinterest Tumblr
Lab Assistant
Original Poster
#3 Old 13th Apr 2020 at 7:45 PM Last edited by TheSimKid : 14th Apr 2020 at 3:44 AM.
Quote: Originally posted by PuddingFace
TS3 uses c# not python. What do you mean by can't use the grid in S3PE?

In s3pe, you can modify the preview parameters through the use of the grid. If I'm making new categories, I can't use this method to recategorize objects. I also can't move objects into the stage props, boats, and resort categories since they are locked behind the subcategoryflags2. I wonder if it is possible to create new categories and modify their "sort code" to these new categories.

Here's the tutorial for reference:
Tutorial: Sims 3 Catalog Reorganization
Lab Assistant
#4 Old 16th Apr 2020 at 4:13 AM
oh my ... this has been on my mod wish list.... for ever! i hope you are able to complete this and share!
Virtual gardener
staff: administrator
#5 Old 16th Apr 2020 at 10:39 AM
With "I wonder if it is possible to create new categories and modify their "sort code" to these new categories." You mean as in adding more of those "blocks" or "Furniture" piece to click on, right? 

I decided to check out the source code on how that's being loaded in and how it gets all the objects/furniture. And it's actually all quite dynamic! Build mode is too but that goes beyond the point :p

Quote:
For example: TS3 has refrigerator or stove categories, but rather a "large appliances" category. I want to create these new sections and change the objd to those categories.

Now, adding custom categories like that... it really depends on its complexity. The way how objects are "found and sorted" is primarily it's "productKey". The high priority in this type of sorting is first the ObjectGuid's "BuildBuyProductStatusFlags" (See, OBJD > Grid > CommonBlock), then, it seems to be getting the ObjectTypeFlags (Which is also in the OBJD). And after that, it's the more "Sub-like" Like which room it's sorted in. That however, is more important depending on which "Menu" you're in. but in the "back", the ProductKey and ObjectTypeFlags are important. 

Now with that out of the way:

So, the XML file, can indeed "Add" different sections to, say, the debug category. that XML, however, is only relevant for the "furniture setup" (I believe, but can't say for certain) menu. But it does take more than a simple XML edit. "By category" or in S3PE's naming "FunctionCategoryFlags" is indeed customizable. but only on a hex-editing level. The reason is just due to the way how S3PE has been made. 

TL;DR: nope you don't need C# knowledge, but you do need a hex editor :p But that's just a theory, though.
Lab Assistant
Original Poster
#6 Old 16th Apr 2020 at 10:39 PM
Thanks for responding. Over the past few days I've been experimenting and I think I've gotten farther, but I', still having a little difficulty moving the items into these new categories. I figured out how to modify the strings to add additional category text and the icons will need a little photoshop to scale correctly.

I'll have to play around and figure out how to write in hex code.

This is what I now have after a day or two of research. It's getting somewhat exciting!
Screenshots
Virtual gardener
staff: administrator
#7 Old 17th Apr 2020 at 11:36 AM
Yeah this is indeed the part where editing the flags in hex code is where it should work. I'll try and make a small tutorial for you here, whenever I can  Else it feels a little like I'm leaving you in the dark in such an advanced, yet simple, thing!  

If you don't mind, is it okay if you post the package here? That way I can test my hex editing theory with your edits! It' okay if the icons are too big, it just makes it easier to make that tutorial
Lab Assistant
Original Poster
#8 Old 24th Apr 2020 at 7:50 PM
Quote: Originally posted by Lyralei
Yeah this is indeed the part where editing the flags in hex code is where it should work. I'll try and make a small tutorial for you here, whenever I can  Else it feels a little like I'm leaving you in the dark in such an advanced, yet simple, thing!  

If you don't mind, is it okay if you post the package here? That way I can test my hex editing theory with your edits! It' okay if the icons are too big, it just makes it easier to make that tutorial


I uploaded the UI modification part so you could play around with it. Thank you in advance for the tutorial, I have no idea how hex code works. If there's also a way to resize the icons w/o me shrinking them in photoshop would be awesome.
Virtual gardener
staff: administrator
#9 Old 27th Apr 2020 at 3:48 PM
Quote: Originally posted by TheSimKid
I uploaded the UI modification part so you could play around with it. Thank you in advance for the tutorial, I have no idea how hex code works. If there's also a way to resize the icons w/o me shrinking them in photoshop would be awesome.
Thanks! I'll try look at it this week, although this week is quite chaotic for me as it is  Hopefully on friday i'll have some time left.
Test Subject
#10 Old 4th May 2020 at 8:11 AM
Quote: Originally posted by Lyralei
Thanks! I'll try look at it this week, although this week is quite chaotic for me as it is  Hopefully on friday i'll have some time left.


Hey guys! you both just made my day to say the least!
Is there any way at all I can help you?? I desperately need new categories. By now I have been changing the categories in S3PE grid and moving a lot of decor stuff in community lots, since most of my cc is either build mode or decor for me to have a lot of deco shops in the city I have been making. So glad to see more people playing in may 2020.
Lab Assistant
Original Poster
#11 Old 4th May 2020 at 9:08 PM
Quote: Originally posted by ummSultan
Hey guys! you both just made my day to say the least!
Is there any way at all I can help you?? I desperately need new categories. By now I have been changing the categories in S3PE grid and moving a lot of decor stuff in community lots, since most of my cc is either build mode or decor for me to have a lot of deco shops in the city I have been making. So glad to see more people playing in may 2020.


Thanks for commenting! Lyralei and I have been investigating how to modify the hex code of an object to move it to a new custom category. So far I have been able to create new categories via the buycatalog.xml and add text strings so the category names show up, but we don't know how to actually move the objects to those categories. I've tried SimsMX's recategorizer mod and S3PE and no luck with either yet. If you have some knowledge in how hex works for the sims 3 it would be of great assistance!

The XML files are posted above so maybe you could play around with it. I would love to be able to make fully operable new categories. Build mode is also an issue since I don't know how to add more categories to the community tab. I'd also like to unlock the resort category since Buzzler's mod only unlocks commercial objects (resorts are a different flag).
Virtual gardener
staff: administrator
#12 Old 18th Jun 2020 at 10:36 AM
Heya @TheSimKid !

I'm so so sorry about forgetting about this! I'm working on a test for it right now though  Hopefully it will work out and I can give you the instructions on working on it!
Virtual gardener
staff: administrator
#13 Old 18th Jun 2020 at 12:19 PM
Hiya!

Allright, so I checked it out and I didn't actually realise that the flag bits actually 'collects' the proper category through an Enum. So for example, in our xml file, we see:

Code:
<SubCategory name="Toys" localizedName="Ui/Caption/Buy/Catalog/SubCategory:Toys" flagBit="50" image="buy_catalog_toddlerToys_r2" />

The Flagbit is 50. And in the enum list, it's the '50th' entry of the enum:

Code:
    kBuySubCategoryMiscellaneousAppliances = 2uL,
    kBuySubCategorySmallAppliances = 4uL,
    kBuySubCategoryLargeAppliances = 8uL,
    kBuySubCategoryTombObjects = 0x10,
    kBuySubCategoryFishSpawners = 0x20,
    kBuySubCategoryPlantsAndSeedSpawners = 0x40,
    kBuySubCategoryTVs = 0x80,
    kBuySubCategoryMiscellaneousElectronics = 0x100,
    kBuySubCategoryRockGemMetalSpawners = 0x200,
    kBuySubCategoryAudio = 0x400,
    kBuySubCategoryComputers = 0x800,
    kBuySubCategoryHobbiesAndSkills = 0x1000,
    kBuySubCategorySportingGoods = 0x2000,
    kBuySubCategoryLivingChairs = 0x4000,
    kBuySubCategoryOldScience_UNUSED = 0x8000,
    kBuySubCategoryInsectSpawners = 0x10000,
    kBuySubCategoryParties = 0x20000,
    kBuySubCategoryMiscellaneousEntertainment = 0x40000,
    kBuySubCategoryCeilingLights = 0x80000,
    kBuySubCategoryFloorLamps = 0x100000,
    kBuySubCategoryTableLamps = 0x200000,
    kBuySubCategoryWallLamps = 0x400000,
    kBuySubCategoryOutdoorLights = 0x800000,
    kBuySubCategoryLoungeChairs = 0x1000000,
    kBuySubCategorySinks = 0x2000000,
    kBuySubCategoryToilets = 0x4000000,
    kBuySubCategoryShowersAndTubs = 0x8000000,
    kBuySubCategoryMiscellaneousDecor = 0x10000000,
    kBuySubCategorySculptures = 0x20000000,
    kBuySubCategoryPaintingsAndPosters = 0x40000000,
    kBuySubCategoryPlants = 0x80000000,
    kBuySubCategoryMirrors = 0x100000000,
    kBuySubCategoryOldToys_UNUSED = 0x200000000,
    kBuySubCategoryMiscObjects = 0x400000000,
    kBuySubCategoryBookshelves = 0x800000000,
    kBuySubCategoryDisplays = 0x1000000000,
    kBuySubCategoryDressers = 0x2000000000,
    kBuySubCategoryDiningChairs = 0x4000000000,
    kBuySubCategorySofasAndLoveseats = 0x8000000000,
    kBuySubCategoryMiscellaneousComfort = 0x10000000000,
    kBuySubCategoryRoofDecorations = 0x20000000000,
    kBuySubCategoryBeds = 0x40000000000,
    kBuySubCategoryDebug = 0x80000000000,
    kBuySubCategoryCoffeeTables = 0x100000000000,
    kBuySubCategoryCounters = 0x200000000000,
    kBuySubCategoryDesks = 0x400000000000,
    kBuySubCategoryEndTables = 0x800000000000,
    kBuySubCategoryDiningTables = 0x1000000000000,
    kBuySubCategoryFurniture = 0x2000000000000,
    kBuySubCategoryToys = 0x4000000000000,   // 50th! (See flabit)
    kBuySubCategoryCars = 0x8000000000000,
    kBuySubCategoryBicycles = 0x10000000000000,
    kBuySubCategoryCabinets = 0x20000000000000,
    kBuySubCategoryCurtainsAndBlinds = 0x40000000000000,
    kBuySubCategoryMiscellaneousKids = 0x80000000000000,
    kBuySubCategoryMiscellaneousLighting = 0x100000000000000,
    kBuySubCategoryMiscellaneousPlumbing = 0x200000000000000,
    kBuySubCategoryMiscellaneousStorage = 0x400000000000000,
    kBuySubCategoryMiscellaneousSurfaces = 0x800000000000000,
    kBuySubCategoryMiscellaneousVehicles = 0x1000000000000000,
    kBuySubCategoryRugs = 0x2000000000000000,
    kBuySubCategoryDefault = 9223372036854775808uL,
    kBuySubCategoryAll = ulong.MaxValue,
    kBuySubCategoryMiscellaneous = 2269815311975055618uL

Now, this does indeed require some C# knowledge. Enums are one of the only list-type-y things that you can't override or add an additional list to it with a simple script mod (Like List and Array can with the .AddRange/Add() function). So there's a workaround for this, but does require overriding the ENTIRE SimIFace.dll. It would also mean that any super-pure script/core mods won't work with this if they also override the SimIFace.dll for their mods.

I do want to mention that I haven't actually seen anyone who had made a core mod before with SimIFace.dll, so if we were to go down the route of adding more items to this Enum, it should be fine!  I'm also perfectly happy with doing the SimIFace override thingy for you, although if you want to give it a try, here's a tutorial: http://modthesims.info/wiki.php?tit..._Modding_Basics

If you do want me to extend that list for this mod (Which again, I'm more than happy to do! ) could you make me a list of subcategories you need? I'll figure out the number bits, so you don't have to make the list to look like the enum list I shared. 
Test Subject
#14 Old 13th Nov 2020 at 5:04 AM
Are you still working on this?
I have no coding skill at all so I'm not sure if it's possible and I'm sure you've already thought of it and tried but rather than just adding in new tabs to the functions categories are you able to add a new function tab all together? Eg: pets added the pets section.
Mr Hawk also tried to recategorize the catalogue, I thought you might be interested to see https://web.archive.org/web/2013063...ess-stupid.html
Lab Assistant
#15 Old 15th Nov 2020 at 8:38 PM
Hope this can be finished someday, I also think the function catalog is very cluttered, my only wish is that a Magic sub function tab can be made.
Lab Assistant
Original Poster
#16 Old 6th Feb 2021 at 8:35 AM
Quote: Originally posted by Bietjie
Are you still working on this?
I have no coding skill at all so I'm not sure if it's possible and I'm sure you've already thought of it and tried but rather than just adding in new tabs to the functions categories are you able to add a new function tab all together? Eg: pets added the pets section.
Mr Hawk also tried to recategorize the catalogue, I thought you might be interested to see https://web.archive.org/web/2013063...ess-stupid.html


I am still working on this, albeit slowly because of all the matters in the world! I did look at mods like Tizerist's and MrHawk's but there were different aspects I wasn't crazy about so I decided to make my own version of a recategorized build-buy. Tizerist changed prices too much but did organize it in a way of priority and grouping. MrHawk's does a great job for recategorizing within the existing categories, but I intend on making more akin to The Sims 4. Thank you for the suggestion, though!
Lab Assistant
Original Poster
#17 Old 6th Feb 2021 at 8:36 AM
Quote: Originally posted by bubblegumfish
Hope this can be finished someday, I also think the function catalog is very cluttered, my only wish is that a Magic sub function tab can be made.


That's one of my goals! Among many other new categories!
Back to top