This is a work in progress. Check often for updates.


01.00

The CTS Wardrobe product is an effective way to maintain control over the organization and visibility of your Clothing Inventory, and any other items that may interest your. While the term Wardrobe implies Clothing, several users have demonstrated its usefulness for maintaining an organized view of Photo Studio scenes and poses, furniture and, in some cases, any objects they want to be able to locate based upon a “tag” or an “image”. For me, I am anxious to maximize the value of my Clothing investments by being able to locate and see any item of clothing I’ve ever purchased or received as a gift. If you can’t find something, you might as well not have it.

02.00

The first step in adopting the CTS Wardrobe was to define the field of use. I decided I would use this to: (1) manage only items I would wear on my avatar, and (2) I would have a single entry in the Wardrobe no matter how many body variations I would acquire. The CTS Wardrobe supports this option in two ways: Item Tags which might include the clothing article type (dress, shoes, etc), and Item tags which could be the body sizes included in the item. You can simply use these tags to locate the item, and then have the body-specific sizes in sub-folders, which you would Custom Wear and select the folder manually.

A nice alternative is in the Premium features, which require a weekly payment. That payment is less than the cost you avoided by not having to upload the images of your items, but it’s a recurring cost for the Premium functionality to work. The feature you might use is “Current Body” tagging.

Current Body Tagging is an automated capability where CTS Wardrobe identifies which body you are wearing and only shows items that include that Tag. You define the iPublic Attachment that CTS Wardrobe uses to determine the body you us and you define the Item tag that will identify the item is comparable with the body. That part is simple. However, it can be mush more complicated if you let it. I decided to simply.

01.01 A Universal Body identifier

I decided to create a more generic Body identifier than the name of the body attachment itself. I did this for two reasons: (1) Bodies always contain version numbers, and if you updated a body you need to remember to update the lookup table, and (2) some bodies come with 4 or more versions and they all wear the same clothing, so would you want to maintain 4 rows or 1 row? I like the ease of maintenance. So, I defined a set of attachments I would also wear on Avatar Center (where mesh bodies attach) and eliminated all the fancy characters and version numbers that creators tend to add to bodies.

For example, the Universal Bodu Identifier for Belleza genX might be “Belleza GenX Classic” or “Belleza GenX Curvy”, and each of those would be an entry for the “HD Feet & Materials”, “HD Feet & Lite”, “SD Feet & Materials” and SD Feet & Lite” versions of the bodies. So, two Universal Body Identifiers for 8 body versions. An advantage to using this convention is these work nicely as Tags and Folder names, too, but more on those a bit later.

Here is the list of Universal Body Identifiers I am currently using:
Belleza GenX Classic
Belleza GenX Classic Dainty
Belleza GenX Curvy
Belleza GenX Curvy Dainty
ERIKA Mesh Body

Legacy Classic
Legacy Perky
Legacy Perky Petite
Maitreya Lara_V
Maitreya Petite_V
Maitreya Petite_X
Maitreya Lara_X
PRIMA Elite
REBORN by eBody
TONIC Curvy
These are all paid bodies and I do not use free bodies at this time due to their frequent limitations.

01.02 Attaching the Universal Body Identifier

After I created the attachments, I put them in a folder togther to keep them organized. I then right-clicked them and selected the menu “Attach To” and select the Avatar Center attachment point. This is the same position where the mesh bodies are typically attached and it seemed appropriate. I have found no problems with having the two items attached to the Avatar Center.

When you are the avatar form you want to use, I streamline the avatar to the naked body and important body components and save it as an Outfit in the viewer. I do not include version numbers or other options in the Outfit name. I expect everything the avatar will wear is in Wardrobe and things do not need to be in two places. Here is an example of the first few Outfits i created:

(BASE) Belleza GenX Classic & LeLUTKA CEYLON
(BASE) Belleza GenX Curvy & LeLUTKA CEYLON
(BASE) Legacy (f) Perky & LeLUTKA CEYLON
(BASE) Maitreya Lara_V & LeLUTKA CEYLON
(BASE) Maitreya Lara_X& LeLUTKA CEYLON
(BASE) Maitreya Petite_V & LeLUTKA CEYLON
(BASE) Maitreya Petite_X & LeLUTKA CEYLON

The thoughts here are that (1) they sort together if I happen to create some temporary outfit, such as “before makeover” or “stuck as the orange cloud), and (2) they have no version numbers so they never need to be renamed to reflect what components change over time. “Replace Links” is your friend, and if you don’t use it, you should learn it because they is the only feature that ever needs to know a version number.

