StreamVibe/Tools
FREELogin

Win Widget

A win/loss counter to keep on top of the game. Same numbers as the Score Counter overlay, the score hotkeys and any Control-a-goal action.

Counter
🏵 LOSE 🏵
🏵 WIN 🏵
No hotkeys yet - Setup → Hotkeys → Score counter keys.

Reset Counter files a session here.

Pop out opens it in a small window - in the Windows app it stays on top of the game. Click a number to type one in. Reset Counter files the session under the history and starts from zero. To move the numbers from viewers, put a Control a goal action on a gift, aimed at Score Counter (top) for wins or (bottom) for losses; the keys come from Setup → Hotkeys.

Auto Clicker

One spot clicked on repeat, or a queue of positions clicked in turn - left, right or middle, single or double. F6 starts, F7 stops, F8 toggles while it is open.

Clicker
Click interval
hours minutes seconds milliseconds
Click repeat
Click position
X Y
Click options
Mouse buttonClick type
Clicks are sent from the Windows app - open this there.

One spot clicks wherever the pointer is (or a fixed X/Y) every interval, forever or N times. Queue runs the list top to bottom with a pause after each and starts over for every repeat (0 = until stopped). Pick gives you three seconds to put the pointer on the spot, then reads it. Pop out keeps it on top of the game in the Windows app. Settings are kept on this PC.

Multiplier

A bonus round: while it runs, everything viewers set off counts for more.

Now
×1
0:00
Nothing is multiplied right now.
How it lands

A multiplier repeats whatever a trigger does, so it fits every action without any setting of its own: a gift that sends 10 soldiers sends 20 on x2, points and subathon seconds double, and a keystroke is pressed twice. Gift combos still count on top, up to the engine's own cap.

To let viewers start one, add the Start the multiplier action to an event under Actions & Events and pick the multiplier and the seconds there. To put it on stream, add the Multiplier overlay under Overlays and paste its link into OBS as a browser source.

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 Actions

Segments that run actions. Spin one from here, or give it a gift and let the room spin it.

Settings

Loading…

These are the overlay’s own settings - the same ones under Overlays → Wheel of Actions → Customize. Changing them here changes them there.

Wheels

Loading…

The name is what the overlay writes above the cards, so call a wheel whatever you like and the stream sees it. A gift here makes an action and an event for you, and they sit on the Actions page like any other - open them there to add a cooldown or limit who can spin. A wheel switched off is skipped, however it is set off.

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