> ## Documentation Index
> Fetch the complete documentation index at: https://rust-co.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Clothing

> Comandos, exports e events para roupas temporárias, gunbelt/holsters, pants tuck, sleeves, collar e radial menus.

Quick Clothing serve para mudanças **temporárias de gameplay** sem reescrever o outfit salvo.

## Categorias de visibilidade

```text theme={"dark"}
hat
hairaccessories
mask
eyewear
neckwear
shirt
vest
coat
gloves
gauntlets
bracelets
rings
pants
boots
chaps
spats
gunbelt
belt
holsters
loadout
suspenders
```

Exemplos de agrupamento:

* `hat`: hats, hat accessories, hatbands e headwear;
* `neckwear`: neckwear, neckties, neckerchiefs e necklaces;
* `gunbelt`: gun belts e acessórios;
* `holsters`: left/right/center/crossdraw/knife/quiver holsters;
* `coat`: coats open/closed e coat accessories.

## Transforms

| Transform    | Valores                 |
| ------------ | ----------------------- |
| `sleeves`    | `rolled`, `full`        |
| `collar`     | `open`, `closed`        |
| `pants_tuck` | `tucked` ou limpar/base |

Esses transforms dependem de wearable state MP real; o radial não deve hardcodar hashes do RDR2.

## Commands

```text theme={"dark"}
/hat /hairaccessories /mask /eyewear /neckwear
/shirt /vest /coat /gloves /gauntlets /bracelets /rings
/pants /boots /chaps /spats
/gunbelt /belt /holsters /loadout /suspenders
/sleeves /collar /tuck /tuckpants /closedcoat
```

Um radial simples pode usar:

```lua theme={"dark"}
ExecuteCommand('holsters')
```

Mas export é melhor quando você precisa do retorno `ok, reason`.

## Client exports

```lua theme={"dark"}
local ok, reason = exports['rco-appearance']:ToggleClothing('hat')
local ok, reason = exports['rco-appearance']:ToggleClothing('holsters')
local ok, reason = exports['rco-appearance']:SetClothingVisible('coat', false)

local ok, reason = exports['rco-appearance']:ToggleSleeves()
local ok, reason = exports['rco-appearance']:SetSleeves('rolled')

local ok, reason = exports['rco-appearance']:ToggleCollar()
local ok, reason = exports['rco-appearance']:SetCollar('open')

local ok, reason = exports['rco-appearance']:TogglePantsTuck()
local ok, reason = exports['rco-appearance']:SetPantsTucked(true)
local ok, reason = exports['rco-appearance']:SetPantsTucked(false)

local ok, reason = exports['rco-appearance']:ToggleGunBelt()
local ok, reason = exports['rco-appearance']:ToggleClosedCoat()

local ok, reason = exports['rco-appearance']:ResetClothingToggles()
local state = exports['rco-appearance']:GetClothingToggleState()
local visible = exports['rco-appearance']:IsClothingVisible('hat')
```

`ToggleGunBelt()` equivale ao grupo `gunbelt`.

Para gun holsters:

```lua theme={"dark"}
exports['rco-appearance']:ToggleClothing('holsters')
```

`ToggleClosedCoat()` é um alias do grupo lógico `coat`.

## Local client events

```lua theme={"dark"}
TriggerEvent('rco-appearance:client:ToggleClothing', 'hat')
TriggerEvent('rco-appearance:client:SetClothingVisible', 'holsters', false)
TriggerEvent('rco-appearance:client:ToggleSleeves')
TriggerEvent('rco-appearance:client:SetSleeves', 'rolled')
TriggerEvent('rco-appearance:client:ToggleCollar')
TriggerEvent('rco-appearance:client:SetCollar', 'open')
TriggerEvent('rco-appearance:client:TogglePantsTuck')
TriggerEvent('rco-appearance:client:SetPantsTucked', true)
TriggerEvent('rco-appearance:client:ToggleGunBelt')
TriggerEvent('rco-appearance:client:ToggleClosedCoat')
TriggerEvent('rco-appearance:client:ResetClothingToggles')
```

São events **locais client-side**, não network events.

## Server exports

```lua theme={"dark"}
local state = exports['rco-appearance']:GetPlayerClothingToggleState(source)
local ok, reason = exports['rco-appearance']:SetPlayerClothingVisible(source, 'hat', false)
local ok, reason = exports['rco-appearance']:TogglePlayerClothing(source, 'holsters')
local ok, reason = exports['rco-appearance']:SetPlayerClothingTransform(source, 'sleeves', 'rolled')
local ok, reason = exports['rco-appearance']:SetPlayerClothingTransform(source, 'pants_tuck', 'tucked')
local ok, reason = exports['rco-appearance']:ResetPlayerClothingToggles(source)
```

## Animações

Quando existe uma animação nativa segura, o RCO toca um gesto curto antes da mudança visual. A animação é apresentação; validação/composição continuam sendo controladas pelo RCO.

## Por que algumas ações são bloqueadas

O resolver é conservador. Se a mudança pode quebrar a composição, a ação é recusada com um motivo.

Motivos comuns incluem:

```text theme={"dark"}
invalid_category
invalid_argument
invalid_transform
no_component
blocked_by_apron
blocked_by_boots
blocked_by_cape
blocked_by_chaps
blocked_by_cloak
blocked_by_coat
blocked_by_dress
blocked_by_gauntlets
blocked_by_heavy_coat
blocked_by_knickers
blocked_by_overalls
blocked_by_poncho
blocked_by_shawl
blocked_by_skirt
blocked_by_spats
blocked_by_spurs
blocked_by_stockings
blocked_by_suspenders
blocked_by_unionsuit
blocked_by_vest
requires_boots
unsupported
unsupported_npc_clothing
unknown_body_state
unsupported_alpha_transition
editor_open
dead
busy
apply_failed
rollback_failed
```

## NPC clothing

NPC clothing precisa de regras mais rígidas por causa do body alpha.

Acessórios que podem ser removidos com segurança usam o pipeline NPC, mas categorias estruturais NPC ficam protegidas:

```text theme={"dark"}
shirt
vest
coat
pants
boots
chaps
```

Se remover uma dessas peças puder deixar torso/pernas invisíveis, o RCO recusa em vez de inventar um alpha.

`sleeves`, `collar` e `pants_tuck` também são transforms de wearable state MP e não são inventados para meshes NPC incompatíveis.

## Tailor, barber, wardrobe e `/reloadskin`

O estado Quick Clothing é temporário. Ao abrir editor, o RCO trabalha sobre a aparência base real. Depois de Save/Cancel, os toggles compatíveis são revalidados e reaplicados.

## OneSync

O State Bag replica **estado semântico**, não snapshot/hash completo:

```lua theme={"dark"}
{
    hidden = { hat = true, holsters = true, gunbelt = true },
    transforms = { sleeves = 'rolled', pants_tuck = 'tucked' }
}
```

Estados iguais são deduplicados e a entrada de rede client-side possui proteção contra flood.

## Tirar a roupa inteira

Para medical/bathing/prison, use:

```lua theme={"dark"}
exports['rco-appearance']:Undress()
exports['rco-appearance']:Dress()
```

Veja [API & events](/pt-BR/rco-appearance/exports#dress-undress).
