Custom Product and Smart Content
Hi all,
For a while now I've been working on making my own products.
I've got pretty much everything figured out, except for the Smart Content.
All the files are done up and ready to go like a 3rd party product, where one would be able to install the files manually. I purchased the Content Package Assist product (https://www.daz3d.com/content-package-assist), and it works. Everything is able to be installed through DIM.
But the one thing that doesn't work is that the Smart Content doesn't transfer over. There is a Smart Content Product that exists, but all the files have lost their metadata. The only part of the process of exporting Metadata that I haven't figured out is setting a compatibility base, which for pretty much every tutorial I go through, doesn't cover how to do this for entirely custom figures. (Most just say, "Choose Genesis 8 as your base compatibility and then hit okay.")
So I'm basically making creatures with poses, textures, props, etc. How do I go about setting the Compatibility bases for something entirely new like this? (I'm told that this needs to happen.)
With that said, I'm not convinced that this is actually the problem. (I could be wrong.) If not that, then where else might the problem lie?
Also, when I export the metadata, it puts the file in my main Daz content library, but I have the product assets in a separate base library folder. I will then copy them over to the Runtime/Support folder where they would get installed with the rest of the product. Could that be part of the issue?
I realize that there's probably more information needed here, but like I said, I'm trying to narrow the problem because most tutorials glaze right over this point that I need help with.
Thanks!

