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.
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.
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.
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.
A bonus round: while it runs, everything viewers set off counts for more.
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.
A countdown your viewers extend by interacting.
Loading…
A like target that drains if viewers stop tapping.
Loading…
Segments that run actions. Spin one from here, or give it a gift and let the room spin it.
Loading…
These are the overlay’s own settings - the same ones under Overlays → Wheel of Actions → Customize. Changing them here changes them there.
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.
Drop points into chat for viewers to claim.
Loading…
Set a target and a clock. Your viewers have until it runs out to get there.
Add the Challenge overlay from the Overlays gallery to put this on stream.
Each gift is worth less than the one before it, so being first actually matters.
What the next qualifying gift is worth.
Build your own game integrations and bots against the local websocket.
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']
}));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:
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 authLivenessGET /api/statusno authSessions and connected clientsGET /api/gifts?uniqueId=no authGift catalogue for a roomPOST /api/connecttokenConnect to an accountPOST /api/disconnecttokenDisconnectPOST /api/simulatetokenInject a fake eventPOST /api/actions/exectokenRun one action