Streamer dashboard

Coin Pusher

The coin pusher is a 3D arcade cabinet sitting on your stream. Viewers spend channel points to drop coins in, the pusher shoves the pile forward, and any coin that falls into the scoring zone pays points back out. The slot slides left and right, so timing the drop is up to the viewer, and the stream's own delay is the built-in difficulty.

Getting started

  1. Make sure channel points are enabled; every coin in the machine is bought with points. The coin pusher's settings live under the Coin pusher tab inside Channel points.
  2. Under Settings, decide what a coin is worth, how many can go in at once, and how many coins the table holds.
  3. Under Coin types, decide which coins can show up: their odds, value multiplier, colour and image.
  4. Under Appearance, pick a cabinet model, a colour theme and a quality level.
  5. Open the OBS widget tab, add the source URL to your streaming software, and turn on browser source hardware acceleration in OBS.

How to play

Viewers insert coins with !coin [count] [type]; both are optional. Leaving out the count inserts your minimum; leaving out the type (or mistyping it) inserts the first type in the Coin types list. The type can be named, or given as the number shown on the Coin types settings page and the value legend (e.g. !coin 1 3 inserts 1 coin of type #3); either works. Coins drop out of the visible insert slot above the table, which slides left and right (set its speed under Settings, or 0 to keep it centred), so viewers just watch the slot and time their drop. Moderators also have !tower [tier] to manually drop a whole tower of coins onto the table.

The cost only ever depends on the count, never on which type is chosen: every coin costs exactly your points-per-coin setting to insert, no matter its type. But when that coin actually scores, its value applies the chosen type's real multiplier, so naming a higher-multiplier type costs the same to insert but can pay that round's time pool more if it makes it in. That's a deliberate high-risk, high-reward choice left in the viewer's hands.

OBS needs hardware acceleration

The coin pusher is a 3D scene. Without hardware acceleration the OBS browser source falls back to software rendering and the widget becomes extremely slow, with no error message at all, so it just looks sluggish. The setting lives under Settings then Advanced in OBS, and OBS has to be restarted afterwards.

If it still feels heavy with acceleration on, check the quality setting under Appearance first; it already defaults to Low, so put it back there if you raised it. Next, pull the frame rate cap down (10–60, default 30): the picture redraws less often, so GPU load drops, while the coin physics still runs at 60 steps per second and payouts are completely unaffected.

The most effective trick of all: make the browser source smaller. The source's own width and height are the resolution the machine is rendered at, so they decide almost all of the graphics load, while stretching the source on the canvas costs nothing. OBS creates browser sources at 800x600, which is already light; if it only started feeling slow after you raised it to 1920x1080, put it back down and scale it up on the canvas instead. The picture gets a little softer, nothing else changes.

The machine has sound: coin drops, clinks, landing in the box, lost coins, towers appearing and collapsing, and the start of a multiplier window. Set the volume on the Appearance tab; 0 mutes it. For the audio to reach your stream, tick "Control audio via OBS" on the browser source so it shows up in the mixer.

Only one machine runs per channel

The server keeps track of every coin, so only one on-stream view can be simulating the table at a time. If the source ends up added twice (say, dropped into two scenes at once), the second one just shows an overlay saying another instance is already running, instead of simulating its own copy or duplicating coins. The live preview inside the dashboard is a separate thing: it plays a local demo animation that never touches the real coins, purely so you can check what the theme looks like.

Where the points go

Every coin that scores pays into the time pool: shared by everyone who inserted a coin within a recent window. It makes no difference who inserted that particular coin, or whether it had an owner at all: coins viewers inserted, coin tower coins, starting coins and coins from the wheel are all treated the same. What you control is the pool window (how many minutes back it reaches) and the split: evenly, by how many coins each person inserted, or weighted towards the most recent inserts.

So the machine is a shared pot: getting your own coin to drop doesn't put those points straight back in your pocket; it puts them back into "whoever has been playing recently", and you are in that group, taking your share by weight with no special treatment. If the pool happens to be empty at that moment (nobody has inserted for a while), that value simply disappears; it is not refunded to you and does not go into the recovery pot.

The scoring zone and lost coins

Coins fall off the whole front edge, but only those that land in the collector box pay out. The box sits right in front of the table and its width is your scoring-zone setting (50% by default), so narrowing the zone narrows the box and makes the machine harder and more tense; at 100% the whole edge counts and almost nothing is ever lost. Coins keep falling into the box or the side chutes until they are out of sight; the points are settled the moment a coin crosses the edge. Everything that misses the box is a lost coin: it can simply disappear, or its value can build up in a recovery pot that comes back to the table, all at once, when your pot rule fires, and that amount leaves the pot.

Bonus rules

Bonus rules occasionally drop something extra onto the table. Each rule is one trigger, one bonus, and a cooldown. The module ships with one rule already turned on (drop a random coin tower every 50 coins inserted channel-wide, 60-second cooldown); delete or change it if it's not what you want:

  • Triggers: a running total of coins inserted channel-wide, a fixed interval in minutes, a chance rolled on every single coin, or the recovery pot reaching a threshold.
  • Bonuses: drop a coin tower, scatter a batch of a specific coin type, start a timed multiplier, or speed up the pusher for a while.

A timed multiplier applies to the moment a coin falls in, not the moment it was inserted. As long as the coin scores while the window is still open, it gets multiplied, which means the whole point is racing to get coins to actually drop before the window closes, not just clicking insert before it ends. On the free plan only 3 bonus rules can be active at once; the rest stay saved but don't run. Pro allows up to 20. The manual "drop it now" button in the dashboard and the moderator command are one-off actions; they don't count towards any rule and ignore rule cooldowns.

Coin types: one appearance, one value

The Coin types tab decides which coins can appear on the table. Each type has four settings: its odds weight (relative, with the real percentage shown next to it), its value multiplier (points per coin = points per coin setting × multiplier), a colour, and an image. The image comes from your Twitch emotes, and animated emotes animate on the coin while transparent backgrounds stay transparent (what shows through is that coin type's colour). Three types ship by default: bronze ×1, silver ×2, gold ×5. The free plan runs the first 3 types, Pro allows up to 20, and anything beyond that is kept but never drawn.

Coin towers and starting coins draw a type per coin, so one tower or one refill can mix colours and values, and viewers can see at a glance which coins are worth chasing. The "specific coin type" bonus drops a whole batch of a single type instead, and coins from the wheel are always the base type (×1).

The first type in the list is a fixed base type: its multiplier is locked at ×1 and it can't be deleted or have its multiplier changed (name, colour and image stay editable). Viewers who insert with !coin and don't name a type (or mistype it) get this one, always worth exactly your points-per-coin setting (×1). Naming any other type in the list applies that type's real multiplier instead (see "How to play" above), plus a rim in the inserter's Twitch chat colour.

Every coin on the table is the same physical size. Coins never carry a name printed on them, but the entrance briefly shows the inserter's name, and both the moment a bonus spawns and the moment a coin actually scores pop up text telling you what happened.

Appearance is two independent choices. The cabinet model decides what the machine looks like (Arcade, Arch, Capsule or Prism), the colour theme decides what colour it is (Classic, Neon, Casino or Pastel), and any model goes with any theme. All four models play exactly the same and share the same physics; only the shell differs, so switching model never makes coins fall faster or slower. You can also put your own image on the backboard. Models and themes other than the defaults, and the backboard image, are Pro features: the free plan shows the default model and the Classic theme, your settings are kept exactly as you left them, and they take effect the moment Pro is back.

Clear and refill

"Clear and refill" in the dashboard wipes every coin still sitting on the table: coins viewers inserted are refunded to whoever put them in, everything else with no owner just disappears, and the table is then refilled with the number of starting coins you configured, laid out in neat rows from front to back, one full layer before a second one starts. This can't be undone; it's meant for after an event, or whenever the table feels too crowded.

Common misconceptions

  • Twitch Affiliate or Partner is required. The coin pusher is a restricted feature, like the other modules here: below that tier the module cannot be switched on and settings cannot be saved. If a channel drops below the tier later, the machine keeps running and "Clear and refill" still works; that is the only way to give viewers back the points they put in.
  • A fuller table doesn't mean more coins score. Anything that falls outside the scoring zone is lost no matter how many coins are on the table; what actually decides the hit rate is how wide you set the zone.
  • Odds weights are relative, not percentages. Two types weighted 60 and 30 show up 60÷90 and 30÷90 of the time, not 60% and 30%; the settings page shows the converted percentage next to each row, so read that.
  • A timed multiplier cares about when the coin drops, not when it was inserted. Between stream delay and the moving slot, a coin can take several seconds to actually fall in; one inserted right before the window closes may simply miss it if it doesn't score in time.
  • Getting your own coin to drop is not the same as getting your points back. Every reward goes to the time pool and is shared by whoever is playing right then; you are in that pool too and take your share by weight. The more people in it, the less each coin is worth to you. If the pool happens to be empty, that value just disappears.
  • A second OBS source doesn't double the coins; it just shows an overlay. Only one view per channel is ever actually simulating the table, so an extra source can't desync into a different result.
  • The coin pusher you see in the dashboard settings page is a local demo, not the real table. Its coins are fake, purely there so you can check the look; it never reads from or writes to whatever is actually running on your OBS scene.
  • Clear and refill only refunds coins viewers inserted; ownerless coins just vanish. Coin towers, bonus coins, starting coins, and coins from the wheel get no refund when you clear the table, since they never belonged to anyone.
  • Coins never show a name. The entrance flashes the inserter's name for a couple of seconds when it drops, but the coin itself only carries a colour, an image and a rim colour; the text that pops up when a coin scores shows only the points, never a name; those points belong to the whole pool. The value legend in the corner numbers and lists every type from the Coin types list in order, worth and all: even a type with zero coins on the table right now still shows up, since it's a reference for "what types exist and what they pay", not a live inventory. It is on by default, and you can turn it off under Appearance.
  • Skipping hardware acceleration doesn't throw an error; it just gets very slow. The coin pusher is a 3D scene, and software rendering can't keep up, so dropped frames or a frozen widget are the expected symptom. Check whether browser source hardware acceleration is on in OBS first.

Settings

The text below is taken from the in-app help, so it stays in sync with the actual interface.

SettingWhat it does
Points per coinThe same both ways: inserting a coin costs this much, and a coin that falls in pays this much back.
Minimum coins per insertUsed when a viewer runs the command without a number.
Maximum coins per insertThe most coins one command can insert.
Coins on the tableInserts are refused once this many coins are still on the table. Higher numbers need a faster machine.
Starting coinsHow many unowned coins to spread on the table when you first enable it, and after a clear and refill.
Payout announcement window (seconds)Payouts within the same window are merged into one chat message. Set 0 to never announce.
Coin pusher custom reward nameWhen a viewer redeems the chosen custom reward, !coin runs automatically, parsing what they typed as the count and coin type.
Slot sweep speedThe slot slides left and right above the table so viewers have to time their drop. Set 0 to keep it centred.
Lost coinsWith the recovery pot, the value of lost coins piles up and comes back to the table when your pot rule fires.
Recovery potBuilt up from lost coins. It only comes back through a bonus rule triggered by the pot, and cannot be edited by hand.
Pool window (minutes)People who inserted a coin within this many minutes share every reward.
How rewards are splitAny remainder from the division goes to the highest-weighted person.
Weight half-life (seconds)An insert loses half of its weight in the pool every time this many seconds pass.
Cooldown (seconds)After this rule fires it will not fire again for this long. 0 means no cooldown.
Coin tower tierPick "Random tier" to draw one using the tier weights.
Coins to reachCounted across the whole channel; the counter resets after it fires.
Interval (minutes)The timer only runs while the widget is on stream.
Chance per coinRolled separately for every single coin inserted.
Pot thresholdOnce the recovery pot reaches this many points it comes back to the table, and that amount leaves the pot.
Backboard imagePick an image from your media library to use as the cabinet backboard.
Show the value legendLists what each kind of coin on the table is worth, in a corner of the widget.
Use chat colour on coin rimsThe rim of a coin takes the inserter's Twitch chat colour.
QualityHigher quality needs a stronger GPU. The default is Low; move it up if the widget already runs smoothly.
Frame rate capHow many times per second the picture redraws (10-60). Lower means less GPU load; physics still runs at 60 steps per second, so results are unaffected.
Sound volumeVolume for coin drops, clinks, box landings, tower collapses and multiplier time; 0 mutes. In OBS, tick “Control audio via OBS” on the browser source to route it through the mixer.
Coin typePick "Random type" to draw one using the odds weights.

Chat commands

These are the default command names; they can be renamed or given aliases in the dashboard.

  • !coin — Insert coins into the coin pusher with channel points (!coin [count] [type]).
  • !tower — Drop a coin tower into the coin pusher (!tower [tier], MOD).

Other notes

  • Inserting coins is mainly triggered by the chat command !coin. It's currently disabled, so viewers typing it in chat won't get a response.
  • Coins fall off the whole front edge, but only the ones inside the scoring zone pay out. Anything else is lost.
  • Every coin that scores pays into the time pool, shared by everyone who inserted a coin in the last few minutes. It makes no difference who inserted that particular coin, or whether it had an owner at all. If nobody is in the pool at that moment, the value simply disappears.
  • A bonus tower drops a whole stack onto the table. Every coin in it draws its own type from Coin types, so one tower can mix colors and values.
  • A manual bonus is a one-off: it does not count towards any rule and ignores rule cooldowns.
  • The coin pusher is a 3D scene. Without hardware acceleration the OBS browser source falls back to software rendering, which is extremely slow and gives you no error at all.
  • Clears every coin still on the table: coins viewers inserted are refunded, the rest just disappear, and then the table is refilled with your starting coins.
  • Coins from the wheel have no owner, so the payout always goes to the pool.
  • The browser source's own width and height are the resolution the machine is rendered at, so they decide almost all of the graphics load; stretching the source on the canvas costs nothing. OBS creates browser sources at 800x600, which is already light; if you raised it to 1920x1080 and it feels slow, put it back down and scale it up on the canvas instead. The picture gets a little softer, nothing else changes.
  • All four cabinets share the same gameplay and physics; only the shell differs. Models other than Arcade need Pro; on the free plan your choice is kept and the widget shows Arcade.
  • Sets the colors and lighting, and combines freely with any cabinet model. Themes other than Classic need Pro.

Other settings

These settings have no additional help text in the dashboard; only their names are listed here.

  • Viewers insert coins with channel points. When the pusher shoves a coin into the scoring zone, the points go back out the way you configured.
  • Coin command isn't enabled
  • Manage commands
  • Coins and inserts
  • Insert slot
  • Scoring zone and losses
  • Scoring zone width
  • Disappear
  • Go to the recovery pot
  • Reward pool
  • Evenly
  • By coins inserted
  • More for recent inserts
  • Bonus rules
  • No bonus rules yet.
  • Add rule
  • Not running on this plan
  • Bonus rule
  • Trigger
  • Bonus
  • Coins
  • Multiplier
  • Duration (seconds)
  • Every N coins inserted channel-wide
  • Every N minutes
  • A chance on every coin inserted
  • Recovery pot reaches a threshold
  • Coin tower
  • Plain coins
  • Timed multiplier
  • Faster pusher
  • Specific coin type
  • Coin tower tiers
  • Name
  • Small tower
  • Medium tower
  • Large tower
  • Giant tower
  • Height (coins)
  • Draw weight
  • Add tier
  • Random tier
  • Manual bonus
  • Drop it now
  • Bonus sent
  • Display and performance
  • Low
  • Medium
  • High
  • Chat messages
  • Default:
  • Reset to default
  • Payout announcement
  • Bonus announcement
  • Timed multiplier starts
  • Cleared and refilled
  • Sent once per window with everything paid out in it. {entries} is the list the server builds, such as "A +300, B +120".
  • Sent when bonus coins drop onto the table.
  • Sent when a timed multiplier starts.
  • Sent when you clear and refill the table and inserted coins are refunded.
  • Payout list
  • Bonus description
  • Count
  • Points per coin (short)
  • Points per coin (Chinese units)
  • Points per coin (Japanese units)
  • Points per coin (with separators)
  • Seconds
  • Turn on hardware acceleration in OBS
  • Open Settings then Advanced in OBS.
  • Turn on "Enable Browser Source Hardware Acceleration".
  • Restart OBS and add the coin pusher source back to your scene.
  • Clear and refill
  • This channel has no coin tower tiers yet. Set them up under Bonus rules in the coin pusher first.
  • Coin types
  • Odds weight
  • Value multiplier
  • Coin color
  • Add coin type
  • Pick an image
  • Clear image
  • Pick an emote
  • Random type
  • Bronze coin
  • Silver coin
  • Gold coin
  • Restore defaults
  • If it still feels slow: shrink the source
  • Cabinet model
  • Arcade
  • Arch
  • Capsule
  • Prism
  • Color theme
  • Classic
  • Neon
  • Casino
  • Pastel