Skip to content

Slots

Slots define where your extension UI renders within the Stripchat interface. Each slot is an iframe managed by the platform. You declare which slots your extension uses in manifest.json under views.slots. The platform validates that every declared slot is allowed for your extension's category.

Slot positions on desktop and mobile (Main, Right Overlay, Movable Overlay)

Available Slots by Extension Category

Games & Fun

Required

Optional

  • None

Important notice for Games & Fun extensions

Either EXTENSION_SLOT_RIGHT_OVERLAY or EXTENSION_SLOT_VIDEO_DECORATIVE_OVERLAY is required for Games & Fun extensions. You can use only one of these two slots.

Sex Toys

Required

Optional

Chat bots

Required

Optional

EXTENSION_SLOT_MAIN_GAME_FUN

The primary slot for Games & Fun extensions. It renders inside the "Send Tip" panel under the "Games & Fun" tab.

This slot has two views:

Preview card — shown in the extension list. Displays the "Extension image", "Extension name", and "Viewer summary" configured in the Extension Platform. The layout is fully controlled by Stripchat.

Games & Fun preview card in the Send Tip panel

Tab view — when the viewer selects your extension, the platform renders your EXTENSION_SLOT_MAIN_GAME_FUN slot HTML page in the content area below the category header.

Games & Fun tab content area

What to put here: game rules and participation UI, tipping controls, interactive challenges, spin wheels, quizzes, leaderboards — anything that drives viewer engagement through clear calls to action and fast feedback loops.

WARNING

This slot can be unmounted at any time (e.g. when the viewer closes the "Send Tip" panel). Do not place core application logic here — use the EXTENSION_SLOT_BACKGROUND slot instead.

EXTENSION_SLOT_MAIN_SEX_TOY

The primary slot for Sex Toys extensions. It works the same way as EXTENSION_SLOT_MAIN_GAME_FUN but appears under the "Sex Toy" tab in the "Send Tip" panel.

Preview card — shown in the extension list. Displays the "Extension image", "Extension name", and "Viewer summary" configured in the Extension Platform. The layout is fully controlled by Stripchat.

Sex Toys preview card in the Send Tip panel

Tab view — when the viewer selects your extension, the platform renders your EXTENSION_SLOT_MAIN_SEX_TOY slot HTML page in the content area below the category header.

Sex Toys tab content area

What to put here: toy connection status, vibration presets, control handover UI, intensity sliders, real-time feedback indicators — anything related to hardware interaction with clear state and model-side controls.

WARNING

This slot can be unmounted at any time (e.g. when the viewer closes the "Send Tip" panel). Do not place core application logic here — use the EXTENSION_SLOT_BACKGROUND slot instead.

EXTENSION_SLOT_RIGHT_OVERLAY

A floating slot located on the right side of the video stream. It is hidden by default and can be opened by clicking the extension icon.

The slot has two states:

  • Collapsed (default) — only the extension icon (uploaded via the "Extension Icon" field in the Extension Platform) is visible over the video stream.
  • Expanded — a panel opens on the right side of the video stream (50% width, 70% height) where the platform renders your HTML page.

EXTENSION_SLOT_RIGHT_OVERLAY slot on the video player

What to put here: the main game interface, interactive elements, real-time feedback, progress bars, animation — anything that requires viewer attention during the stream without opening the "Send Tip" panel.

WARNING

This slot can be unmounted at any time (e.g. when the viewer collapses the overlay). Do not place core application logic here — use the EXTENSION_SLOT_BACKGROUND slot instead.

EXTENSION_SLOT_MOVEABLE_OVERLAY

A draggable overlay on the model's broadcast page, currently available only for Sex Toys extensions. Intended for model-facing controls and feedback.

To use this slot, you must also define a moveableSlot object in the manifest and include an icon.svg in the archive root.

EXTENSION_SLOT_MOVEABLE_OVERLAY placement in the Send Tip panel

Collapsed state

The default state shows your extension icon.svg with a status dot. It cannot be force-expanded by code — only user interaction can trigger expansion.

EXTENSION_SLOT_MOVEABLE_OVERLAY collapsed state examples

Expanded state

When expanded, your HTML page loads into the overlay container:

  • Desktop/Web — constrained to the dimensions defined in moveableSlot (max 450x740 px).
  • Mobile — renders full-viewport.

EXTENSION_SLOT_MOVEABLE_OVERLAY expanded state on model's broadcast page

What to put here: model-facing controls — toy connection state, vibration intensity, control handover buttons, preset selectors, or any UI the model needs during a live broadcast.

WARNING

This slot can be unmounted at any time (e.g. when the model collapses the overlay). Do not place core application logic here — use the EXTENSION_SLOT_BACKGROUND slot instead.

EXTENSION_SLOT_VIDEO_DECORATIVE_OVERLAY

A visual slot that renders on top of the video stream, but behind the EXTENSION_SLOT_RIGHT_OVERLAY and player controls. It becomes visible when the viewer requests activity by using v1.ext.activity.request.

It takes 100% of the video player dimensions. You should make sure your content scales well and works across different aspect ratios, both horizontal and vertical.

videoDecorativeOverlay placement over the video player

What to put here: animations, celebratory effects, gamified feedback — anything that adds fun and excitement to the stream.

This slot is not interactive.

The EXTENSION_SLOT_VIDEO_DECORATIVE_OVERLAY slot does not receive pointer events and should not be used for interactive UI elements. Use the EXTENSION_SLOT_RIGHT_OVERLAY slot for any interactive features instead.

WARNING

This slot can be unmounted at any time. Do not place core application logic here — use the background slot instead.

EXTENSION_SLOT_BACKGROUND

A non-visual slot that runs in a hidden iframe. It does not render any UI to the user.

The EXTENSION_SLOT_BACKGROUND slot is available for all extension categories.

What to put here: long-running orchestration logic — timers, polling, state machines, centralized state management, cross-slot coordination via whisper messages.

Do Not Make Unconditional Backend Requests Here

Unlike other slots, the EXTENSION_SLOT_BACKGROUND slot is loaded automatically and immediately for every viewer who has the extension on their page — no user interaction required. This means that on a popular stream, thousands of viewers can have your EXTENSION_SLOT_BACKGROUND slot running at the same time.

Never call backend actions unconditionally from this slot. Doing so will send a request to your server from every viewer simultaneously, which can overwhelm your backend and cause an outage.

Only trigger backend actions in response to user interactions or meaningful events — never on initialization.