Skip to main content
Quick Clothing is for temporary gameplay changes: take a hat off, hide holsters, remove a gun belt, roll sleeves, tuck pants into boots, remove a coat and put it back later. It is deliberately separate from the saved appearance. A radial menu should not rewrite the character’s wardrobe every time the player takes one item off.

Available visibility categories

The category name is semantic. For example:
  • hat groups hats, hat accessories, hatbands and headwear;
  • neckwear groups neckwear, neckties, neckerchiefs and necklaces;
  • gunbelt groups gun belts and gun-belt accessories;
  • holsters groups left/right/center/crossdraw/knife/quiver holster components;
  • coat groups open/closed coats and coat accessories.

Available transforms

Quick Clothing also exposes transforms that change a supported MP wearable state instead of hiding the garment: RCO resolves the real wearable state exposed by the current garment. Your integration should not hardcode RDR2 wearable-state hashes.

Built-in commands

Every visibility category above has a command with the same name:
Transforms/aliases:
For a basic radial menu, calling a command is valid:
For programmatic integrations, prefer exports because you get a success value and failure reason.

Client exports

Generic visibility

Sleeves and collar

Pants tuck

false clears the temporary tuck transform and restores the base garment state.

Named radial helpers

ToggleGunBelt() is a convenience alias for ToggleClothing('gunbelt'). Gun holsters do not need a separate hardcoded helper; use:
ToggleClosedCoat() toggles the logical coat group. RCO handles the coat/closed-coat/accessory composition behind that group.

State helpers

Local client events

If your radial/menu system is event-based:
These are local client events (AddEventHandler), not network events.

Server exports

Server-side resources such as medical/job systems can change the same semantic state without inventing their own client protocol:

Clothing animations

Where a safe native animation exists, Quick Clothing plays a short contextual gesture before applying the visual change. The animation is presentation only: composition validation and the final clothing mutation remain RCO-controlled. If the animation dictionary cannot load, the clothing state is not allowed to corrupt the saved appearance just to force the animation.

Why some combinations are blocked

Quick Clothing is intentionally conservative. If removing one item would expose an invalid body composition, RCO returns a reason instead of forcing the change. Common reasons include:
Treat the reason as a normal rejected action, not as a crash condition.

NPC clothing behavior

NPC clothing needs stricter rules because some meshes carry body-alpha requirements that do not behave like normal MP shop items. RCO allows safe accessory-style toggles through the NPC pipeline, but structural NPC categories are intentionally protected:
If removing one of those NPC garments could leave the torso/legs invisible, Quick Clothing refuses the action instead of guessing a body state. Sleeves, collar and pants-tuck transforms are also MP wearable-state features. RCO does not invent those transforms for an NPC mesh that does not expose the same semantics.

Editor, wardrobe and /reloadskin

Quick Clothing state is semantic and temporary. When the player opens Creator, a tailor, barber or wardrobe, RCO works from the real base appearance, not a snapshot contaminated by temporarily hidden clothing. After the editor closes, compatible toggles are revalidated and reapplied. Example:
If the new garment no longer supports a previous transform such as rolled sleeves, only that invalid transform is cleared.

OneSync behavior

Quick Clothing replicates a small semantic state, not full appearance snapshots or clothing hashes:
The server deduplicates equivalent state and protects the client network entry point from machine-speed event floods. Internal server exports are not artificially throttled like an untrusted client NetEvent.

Need the whole character undressed?

Quick Clothing is category-based. For a medical/bathing/prison flow that needs to remove clothing as a whole, use:
See API & events.