If you use MANY bodies and MANY heads this list can get rather long, which is why some opt to make them individual outfits, as in (BASE) BODY NAME and (ADDON) HEAD NAME, but I tend to use my favorite head because it looks familiar to me, and looks like me.

Having your body in the (BASE) is how the body is attached and you simply add a link to your Universal Body Identifier attachment and you will be properly identified, even when the body name is slightly different or changes over time. As long at the items fit the body, there is no maintenance of the system needed when a body changes, just the link(s) to the corresponding Outfit.

Some will suggest the use of RLV is dangerous or lacks stability. RLV gets a bad rap in many ways, but it is merely an extension of the Linden Scripting Langauge used throughout Second Life. It allows you, and with your permission, others to access your inventory and potentially control your avatar. In the context of CTS Wardrobe, it is only used to locate items in a specific area of your inventory and attach them or remove them, nothing more.

But RLV can indeed be less than 100% dependable. because CTS Wardrobe depends on RLV for wearing and un-wearing, it’s good to know how it’s functioning. The Wardrobe provides a simple “Chat API”, which means that the Wardrobe outputs on a specific channel when it is instructed to “put-on” or “take-off” and item. During a week of development, I noticed the Chat API only produces a message when it actually locates the item you requested and takes the action you selected. If there is silence in the Chat API, it didn’t work.

So, I decided to make a second use of the Universal Body Identifier by placing a script inside it to monitor the Chat API. Remarks on my Wardrobe entries remind me to check the Chat API for messages to confirm my action was taken. An example of the output of this implementation is:

Action: put-on
Path: #RLV/CTS/LINGERIE/Addams Belleza Lingerie for Belleza GenX Classic

I later enhanced this (simplified it) to send a message that could be read by Rulebook and have Wardrobe produce the following message: [08:35:13] Wardrobe HUD v2.8.6: Clothing Request successful.


01.03 Configuring the Current Body Tag System (Premium Feature)

When I was doing the research for this feature, I found the interface not quite to my liking. When i would select Current Body Tag System, it would show my a long list of the available bodies, all but one of which I was not using. i considered it screen clutter and decided to try other ways. I did arrive at a method that worked for me, but it was non-standard and i had several exchanges with the patient and pleasant developer about how it might improve for me. But Carly explained how it is intended to work, and she pointed out that all the inactive body tags that were in my Selected Tags list had a strike-through across the tag. This was rather difficult for me to see, and I suggested that perhaps there could be a color clue, but I converted back to the standard configuration after our discussion. Because i had streamlined my naming convention for each column, it was rather easy to go back and forth.

The first column is a dropdown with choices of Body or Head. In the online documents I’ve read a given identifier will match only the first Body and, potentially, the first Head it finds a match. At the moment I use Wardrobe primarily for body clothing, so I have not experimented with the Head options more than to confirm they worked.

Consider the following field definitions: (2) Attachment Name, Body Tag Activated, Wardrobe Tag Required, and Inventory Sub-Folder. The Wardrobe will scan your attachments and when it finds “Body or Head table entries it will use the “Optional” and “Required” tags defined. As it suggested in their definitions, the Tags will appear on the Selected Tags row with icons showing Optional and Required, as appropriate, for each. This is where I vary from the recommended implementation.

I worked through several iterations of the Body field, Body Tag and Folder name standards, and I found a common form that seems to work for me. Because I can have vision challenges on some computer screens, i tend to use ALL CAPS for things i need to read on control panels. Here is an example for one of my favorite bodies:

BODY: Maitreya Lara_X
TAG: $BODY/MAITREYA_LARA_X
FOLDER: ALL_MAITREYA_LARA_X


As was described, I use an attachment to match the simplified Body name, and doing so allows me to use a similar form for the Body Tag and the Folder Name(s). I found this a lot easier to remember as I worked, and I created a template of empty folders to copy and paste into new Wardrobe entries as I created them.

01.04 Folders, the Final Frontier

Once you have selected the Wardrobe item you wish to wear, the Wardrobe leverages RLV extensions for the viewer to locate and act on the item(s) you’ve requested. It uses RLV because normally your Inventory is protected from “outsiders” The Wardrobe HUD provides an RLV Relay that, by wearing it, you permit it to access a limited portion of your Inventory.

I had a set of goals in mind as I approached the Inventory organization for Wardrobe:
1. Have as few Wardrobe entries as possible to reflect all my wearables. And no fewer.
the 2. Have the flexibility to add or remove any item that has value individually.
3. Have an much automation as possible with the wearing or removal of any item.
4. Minimize the effort to maintain Wardrobe items once they are added.
5. Minimize the effort to locate and wear things, never forgetting my favorites.