Comments
The Compatibility Base is indeed the key to successful metadata, and therefore Smart Content. Assuming you have all the parts in place, a Product defined, Content type, default categories, etc.
I have done this many times with 3rd party products to make DIM-compatible packages using Content Package Assist (CPA for short).
To get a compatibility base working, you need to make a link between the logical definitions and an actual instance of that object. Load all unique assets into a blank scene and select them all. They do not necessarily need to be parented or fit to something, as long as you have one of everything. Right-click on the Scene tab, or on the context menu at the top of the pane, and select Edit -> Set Default Compatibility Base... to set a common root under which all assets will be gathered.
Click the ellipsis at the far right of the dialog and wait for the list of available bases to show up. This is where you can select or add the appropriate base you need to make the association. You will likely have to enter a new Root Compatibility Base, from the drop-down menu at the far right. The root should be set to the Product Name for convenience, and the other selected assets will automatically be included when you Accept. (The process can take a while if you have many Products). Check the "Selected nodes only" if there are other assets that are not meant to be included, otherwise every object in the scene will be included.
If you do not select all the Assets you want to include, you can always go back and add the stragglers later using the same process, or one at a time using the Edit -> Scene Identification... option and add more Sub-Compatibility bases to the Root Compatibility base.
Once that is done, off to the alphanumeric Product section. Choose your Product from the list, then edit metadata. You are at the Vendor data level, which allows you to set many aspects of the metadata not available in the simpler UserData level. You can select a Store (DAZ 3D and LOCAL USER are the only choices, unless you add another with an external script), a Token (Product number), Artists (your Artist handle, or not), and a Description.
The metadata support file path and name will be completed automatically if Auto-fill is checked. It takes the info from the previous fields construct the name. The metadata will be saved to the folder where the product files are located, in a Runtime/Support folder, created if needed (or maybe the first Library in the Content Set). I personally use a blank test library, first in the list, with nothing other than the Product being processed. Easier to see if anything is missing. Paths are relative, so when you package and install somewhere else, it will be totally transparent.
The Files section will have references to all Support Assets in the product, like file icons, data files, texture bitmaps, i.e., everything else that gets installed. If you have properly set up the Root Compatibility base, you should see your assets in the Scene IDs section. They should be all checked, but you can exclude any that should not be there.
On to the Assets tab. Here is where you make the link between the Compatibility Base and the object in the scene. Select each entry in the top half that has geometry (e.g., Figures, Props, etc.), all at once or one at a time, and select the Compatibility Base tab in the lower half. Right-click each listed Asset in the lower half and select "Add Compatibility Base to Selected File(s)" (your only choice at this point). This will open the full list of Compatibility Bases, which should look familiar now. Locate you new Root Compatibility base, and expand to show the list of Sub-Bases. Pick the one you want to assign to the file and Accept. Rinse, repeat for each unique element. Each asset can have only one Base.
Materials, Poses, and the like, don't get Bases, but they can be assigned Compatibilities using the same process from the Compatibilities tab. There you can do more than one at a time if, say, several material presets or poses can apply to the same object or objects. You can also set Content type and Default Categories if you haven't already.
If Auto Export is checked, the metadata files will be written to the appropriate folder when you Accept the changes. I personally like to export manually to make sure it went to the right place. Data is committed to the database when you Accept. Now would also be a good time to add your Product thumbnail to the support folder (same name as the metadata files).
Now, to bring all this work into the family, you can package the new metadata files with your Product (with CPA). Uninstall from the test folder and re-install where you want. The new metadata will be installed in the Library with the Product assets. You should now have a fully functional Smart Content Product.
I am sure that there is a utility that can do all this automatically, but I like to see what's going on instead of relying on the unfamiliar.
I believe that covers everything, don't hesitate if you have any questions.
(Edited for small typos)
About the .dsa/.dsx files related to Metadata, by default, Daz will place them by default inside 'My Library/Runtime/Support' but you're free to move it once created: Daz is checking every /Runtime/Support folders its knows about to check where the files storing the metadata you're currently editing are located.
What I'm doing in that respect is generally:
1. Place every files related to the product I want to create Metadata for inside a Library called Metadonnees (Metadata in French), one that I'm only using to create Metadata for a product.
2. Load every elements of that product (so for clothes, I'm loading every part of it, either through an outfit preset if it's available, or all of them).
3. In the Scene tab, I'm selecting every elements related to the product.
4. Right Click on the Scene tab > Edit > Set Default Compatibility Base
5. Click on the … in the top right corner of the windows to open the list of all Compatibility Bases known by your installation of Daz Studio.
6. Click on the hamburger icon in the top right corner and click on Create New Root Compatibility Base
7. Name it as you want (to avoid conflict, if your chosen name is a bit too generic, add something to the name: an example would be character by Mousso usually are MSO [character name]) and copy-paste it for good measure, then click Accept
8. Paste the name you just typed in the search field which should automatically select it in the list below or select it if you only typed part of the name, then click Accept to close that window, then Accept again to finally tell Daz to set that Compatibility Base for all the items selected: it'll create automatically new sub-root Compatibility base for most selected item based on something that is escaping me right now.
Note: you can also create it manually, by creatin a New Compatibility Base then a New Sub-root Compatibility Base, it's just easier to let Daz in charge of that part of the work, especially when there is a lot of sub-root bases to create.
The next step will happens in the Metadata editor so in the case of your figure
9. In the list of Assets, select the .duf file that will load it and in the Compatibilities Base tab, click 'Add a new compatibility base to file' and paste the name of the root compatibility base in the search field.
10. Click on it and open it to select the sub-root compatibility base you want to attach to that product, click Accept.
Once you have saved the change, you now have a Compatibility base attached to your figure, one that you'll now be able to set it in the Compatibilities row for all the presets specific to your figure (like poses, materials, wearables presets, etc).
Note that if you created a prop, let's say a weapon, for your figure, if you have a .duf file to load the prop alone, it'll have its own compatibility base and it'll not have Compatibilities set to your figure: you'll have to create a wearable preset (to load the prop where it should be loaded on the figure, so for a weapon, in one of the hand of the figure) which will not have any Compatibility Base but will have your figure sets as Compatibilities.
You best bet if you don't know how to set some metadata, once you have the basics in mind is to open a product with metadata made by Daz and usually, you'll see how they are labelling everything (note: mistakes are not unheard even with metadata created by Daz but at one point, you'll know how to detect them too).
Thank you so much for the detailed replies!
I will be going through them later and trying to make them work.
Thanks again!