Table of Contents

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:

Advantages:

Requirements:

Feedback & Support: If you discover a bug or encounter a problem, please report it via 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.

Not recommended:

Not Working:

Group & Discord

Find the Discord server here and inworld group lookup Disvail Dynamics

Optional HUD

From version 1.95 you can use the optional HUD to access your UCC

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:

How to Setup Folders - Video

πŸ“ Avatar Folder:

EXAMPLE

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)

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:

πŸ§₯ 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.

πŸ“ 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.
πŸ“ Folder Structure:

#RLV
 └──~undressify
      └──av_addons
         └──avatar name
            └──category
               └──item
                  └──your item goes here

βœ… Example:

πŸ”§ Note: AvAddon folders are not created automatically either. You need to create them manually to use them.

πŸ”„ Starting with version 1.63:

πŸ›  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:

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_<avatarname>' 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.


API / Creators

UCC listens on channel 5100
and sends on channel 5200

Commands

Command
`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
`/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.