I decided I would begin by making each entry in Wardrobe reflect all the items of a given purchase: a dress might include undergarments, a coordinated set might include a top, bottoms, underwear, hat, sleeves, and on and on it goes. And, hopefully, these will include as many bodies as I like, the more the merrier.

If I own a given body and it is in the package, i add that body size to the item folder. Footwear gets auto-ankle adjust attachments, clothing gets auto-hide attachments, and the folders tend to expand quickly. If you hhave 4-5 bodies that are covered by the item you purchased, you might favor one body, but while you are working, why not add them all? The Current Body Tag system will handle that complexity for you, once you put them in.

But I wanted to be able to add or remove portions of a package. So, I might want to change only the Blouse, or remove the Shorts and wear a Skirt and panties. Here is how I designed those folders, and it works for me. I first create a sub-folder in the Item Title folder in #RLV, it will eventually contain LINKS to each of the items in the package. The actual objects will be in their sub-folders.

Here is an example:

Main Folder: Maitreya_Lara_X
This folder would be the name defined in Current Body Tag setup, last column. It would contain links to all the items of the outfit, or a single item if it’s a dress with nothing else included. If there is nothing else included, it is the original object, not as link. The link option is so you can remove things by name later, and RLV seems to work better with links in this main folder than links in the other sub-folders.

Sub-Folder: BLOUSE_Lara_X
this is an arbitrarily different naming convention. I’ve used “02_Body-Name” and other options, but I try to make it start with a different character than the Current Body tSet setup is searching for. I will be reading these visually through the Custom Wear window and they only need to be readable to me. The Wardrobe will never match these folders if you name them incorrectly.

Sub-Folder: BLOUSE_Lara_V
Being consistent and clear in your short names for the folders will be key to clicking the correct item in Custom Wear.

At this point, you have spent much more time than you wanted adding your first outfit, but it will work, it will be fast and it will cause you never to lose another item again.

Xiu Crisp
2024-05-23

Footnotes:

The following outline documents my current use of the CTS Wardrobe Current Body Tag System, as of 2024-05.
Original work of Xiu Crisp. Free to Use with Attribution. (c)2024-05-23 Xiu Crisp

All bodies have an Optional “Body Tag” of “Current_Body_System” and the Tags below are REQUIRED for each identified body.

BODY:: Belleza GenX Classic
TAG:: $BODY/BELLEZA_CLASSIC_DAINTY
FOLDER: ALL_BELLEZA_CLASSIC

BODY: Belleza GenX Classic Dainty
TAG: $BODY/BELLEZA_CLASSIC_DAINTY
FOLDER: ALL_BELLEZA_CLASSIC_DAINTY

BODY: Belleza GenX Curvy
TAG: $BODY/BELLEZA_CURVY
FOLDER: ALL_BELLEZA_CURVY

BODY: Belleza GenX Curvy Dainty
TAG: $BODY/BELLEZA_Curvy_DAINTY
FOLDER: ALL_BELLEZA_CURVY_DAINTY

BODY: REBORN by eBody
TAG: $BODY/EBODY_REBORN
FOLDER: ALL_EBODY_REBORN

BODY: ERIKA Mesh Body
TAG: $BODY/ERICA_MESHBODY
FOLDER: ALL_ERIKA_MESHBODY

BODY: Legacy Perky
TAG: $BODY/LEGACY_PERKY
FOLDER: ALL_LEGACY_PERKY

BODY: Maitreya Lara_V
TAG: $BODY/MAITREYA_LARA_V
FOLDER: ALL_MAITREYA_LARA_V

BODY: Maitreya Lara_X
TAG: $BODY/MAITREYA_LARA_X
FOLDER: ALL_MAITREYA_LARA_X

BODY: Maitreya Petite_V
TAG: $BODY/MAITREYA_PETITE_V
FOLDER: ALL_MAITREYA_PETITE_V

BODY: Maitreya Petite_X
TAG: $BODY/MAITREYA_PETITE_X
FOLDER: ALL_MAITREYA_PETITE_X

BODY: PRIMA Elite
TAG: $BODY/PRIMA_ELITE
FOLDER: ALL_PRIMA_ELITE

BODY: TONIC Curvy
TAG: $BODY/TONIC_CURVY
FOLDER: ALL_TONIC_CURVY

Original work of Xiu Crisp. Free to Use with Attribution. (c)2024-05-23 Xiu Crisp