====== Ultimate Character Control ======
[[https://marketplace.secondlife.com/p/Disvail-Dynamics-Ultimate-Character-Control/27304089]] \\
\\
This is the successor to ''Undressify''. \\
\\
To spread the the tool to a wider range of users, it is rebranded to a more 'interesting' name.\\
Functions will stay the same and undressify is basicly a part and the core of the system.\\
But there is an opportunity to add a wider range of tools and shenanigans, to bring the system to a bright future.
**Key Features:**
* ✅ Custom sounds
* ✅ Custom animations for optional animated undressing
* ✅ Automatic hoverheight adjustment for boots and feet
* ✅ SafeSitter to protect you from unwanted people and objects when sitting
* ✅ optional DiscordNotifier for you to follow and record
* ✅ Random outfits and a redress timer
* ✅ Optional Bumper to loose outfit parts
* ✅ Follow your friends in a region
**Advantages:**
* Keep your complexity low by avoiding transparent body parts.
* 🎯 One avatar setup for multiple related outfits
* 🎯 No need to search through your inventory to change clothing layers.
* 🚀 Faster, cleaner, and more intuitive experience overall.
* ✅ A more lively impression
* 🎯 A smooth experience once setup
**Requirements:**
* 🎯 Speak english (not going to translate in multiple languages)
* 🎯 use RLV compatible viewer
* 🎯 use your brain
**Feedback & Support:**
If you discover a bug or encounter a problem, please report it via [[https://discord.gg/8J8aHkc6qu|Discord]]. \\
Feature requests are also welcome through the same channel.
**Conclusion:**
A fresh start was necessary – and it comes with smarter design and improved usability.
===== Tested SL Clients =====
The system was tested positive on these clients.
* Alchemy Viewer
* Aperture Viewer
* Firestorm Viewer
* Black Dragon
* Restrained Love viewer
* Kokua Viewer
* Catznip
* Genesis
* Singularity
* Lumiya Mobile client
Not recommended:
* Radegast Text Viewer NOT RECOMMENDED
* mysmartbots NOT RECOMMENDED Payed RLV - Closed source.
* Corrade Bot NOT RECOMMENDED RLV is super outdated. Only 16 available attachement points. Reactiontime is very slow.
Not Working:
* Megaphit - NOT WORKING NO RLV (yet?)
* SecondLife - NOT WORKING NO RLV
====== Group & Discord ======
Find the Discord server [[https://discord.gg/8J8aHkc6qu|here]] and inworld group lookup Disvail Dynamics\\
====== Optional HUD ======
From version 1.95 you can use the optional HUD to access your UCC\\
{{:ucc:hudhelp.png?400|}}
====== How to Create the Avatar Folder ======
**!! NEVER KEEP THE TOOL WITHIN YOUR `~undressify` FOLDER !!**
Doing so will cause the tool to be detached when you change avatars.\\
⚠️ I take no responsibility if the HUD fails to work with other RLV tools.
You must create a basic folder structure as explained below.\\
This structure is essential for Undressify to function properly.
**Required Folder Structure:**\\
\\
**[[videtosetup|How to Setup Folders - Video]]**\\
\\
📁 Avatar Folder:
* `#RLV/~undressify/av/youravatarname`
**EXAMPLE**\\
{{:ucc:avatarsetup.png?400|}}
Place your naked avatar into this folder.
🚫 **WITHOUT TESTICLES!** Unless you *really* want to carry scriptbombs.\\
You can have multiple avatar folders. \\
Load an avatar using the **Avatar** button!v\\
===== 🧥 Version 1 – One outfit folder for all avatars =====
Create the following structure:
#RLV/~undressify/of/
└── nameofyouroutfit/
├── top_1
├── pants_1
├── top_2
├── pants_2
├── top_3
├── pants_3
└── top_0 / pants_0 (optional)
===== 🧥 Version 2 – One Outfit Folder per Avatar (default setting)=====
🧥 Optional Setup:
You can organize outfits per avatar by enabling **avatar-specific mode** (`avspecific`).
**Folder Structure Example:**\\
#RLV/~undressify/of_avatarname/
└── nameofyouroutfit/
├── top_1
├── pants_1
├── top_2
├── pants_2
├── top_3
├── pants_3
└── top_0 / pants_0 (optional)
{{:ucc:outfitsetup.png?400|}}
===== Folder Layer Meanings =====
📌 Layers are restricted to three (3).\\
📌 Each folder suffix defines how the clothing behaves during undressing.\\
Refer to the table below for clarity:
^ Folder Suffix ^ Meaning ^ Notes ^
| `_1` | Top layer | Visible clothing |
| `_2` | Underwear or secondary layer | Optional |
| `_3` | Naked layer or extras | Optional, requires `_2` to be present |
| `_0` | Hidden layer | Inaccessible to others (e.g. tattoos or outfit-specific details) |
You can create multiple outfit folders to suit different styles or avatars.\\
\\
\\
**📌 Outfits with** * **in its name are only visible for you**
**How to Use:**
* Load an outfit using the **Outfits** button.
* The **Clothing** button will appear next.
* 👆 Click the **Clothing** button to preview how your clothing will be undressed.
* You can now click your **belly** or **lower back** to open the menu and load your avatar, outfit, etc.
* 🎛 Go to the main menu and click on **"outfit"** to begin.
==== 🧥 Default outfit / Version 1.99 and later====
When you use _d at the end of your outfit-folder, you can use the outfit as your default when loading the respective avatar.\\
In example: outfitname_d\\
This will also include a new "Default" button in your outfits. The outfit itself will be rendered normal.\\
You will NOT see the _d in your menu.\\
Notecard settings
#Use a default outfit when loading an avatar. The outfit needs to be marked with "_d" in our outfits folder
defoutfit=1
#Want the default outfit to be public?
defpublic=0
#A timeout when someone loads an outfit or avatar. So your assets have time to load.
timeout=30
====== Addons & AvAddons ======
🎯 **Addons**
Addons are items you'd like to load with **every avatar and outfit** — such as HUDs, toys, or utility tools.\\
{{:ucc:addonsetup.png?400|}}\\
📁 Folder Structure:
#RLV
└──~undressify
└──addon
└──category
└──item
└──your item goes here
Use categories to organize your items e.g.
HUDs
Accessories
Scripts
These items are loaded globally, no matter which avatar or outfit is selected.
❗ **Important:**
None of these folders are created automatically. You must **create them manually** before placing items inside.
🧬 **AvAddons**
AvAddons are items you'd like to load with your **current avatar and outfit only** — perfect for avatar-specific HUDs, toys, or gear.
{{:ucc:avaddonssetup.png?400|}}\\
📁 Folder Structure:
#RLV
└──~undressify
└──av_addons
└──avatar name
└──category
└──item
└──your item goes here
✅ Example:
* Global HUD: #RLV/~undressify/addon/HUDs/gestureHUD/
* Avatar-specific toy: #RLV/~undressify/av_addons/avatarname/Toys/bubblewand/
🔧 **Note:**
AvAddon folders are **not created automatically** either. You need to create them manually to use them.
🔄 **Starting with version 1.63:**
* If you select a different subfolder within the same category, other items in that category will be automatically removed.
* To **hide** any addon folder from the menu, simply add a * at the end of the folder name.
🛠 **Managing Addons:**
Use the **Options** menu to activate or deactivate Addons and AvAddons for other users.
===== Example Folder Layout =====
This is a complete example of how to structure your Undressify outfit folders.
#RLV/
└── ~undressify/
├── addon/
│ ├── HUDs/
│ │ ├── gestureHUD/
│ │ │ └──item
│ │ └── AOcontroller/
│ │ │ └──item
│ ├── Accessories/
│ │ ├── smartGlasses/
│ │ │ └──item
│ │ └── wristwatch/
│ │ │ └──item
│ └── Scripts/
│ └── autoSit/
│ └──item
│
├── effects/
│ └─ effectname/
│ └──item
│
│
├── av_addons/
│ ├── Luna/
│ │ ├── Toys/
│ │ │ ├── bubblewand/
│ │ │ │ └──item
│ │ │ └── leash
│ │ │ └──item
│ │ ├── HUDs/
│ │ │ └── lunaHUD
│ │ │ └──item
│ │ └── Accessories/
│ │ └── collar
│ │ └──item
│ └── Rex/
│ ├── Gear/
│ │ ├── combatVest
│ │ │ └──item
│ │ └── scanner
│ │ │ └──item
│ └── HUDs/
│ └── rexHUD/
│ └──item
│
├── av/
│ ├── Luna/
│ └── Rex/
│
└── of/
└── CasualLook/
├── top_1
├── pants_1
├── top_2
├── pants_2
├── top_3
├── pants_3
├── base_0
└── stuff_0_0.100 ← optional item with hover height control
❗ **Note:** None of these folders are created automatically. You must create them manually before placing items inside.
🧩 **Tips:**
* The folder under `of/` is your outfit name (e.g. `CasualLook`)
* Items use suffixes like `_1`, `_2`, `_3` to define layer priority
* Items with `_0` are optional base layers
* You can append `_0.100`, `_0.050`, etc. to an item name to control avatar hover height
====== Sounds & Animations ======
🎵 **Sounds**
Sounds correspond to the folder names.
If you have a folder named top_1 the sound played will be top
You can place your own sound files inside the object to customize the experience.
🎬 **Animations**
Animations follow the same logic:
A folder named pants_2 will trigger the animation named pants
====== Hoverheight Control ======
📏 To automatically adjust your avatar's hover height, include a folder like:
stuff_0_0.100
**Version 1.94 and up** will support the following new setting based on your .feet notecard to have two possible hoverheights. \\
Both work
stuff_0_0.100_0.005
_0 means the item won't appear in the dialog.
_0.100 sets your hover height to **100mm above ground**.
_0.005 sets your hover height to **5mm above ground** when undressing anything listed in your .lower config.
Activate it via: Plugins > Hoverheight
🪑 If you sit on an object or the ground, your hover height will reset to 0.
This helps avoid manually adjusting poses or animations.
====== Options ======
^ Option ^ Meaning ^ Notes ^
| PGSafe | Automatic system to control access in non adult regions | Optional |
| Autoclean | Autoclean Spunked cumlayer on redress | Optional |
| RemovePlugin | Choose a plugin to remove | Optional |
| AVSpecific | Choose wether you want to use 'of' or 'of_' | Optional |
| Distance | Minimum distance of avatars to use the system | Default 15m |
| Animations | Animation system when dressing or undressing | Optional |
| Sound | Sound system when dressing or undressing | Optional |
| Animations | Animation system when dressing or undressing | Optional |
| Webhook | Enter a webhook for your discord channel to display statistics and more | Optional |
| SendData | Deavtivates and activates the webhook | Optional |
| DistanceTracker | Tracks avatars clicking from to far away | Optional |
====== Access ======
Access is now controled via the .conf notecard within UCC
====== Plugins ======
🕒 **Redress Timer**
Automatically redresses you once no one is within a specified range, after a variable delay.
🎲 **Randomizer**
Selects a random outfit every xx seconds.
🚶 **Follow**
Lets you pick an avatar to follow automatically.
🤜 **Bumper**
Lets you loose clothing if you run into someone or if someone runs in to you
====== SafeSitter ======
🛡️ **SafeSitter – Intelligent Sit Monitoring for Second Life**\\
\\
SafeSitter is a specialized script that monitors avatars sitting on the same object as you.\\
If someone matches a ban list, wears flagged items, or uses content from creators you choose not to support, SafeSitter will automatically react.\\
\\
You can configure SafeSitter's blacklisted items, people and creators from the notecards within UCC.\\
Rightclick and edit your UCC system. Look for the notecards with blacklist in the name and whitelist.
🔍 **Core Functionality:**
- Scans co-sitters in real time
- Detects banned avatars or worn items
- Identifies creators you’ve blacklisted
- Forces you to stand and re-sit once the avatar leaves the scan area
🚫 **Why SafeSitter?**
- Maintain control over shared seating
- Avoid unwanted interactions
- Enforce personal or community standards
SafeSitter runs silently and efficiently, giving you peace of mind without disrupting your experience.
====== Tips & Tricks ======
🧵 If you change textures via a HUD (e.g. color or material changes),
detach the item manually and reattach it after the change.
Second Life may ignore HUD-based changes if the item is removed via RLV.
🔊 You can place your own sounds inside the object to override default ones.
Just match the sound name to the folder prefix (e.g. top for top_1
===== Config Notecard and Updater =====
When you use the updater, your existing config notecard will not be overwritten. All of your current settings will remain intact.\\
\\
If a newer version introduces additional options or settings, you can manually add them to your config notecard at any time.\\
The updater will not remove or modify anything you have already configured.
====== Config Notecard ======
Rightclick on your UCC. Then choosed "Edit", go to the tab "Content" and doubleclick your ".config" notecard to see and edit its content.
#settings 0/1 is off/on
sounds=1
soundradius=5
#animations to dress and undress
animations=1
#Use avatar specific outfist
avspec=1
# Friends of your friendlist have access
friends=1
# Everyone has access
everyone=0
#only someone sitting on the same object, has access
sittersonly=0
#permit to access outfits
a_outfits=1
#permit to access avatars
a_avatars=0
#permit to access to addons
addons=0
#permit to access to avatar specific addons
av_addons=0
#permit to objects to control
api=1
# distance in meters
distance=10
#minimum age in days a of a user to access
age=31
agecheck=1
#Use a default outfit when loading an avatar. The outfit needs to be marked with "_d" in our outfits folder
defoutfit=1
#Want the default outfit to be public?
defpublic=0
#A timeout when someone loads an outfit or avatar. So your assets have time to load.
timeout=30
#List of users which are permitted or blocked to use your UCC. UUIDs seperated by comma ","
accesswhitelist=dd720e33-cf55-4a32-a1b4-0da8cccba1ce,adb16dfe-da11-4c66-b8a9-a8a2f47a3f86
accessblacklist=f7569eef-134f-4e8d-b712-bd6e13267cf8,97980bee-d865-4100-80e7-9763e53e8a6a
#lists to triggeranimations
Larm=gloves,armwarmer,armwarmers,warmer
Lfeet=boots,stocking,heels,highheels,socks,leg,legs
Lhat=scarf,goggles,collar,glasses
Lupper=top,bra,shirt,croptop,jacket,dress,cardigan,pullover,sweater,sweatshirt,vest,corset,sleeve,sleeves,pullover,hoody,oddie,onesie,cuffs
Llower=panties,panty,undies,pants,jeans,jogger,skirt,shorts,hotpants,bottom,buttom,legcuffs
#List to exclude folders from hover change
hhExclude=jewels,socks,stocking,cuffs,legcuffs
#undress animations (animations need to be in the object)
undressupper=upper
undresslower=lower
undressfeet=undressfet
undresshat=undresshat
undressarm=undressarm
#dress animations
dressupper=dressjacket
dresslower=dresspanties
dressfeet=dressfeet
dresshat=dresshat
dressarm=dressarm
#steal animation
cupper=cupper
clower=clower
#redress and changing
redress=redress
#Sounds UUID or Filename (files need to be in the object)
Supperundress=cc3c5428-9f6c-3fd3-1583-7cb44ef92b2a
Slowerundress=cc3c5428-9f6c-3fd3-1583-7cb44ef92b2a
Sfeetundress=546c577e-c68c-643f-7e33-006d0c38df78
Sundresshat=546c577e-c68c-643f-7e33-006d0c38df78
Sundressarm=546c577e-c68c-643f-7e33-006d0c38df78
Sredress=546c577e-c68c-643f-7e33-006d0c38df78
#Expressions to remote expressionhud
expressions = 1
exChat=11
e_upper=OO
e_lower=OO
e_feet=:O
e_arms=OO
e_hat=OO
#blacklists for safesitter
#object1,object2,object3
blacklistobjects=Hugsies Freebie Penis v3.6,! QYN Whore Trainer Mesh Cock 3.77,Lotus Cock Evolution Gold 3.3! QYN Cock 3.77,VSXM Basics - Freebie Cock - v1.0
#uuids only! uuid1,uuid2
blacklistcreators=3f46a57a-5507-47cd-bfc7-5abc7d4b6eaf,2ad22d3e-eae5-48a7-ac65-5e9b75d3722a
blacklistusers=22355d86-8e2f-419b-881d-d5dcbcf04ad5,1a5331fe-d93c-43fc-a1c3-e29e880142f4
whitelist=71fb3458-9bf1-46b2-b994-df7b59064590,dd720e33-cf55-4a32-a1b4-0da8cccba1ce
====== Additional Notecard Parameters======
Coming soon
====== Effects ======
For effects, you need to buy the effect. Then place the effect prim in a folder like shown below.\\
Then use the included installer.\\
{{:ucc:effects.png|}}\\
\\
====== API / Creators======
UCC listens on channel 5100\\
and sends on channel 5200\\
Commands
^ Command ^ Meaning
| `outfit~nameofoutfit` | load outfit |
| `avatar~nameofavatar` | load avatar |
| `reload` | reload current outfit |
| `callav` | responds current avatar-name |
| `callof` | responds current outfit-name |
| `naked` | loads naked layers |
| `ping` | to find users on a region |
\\
Chatcommands
^ Command ^ Meaning
| `/77 main` | calls main menu |
| `/77 clothing` | opens your current outfit |
| `/77 avatars` | opens your avatars |
| `/77 outfits` | opens your outfits |
| `/77 options` | opens your options |
| `/77 naked ` | loads naked layers |
| `/77 reload ` | reloads your current outfit |
Here is a simple listener for the API output
default
{
state_entry()
{
llGetOwner();
llListen(5200,"","","");
llListen(5100,"","","");
}
listen(integer chan,string name,key id,string msg)
{
if(llGetOwnerKey(id) == llGetOwner())
{
llOwnerSay((string)chan + " | "+name +":"+msg);
}
}
}
===== Plugin =====
If you want to create a new function for undressify here is an exxample plugin
//this script should be named with a leading 'app.' in its name
default
{
link_message(integer link,integer chan,string msg,key id)
{
if(chan == 500)
{
list scriptname = llParseString2List(llGetScriptName(),["."],[]);
if(msg == llList2String(scriptname,1))
{
llOwnerSay("Hello World!");
}
}
}
}
===== Effect =====
Effect example code
integer status = FALSE;
default
{
link_message(integer link,integer chan,string msg,key id)
{
if(chan == 765)
{
list scriptname = llParseString2List(llGetScriptName(),["."],[]);
if(msg == llList2String(scriptname,1))
{
if(status)
{
status = FALSE;
llOwnerSay("Effect off");
}
else if(!status)
{
llSleep(1);
status = TRUE;
llOwnerSay("Effect on");
}
}
}
else if (chan == 550)
{
//llOwnerSay(msg + " " +(string)id);
if(status == TRUE && id == "redress")
{
//do things
}
if(status == TRUE && id == "outfit")
{
//do things
}
if(status == TRUE && id == "avatar")
{
//do things
}
}
}
}
====== Frequently Asked Questions ======
\\
I know you dont like the way I answer. But I am really tired of answering questions again and again!\\
\\
**Q: It keeps spamming me with @... lines.** \\
**A:** Activate RLV! Or get a viewer that includes RLV.\\
\\
**Q: Why do you make so many updates?**\\
**A:** The system is still growing and advancing. Its your loss if you do not update.\\
\\
**Q: Why do you send me things?** \\
**A:** Why do you buy things?? For real. I get this question again and again. If you did not buy, I would nevver send you anthing.\\
\\
**Q: After updating the Maitreya body, my clothing doesn’t fit?** \\
**A:** Wrong person… pester Maitreya about that. \\
\\
**Q: Why don’t you offer it in Spanish/Portuguese/German/etc.?** \\
**A:** The main language used on the internet is English. How did you find this website???\\
\\
**Q: Why is this bug not fixed?** \\
**A:** What bug? Thanks for reporting! I can fix a bug when I know about it.\\
\\
**Q: So this is for females?** \\
**A:** NO. Anyone can use it. It’s not gender-specific. That’s a misconception. \\
\\
**Q: What makes this different from systems like OpenCollar?** \\
**A:** It’s not comparable to OpenCollar. \\
For example, someone else can undress you — pull down your pants — and OpenUndress replaces your pants with, let’s say, panties… and makes you naked in the next stage.\\
\\
**Q: Does it work with mesh?** \\
**A:** It works with anything you can wear — skin, layers, eyes, etc.\\
\\
**Q: Does this change alpha layers on my mesh body?** \\
**A:** No. That would require access to all scripted channels of all mesh bodies. \\
Also, many clothing creators already include alpha functions in the items you buy.\\
\\
**Q: Every time I change my avatar, the HUD detaches. How do I fix this?** \\
**A:** Don’t put the HUD in one of your “#RLV” folders or outfits!\\
\\
**Q: Does RLV really steal money from my account?** \\
**A:** NO! RLV has no access to your account or any account settings. \\
No access to your IMs either. That is a myth.\\
\\
**Q: Does RLV really read my IMst?** \\
**A:** See above!\\
\\
**Q: My BOM layers keep showing in the wrong order. Why don’t you fix this?** \\
**A:** That’s an issue with the BOM system of SecondLife. \\
You can fix it by editing your worn outfit from the viewer’s menu.\\
\\
**Q: If I have one linked-together outfit, can I use this to separately undress parts of it?** \\
**A:** NO. They are one part and an outfit cant be unlinked while wearing it.\\
\\
**Q: Why is the tutorial so big?** \\
**A:** Because… people.\\
====== UCC Changelog ======
🛠️ **Latest Updates & Changes**
Version 1.99.1
* ✅ Fixed default outfit function! Human error
Version 1.99
* ✅ Optional default outfits and a timeout for others when changing the avatar
* ✅ Added "Default" to outfits when default outfit was set
Version 1.98
* ✅ Removed the lastmenu-state from the gesture-triggered menu
* ✅ added some code to the nc reader to save anything we need to in the future
* ✅ renamed Bumper Plugin to Snatcher
* ✅ Clothing is now sorted alphabetical
Version 1.97
* ✅ Bring back quick settings for access
* ✅ Fixed Stack heap in discord notifier (we hope)
* ✅ Fixed a bug with discord notifier sending to many rows to discord
* ✅ Change a few corescripts. to free up more memory. Added core.extender3.lsl
* ✅ New warning if region performance is low for the dialog menu.
Version 1.96
* ✅ added notecard to change animations
* ✅ added free storage space to options menu
* ✅ fixed a math error in hoverheight
* ✅ hoverheight is finally not spamming anymore
* ✅ autogroup plugin does not spam anymore and is more reliable
* ✅ fixed an overflow problem with extender.core
* ✅ Overhauled configs to have one single notecard for the complete HUD
* ✅ Added expression remote for expressions hud by .:Curious Detail:.
* ✅ You can change default settings via the .conf notecard
* ✅ Access is now controlled via the .conf notecard
* ✅ SafeSitter uses the .conf notecard for white and blacklists
''This changelog reflects the most recent updates to Undressify. Older versions and legacy features may no longer be supported.''