> ## 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.

# API и события

> Публичные интеграции RCO Appearance: редакторы, внешность, одежда, dress/undress, wardrobe и Quick Clothing.

Главное правило: **визуальное изменение ped не означает автоматическое сохранение персонажа**.

## Постоянные редакторы

Вызывайте из доверенного server-кода:

```lua theme={"dark"}
exports['rco-appearance']:OpenEditor(source, { mode = 'barber' })
exports['rco-appearance']:OpenWardrobe(source)
```

Client не может сам выдать себе право на сохранение: постоянные client-вызовы возвращают `false, 'server_authorization_required'`. `OpenEditorLocal(options)` предназначен только для локального/визуального режима.

## Визуальная внешность

```lua theme={"dark"}
exports['rco-appearance']:ApplyAppearance(snapshot)
local snapshot = exports['rco-appearance']:GetAppearance(ped)
exports['rco-appearance']:ReloadAppearance()
```

Server:

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

`ApplyAppearance` не является сохранением в БД.

## Helpers одежды

```lua theme={"dark"}
local item = exports['rco-appearance']:GetEquipped('hats')
exports['rco-appearance']:EquipCategory('hats', itemData)
exports['rco-appearance']:UnequipCategory('hats')
```

## Dress / Undress

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

`Undress` визуально снимает одежду. `Dress` заново запрашивает сохранённую RCO-внешность. Временное раздевание не перезаписывает сохранённый snapshot.

## Состояние редактора

```lua theme={"dark"}
local open = exports['rco-appearance']:IsEditorOpen()
```

## Persistence / outfits

```lua theme={"dark"}
exports['rco-appearance']:GetAppearanceForCharacter(charId, function(snapshot, err) end)
exports['rco-appearance']:SetAppearanceForCharacter(charId, snapshot, function(ok, err) end)
exports['rco-appearance']:ListOutfits(source, function(outfits, err) end)
```

## Quick Clothing

```lua theme={"dark"}
exports['rco-appearance']:ToggleClothing('holsters')
exports['rco-appearance']:SetClothingVisible('coat', false)
exports['rco-appearance']:ToggleSleeves()
exports['rco-appearance']:SetSleeves('rolled')
exports['rco-appearance']:ToggleCollar()
exports['rco-appearance']:SetCollar('open')
exports['rco-appearance']:TogglePantsTuck()
exports['rco-appearance']:SetPantsTucked(true)
exports['rco-appearance']:ToggleGunBelt()
exports['rco-appearance']:ToggleClosedCoat()
```

Для gun holsters используйте категорию `holsters`. `ToggleGunBelt()` — helper для `gunbelt`, `ToggleClosedCoat()` — alias логической группы `coat`.

Server:

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