StreamVibe/Tools
FREELogin

Subathon Timer

A countdown your viewers extend by interacting.

Clock
00:00:00

Loading…

Likeathon

A like target that drains if viewers stop tapping.

Loading…

Wheel of Fortune

Viewers spin for a prize you decide.

Add a segment

Loading…

Points Drop

Drop points into chat for viewers to claim.

Loading…

Challenge

Set a target and a clock. Your viewers have until it runs out to get there.

Now
0 / 1,000
Setup

Add the Challenge overlay from the Overlays gallery to put this on stream.

Halving

Each gift is worth less than the one before it, so being first actually matters.

Now
×1.000

What the next qualifying gift is worth.

The curve
×1.00
×0.50
×0.25
×0.13
×0.13
×0.13

Event API

Build your own game integrations and bots against the local websocket.

The desktop app is not running, so the local API is not listening. Everything below still describes the interface your plugin should target.
Connect

Every livestream event arrives as {"event": "...", "data": {...}}. The shape only ever changes additively, so a plugin written today keeps working.

const socket = new WebSocket('ws://127.0.0.1:21213/?service=MyMod&version=1.0');

socket.onmessage = ({ data }) => {
  const { event, data: payload } = JSON.parse(data);

  if (event === 'gift') {
    console.log(payload.uniqueId, payload.giftName, payload.repeatCount);
  }
};

// Optional: only receive what you care about.
socket.onopen = () => socket.send(JSON.stringify({
  action: 'subscribe',
  events: ['gift', 'chat']
}));
Events you can receive
chatgiftmemberfollowsharelikeroomUsersubscribeemoteenvelopequestionNewliveIntrolinkMicBattlelinkMicArmiesbattleUsersbattleUpdatebattleStartbattleEndbattleTaskbattlePowerUpbattleWindowhourlyRankinRoomBannerstreamEndconnecteddisconnected
Expose your own actions

A tool that answers these four endpoints on port 8832 shows up directly in the action editor, so creators can pick your actions without any extra setup.

GET  http://127.0.0.1:8832/api/app/info
GET  http://127.0.0.1:8832/api/features/categories
GET  http://127.0.0.1:8832/api/features/actions?categoryId=...
POST http://127.0.0.1:8832/api/features/actions/exec

The exec call carries a triggerTypeId telling you what fired it:

6 = Viewer joins13 = First activity of a viewer1 = Viewer shares the stream9 = New follower10 = New subscriber7 = Viewer sends likes11 = Any chat message2 = Chat command3 = Gift worth at least N coins4 = A specific gift12 = Subscriber emote5 = Fan club sticker8 = TikTok Shop purchase
Control API

Read-only status is open to any local process on http://127.0.0.1:21212/ — useful for asking whether the creator is live. Anything that changes state needs the session token, so a random web page cannot drive the app.

GET /api/healthno authLiveness
GET /api/statusno authSessions and connected clients
GET /api/gifts?uniqueId=no authGift catalogue for a room
POST /api/connecttokenConnect to an account
POST /api/disconnecttokenDisconnect
POST /api/simulatetokenInject a fake event
POST /api/actions/exectokenRun one action