Skip to main content
The most important API rule is simple:
Something visible on the ped is not automatically something saved for the character.
Use client APIs for visual/gameplay state. Use server-authorized APIs when an editor or appearance change must persist.

Persistent editor opens

Server: OpenEditor(source, options)

Use this from trusted server code when another resource needs to open a save-capable RCO editor.

Server: OpenWardrobe(source, options?)

Preferred integration for houses, hotels, camps and properties. It always opens saved-outfit/wardrobe mode. Full guide: Wardrobe integrations.

Client: persistent OpenEditor / OpenWardrobe

A client cannot grant itself persistent save authorization. Direct client calls return:
For a deliberately local/visual-only editor:
OpenEditorLocal is not a replacement for the server-authorized persistent flow.

Visual appearance

ApplyAppearance

Applies an RCO snapshot visually. Useful for previews, mannequins and custom peds. It is not a database save.

GetAppearance

Reads the ped’s current visual appearance.
Do not blindly persist a live capture. The ped may be inside an editor, temporarily undressed or carrying a transient gameplay state. Use the server persistence API when you need the canonical character appearance.

ReloadAppearance

Client:
Server:
Both paths request the character’s saved RCO appearance instead of treating the current live ped as authority.

Direct clothing helpers

These helpers are useful for controlled visual integrations. They do not replace the normal tailor/wardrobe save flow.
EquipCategory / UnequipCategory operate on the live ped. If you need a temporary gameplay toggle that should survive streaming/reapply correctly, use Quick Clothing instead.

Dress / undress

RCO exposes a simple visual undress flow for medical, bathing, prison, hotel or other gameplay resources:
Or explicitly:
Behavior:
  • Undress() / SetUndressed(true) remove clothing from the live ped;
  • Dress() / SetUndressed(false) request the saved RCO appearance from the server;
  • this does not overwrite the saved snapshot just because the player was temporarily undressed;
  • compatible Quick Clothing state may be reapplied after the base appearance is restored.
Use Quick Clothing when you want to hide one semantic category such as a hat, coat or gun belt. Use Undress / Dress when your gameplay flow needs the character’s clothing removed as a whole.

Editor state

Useful for resources that should not start another appearance mutation while an RCO editor is active.

Character persistence

GetAppearanceForCharacter(charId, callback)

SetAppearanceForCharacter(charId, snapshot, callback)

charId is the framework character identifier (RSG citizen id / VORP character identifier). Treat it as an opaque identifier. Saving is asynchronous. Wait for the callback before chaining logic that assumes the database write succeeded.

Outfit helpers

Server-side integrations can also use the character’s saved outfit list:
For houses/hotels, opening the built-in wardrobe is usually simpler than rebuilding the outfit UI yourself.

Quick Clothing API

Quick Clothing is the recommended API for temporary radial-menu clothing actions.
ToggleGunBelt() is a named helper for the gunbelt category. Gun holsters use the generic holsters category:
ToggleClosedCoat() is an alias for the logical coat group, which includes open/closed coat variants and coat accessories handled by RCO. Server scripts can use the same semantic state:
See Quick Clothing for all categories, commands, events and failure reasons.

Framework compatibility aliases

RCO keeps selected RSG/VORP compatibility names so existing resources can continue to call known appearance helpers. Those aliases are a compatibility layer, not the recommended API for new integrations. New resources should prefer:
so the integration has the same contract on RSG and VORP.