How do I make Dress To Impress type of clothes?

I’ve been searching for info and I only found 1 topic which kinda answers what I already know and doesn’t go into any details.
I already know that DTI clothes are not layered clothes but rather skinned mesh on top of the body base. But what I don’t know is HOW to implement it.
I am aware that the way DTI made their game isn’t a public information, but I hope that there’s people who are more experienced than me and can help me give ideas for solutions. I do not expect nor do I want an exact same result anyway, as long as it works - I’m happy.

Bear with me, I’m a beginner modeler and developer, I’m trying to make a dress up game. I have a ton of questions, but what I’m most curious about right now is:

1 - How do they attach the clothes to the specific body parts? (Also curious if the process is any different if the clothes have bones with physics, eg. long hanging sleeves)
2 - Should clothes be counted as an accessory? If so, then that means they need attachments, right?
3 - Would this work if I have a single-mesh body and a non-R15 rig? Or would it be better to have the custom R15 package? (The body making and importing is a whole another story that I have a lot of questions about, but this is about everything I wanna find out about yet)
4 - Another thing I noticed is that some items replace the body parts, how is that possible? Is the body part it replaces invisible and does the item have its own “skin” parts that displays on top of that?
5 - I’m also kind of curious about equipping the clothes to the body and how to script a button to do that (not a touch brick).
6 - Also curious about assigning animations/poses to items. Mainly because I wanted to make a separate pose for feet so that the pose alters between heels and flat shoes or bare feet without replacing the feet entirely. Would it cause a lot of problems for the animations (Even if I make other non-shoes animations/poses without the feet key frames)?

This is my first post so I apologize if this isn’t how I should be posting. I will appreciate any help, even if it’s other tutorials, topics etc. Also I will greatly appreciate even if you only answer one of the questions.

Thank you.

5 Likes

DTI clothes are basically skinned meshes rigged to the same bones as the body (usually R15), so they move with the character. They’re not layered clothing or normal accessories, so no attachments needed most of the time.

Using a custom R15 rig is the easiest and cleanest option. Non R15 or single mesh bodies can work, but you’ll run into animation and scaling issues.

When clothes replace body parts, the original parts are just hidden and the clothing mesh includes its own version of that body area.

Equipping clothes is just cloning the mesh into the character and hiding/removing the old one with a button script.

Different poses for shoes/feet are doable just make animations that only key the feet bones. As long as other bones aren’t keyed, it won’t mess up the rest.

-Lmk if you need further help

Thank you for the answer! I would really appreciate if you could link a tutorial for the equipping clothes part because I’m very new to scripting, or maybe if you tried to explain it in more details yourself.

Best beginner video i could fine shows skinned mesh setup parenting to character, perfect to adapt for outfits):

Put this in a Script inside ServerScriptService:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local equipEvent = ReplicatedStorage:WaitForChild("EquipOutfit")

equipEvent.OnServerEvent:Connect(function(player, outfitName)
    local char = player.Character
    if not char then return end

    -- Only remove the old outfit we added before (not the base body!)
    local oldOutfit = char:FindFirstChild("CurrentOutfit")
    if oldOutfit then
        oldOutfit:Destroy()
    end

    -- Grab the new outfit from the Clothes folder
    local clothes = ReplicatedStorage:FindFirstChild("Clothes")
    if not clothes then
        warn("Yo, where's the Clothes folder??")
        return
    end

    local thisOutfit = clothes:FindFirstChild(outfitName)
    if not thisOutfit then
        warn("Can't find outfit called " .. outfitName .. " dude")
        return
    end

    -- Clone it, name it so we can find it later, and slap it on the character
    local newFit = thisOutfit:Clone()
    newFit.Name = "CurrentOutfit"
    newFit.Parent = char

    -- Hide whatever body parts this outfit covers
    -- Change this list depending on the outfit!
    local hideThese = {"UpperTorso", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftLowerArm", "RightLowerArm"}

    for _, name in hideThese do
        local part = char:FindFirstChild(name)
        if part then
            part.Transparency = 1   -- gone but still there for animations
        end
    end

    print(player.Name .. " just put on the " .. outfitName .. " drip 🔥")
end)

The button part (LocalScript in your GUI button)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local equip = ReplicatedStorage:WaitForChild("EquipOutfit")

script.Parent.MouseButton1Click:Connect(function()
    equip:FireServer("CoolDress")  -- change to what you want or keep it
end)

Quick checklist so it actually works:

  • RemoteEvent called EquipOutfit in ReplicatedStorage
  • Folder called Clothes in ReplicatedStorage
  • Inside Clothes: Models named exactly like “CoolDress”, “HoodieSet” or Change it to what you want
  • Each of those Models has your MeshParts with Skin already set up (just like in the video)

Test it in Play mode. Click the button. Outfit should pop on body parts that are covered disappear and your character doesn’t vanish into the void.

If the clothes are floating around weird or not moving with the body that means the rigging in Blender didn’t match the base character exactly. Go back to the video and double check the armature export.

if you get any errors in the output window just paste em and I’ll help you fix it.

3 Likes