M3lowdy32-Custom_Products icon

Custom Products

Add Custom Products or Create Own Custom Products

Last updated 8 hours ago
Total downloads 8
Total rating 0 
Categories Mods Tools Libraries
Dependency string M3lowdy32-Custom_Products-1.9.0
Dependants 2 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2304 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2304

README

## How to create a custom Product?

Download the Example (shaklin_products.zip under optional downloads), you can use it as a template.

Short Tutorial:

1. Create in the subfolder "Products" your own folder (name doesn't matter, but it should be unique)

2. Place your mesh (obj), texture (png) and the icon (png) into your new folder

Names must be unique! You can use your nexus-name or the tier+productID number, etc

3. Create a json file (copy it from the template), rename it as you want (must be unique!) and open it with an Editor.

Edit it as you like.

Note:

If you already have old .json files from previous versions, start the game once (main menu) and close it again. After that, all json files should be updated.

Product_ID and Product_Tier must be unique, otherwise the products will overwrite each other.

4. Finish! Test it in-game

If you need help with:

Product_ContainerClass

0 = Shelf

1 = Fridge

2 = Freezer

3 = Produce Shelf

4 = Pegboard Shelf

Tier_Requirement

0 = Basic Products I

1 = Basic Products II

2 = Basic Products III

3 = Basic Products IV

4 = Basic Products V

5 = Basic Products VI

6 = Dairy Products I

7 = Dairy Products II

8 = Soda Drinks I

9 = Frozen Foods I

10 = Frozen Foods II

11 = Hygiene I

12 = Hygiene II

13 = Hygiene III

14 = Cleaning Products I

15 = Cleaning Products II

16 = Sweets And Snacks I

17 = Sweets And Snacks II

18 = Sweets And Snacks III

19 = Sweets And Snacks IV

20 = Meat I

21 = Preserves I

22 = Infusions I

23 = Seafood I

24 = Books Pack I

25 = Books Pack II

26 = Alcoholic Drinks I

27 = Alcoholic Drinks II

28 = Alcoholic Drinks III

29 = Pharmacy I

30 = Pharmacy II

31 = Produce I

32 = Produce II

33 = Produce III

34 = Produce IV

35 = Child Care I

36 = Child Care II

37 = Soda Drinks II

38 = Soda Drinks III

39 = Sweets And Snacks V

40 = Sweets And Snacks VI

41 = Preserves II

42 = Gardening I

43 = Gardening II

44 = Gardening III

45 = Gardening IV

46 = Small Electronics I

47 = Small Electronics II

48 = Small Electronics III

49 = Produce V

50 = Sweets And Snacks VII

51 = Basic Products VII

Or any custom Tier_ID

Example .json file for a new custom product:

Copy the inside with the "[]"

[

  {

"Tier_ID": 1028,

"Tier_Name": "Baked Goods I",

"Tier_Requirement": 0,

"Blackboard_CategoryName": "Baked Goods",

"Blackboard_Color": "#F5E9AF",

"Product_ID": 1150,

"Product_Name": "Wheat Bread",

"Product_Brand": "Bakery Factory",

"Product_ContainerClass": 3,

"Product_maxItemsPerBox": 16,

"Product_isStackable": true,

"Product_basePricePerUnit": 3.80,

"Prefab_Name": "",

"Mesh_Name": "1028_1150_bread_wheat",

"Texture_Name": "1028_1150_bread_wheat",

"Sprite_Name": "1028_1150_bread_wheat_icon",

"Sprite_Tier_Name": "1028_Tier_icon",

"Hitbox_Width": 0,

"Hitbox_Height": 0,

"Hitbox_Depth": 0,

"Mesh_AutoSmooth": false

  }

]

  • Explain:

Tier_ID = the ID for your new Tier (a Tier can have more than 1 product btw)

Tier_Name = the name of the Tier

Tier_Requirement = what Tier ID it needs before it can be unlocked (you can even write here one of your Tier IDs)

Blackboard_CategoryName = the category name in the shopping list (Blackboard Manager)

Blackboard_Color = the color in the shopping list (Blackboard Manager) and for the boxes

Product_ID = the ID for your new product

Product_Name = the name of your new product

Product_Brand = the brand-name of your new product

Product_ContainerClass = in which shelf can it be placed

Product_maxItemsPerBox = how many products are in one box

Product_isStackable = true if it stackable, if not then false

Product_basePricePerUnit = the base-price of your product

Mesh_Name = the mesh (obj) name for your product

Texture_Name = the texture (png) name for your product

Sprite_Name = the icon (png) name for your product

Sprite_Tier_Name = the icon (png) name for your Tier

Hitbox_Width = the width of the product mesh (if you write 0 then the mod will write it automatically in the json for you)

Hitbox_Height = the width of the product mesh (if you write 0 then the mod will write it automatically in the json for you)

Hitbox_Depth = the width of the product mesh (if you write 0 then the mod will write it automatically in the json for you)

Mesh_AutoSmooth = if your mesh not looking good, you can turn on Autosmooth (true). If not, then write false

Hitbox widht, height and depth are important because with that the game calculate how much product items can be placed in the shelf. If you want to place more and make the spaces between the product items narrower for example, then reduce the width value. Nothing is changed on the mesh itself! You just trick the game into thinking it's narrower/wider or shorter/longer

Because you dont know the widht, height and depth yes, you have to write 0. Then start the game (Main Menu) and close it again. The mod has now automatically updated your JSON file and added the values.

There's a help function in the game for fiddling with the values. Press F1, go to Custom Products and Hitbox Helper.

## INFO: Please make sure your mesh (obj file) isn't too large; it should have around 10,000 polygons.

If the mesh is more complex and has more polygons, the game may stutter!

## FAQ:

Does it work in multiplayer mode?

  • Yes. If the host has this mod, ALL clients must have the mod and download all the same products.
  • Note: Do not make your game public if you use this mod. It will cause errors for users without this mod.

I downloaded/created custom products and I want remove them. But I want to keep the mod/other products

  • Simply remove the specific product folder. The mod will automatically remove all references to this product from the savegame in-game

 I used this mod with custom products and now I don't want the whole mod + custom products anymore.

  • But I want to keep my savegame and continue playing with the vanilla game.

  • The savegame must be cleaned up for this.

  • To do this, open the shaklin.CustomProducts.cfg (in Supermarket Together\BepInEx\config) and set this to true:

  • CLEAN SAVE MODE = true

  • Start the game, load your savegame that has the custom products, wait until the text appears "Quit the game & remove the mod 'Custom Products'.

  • Then close the game. Remove the custom products mod + all products folders.

  • Also, delete the shaklin.CustomProducts.cfg.

  • Now start the game and see if the save works again.

I am a creator and I want to use multiple textures and also transparent ones. How?

  • Your mesh (obj) can have more than 1 groups.
  • Make sure to always load and save obj files with separate groups (unfortunately this is not activated by default in Blender).

## follow this steps to add Custom Products.

When importing:

 [Tutorial Image1](https://imgur.com/ceXDRzE)

When exporting:

 [Tutorial Image2](https://imgur.com/qqHXzWR)

Here you can see again that the milkshake (included in shaklin_products.zip under optional Downloads) has 2 groups:

  [Tutorial Image3](https://imgur.com/sJDZUjF)

In the json file:

"Texture_Name": "1004_1013_Milkshake",

So we put for the first group a 1004_1013_Milkshake.png in our folder.

For a group2 1004_1013_Milkshake2.png, for a group3 1004_1013_Milkshake3.png and so on.

In our example the milkshake has only 2 groups, but the 2.group is transparent. To tell that to the mod we add _transparent at the end.

So in this example we have 2 png files in our folder:

1004_1013_Milkshake.png

1004_1013_Milkshake2_transparent.png

For Textures are 4 variants:

_transparent (just transparent without any glow/shiny)

_transparentshiny (transparent with shiny)

_plastic (plastic-like, alpha not adjustable)

_glass (glass-like, alpha not adjustable, smoothness 0.65)

_glassb (glass-like, alpha not adjustable, smoothness 0.90)

_glassc (glass-like, alpha not adjustable, smoothness 1.00)

_nocull.png (renders both sides of the texture)

_noculltransparent (renders both sides and supports transparency)

I am a creator and want to use normal maps etc for my products. How?

Put the textures in your folder and name them like the texture and add this after the name:

Normal Map: for example mytexture_n.png

MetallicGloss Map: mytexture_m.png

Occlusion Map: mytexture_o.png

Specular Map: mytexture_s.png

Emission Map: mytexture_e.png

And for the transparent texture (if needed):

Normal Map: for example mytexture_transparent_n.png

MetallicGloss Map: mytexture_transparent_m.png

Occlusion Map: mytexture_transparent_o.png

Specular Map: mytexture_transparent_s.png

Emission Map: mytexture_transparent_e.png

Note: Emission Map is for the glowing/Light. Use colors to glow it, and black for non-glowing parts.

Since version 1.1.9 its possible to import unity3d files (prefabs). How?

Its the best to download the prefab example file under Downloads/Optional files.

You need Unity Editor 2023.2.22f1

https://unity.com/releases/editor/archive

(Click on 2023, then click Install for 2023.2.22f1)

Create in the Editor your prefab, select everything (prefab, textures, material, mesh, animation etc), then right-click on it

and click on "Build Single AssetBundle From Selection..."

Your prefab with all its assets will export to a single *.unity3d file (you can delete all other exported files, except the *.unity3d file)

Then open your product json and write under "Prefab_Name" the filename.

Note: If you use your own Editor Project and you can't find the entry "Build Single AssetBundle From Selection...", then download the Prefab example

and copy the file CustomProduct\Assets\Editor\BuildSingleAssetBundle.cs into your Assets/Editor Folder.

With that script you get the new Export entry.

Note2: Many shader are not working, they are just placeholders (many also are paid and it would not be allowed to share them), but they will work in-game.

You can replace them with your own shaders. But you can only use the shaders that Supermarket Together is using!