Skip to content

Run a points system

A points system rewards the people who hang out on your stream and gives them something to spend on fun extras. CroStream keeps every viewer's points in a database on your computer. It has no built-in earning rules, so you decide exactly how points are earned and spent, using triggers and macros. This tutorial sets up the classic version.

What you'll build

  • Viewers earn 5 points every 10 minutes while you are live, lurkers included.
  • !points tells a viewer their balance and watch time.
  • !top posts the five richest viewers in chat.
  • A leaderboard on stream shows the top five.

NightOwl_TV !points

CroStream @NightOwl_TV, you have 1,250 coins and have watched 14h 20m.

Time: about 20 minutes. Level: intermediate.

Before you start

  • CroStream is logged in to Twitch.
  • The viewer database is on: open Viewers in the sidebar, click More → Settings, and check that Keep a viewer database is on. Set Name of your points if you want something other than "points", such as coins. See Viewers.
  • You know triggers and macros, from Your first chat command.

Step 1: Pay viewers for watching

  1. Click Macros, then New macro. Set Name to Pay viewers.
  2. Filter for points, click Give points to everyone watching, and set Amount each to 5. Leave Who on watching, which counts everyone in the chat list, lurkers too. Set Reason to watching; it shows in each viewer's history.
  3. Click Save.
  4. Click Triggers, then New trigger. Set Name to Pay viewers.
  5. Pick On a timer as the Event. Set Every to 10m and leave Only while live on.
  6. Pick the Pay viewers macro and click Save.

Bots and the logins on your ignore list never get points. See Viewers.

Step 2: A !points command

  1. Make a macro called Points.
  2. Filter for look up, click Look up a viewer, and set its Step ID to lookup. Viewer already says {user_login}: the person who typed the command.
  3. Add a Send chat message step:

    @{user}, you have {lookup.points} {lookup.currency} and have watched {lookup.watch_time}.
    

    The {lookup.…} variables come from the Look up a viewer step: the balance, your name for points, and the watch time.

  4. Make a trigger called Points command on Chat command !points, with a User cooldown of 10s, running Points.

Step 3: A !top command

  1. Make a macro called Top.
  2. Add a Top viewers step with the Step ID top. Leave Ranked by on points and How many on 5.
  3. Add a Send chat message step:

    Richest viewers: {top.list}
    

    {top.list} is the ranking on one line, such as 1. NightOwl_TV (1250) · 2. PixelPanda (980). Change the look with Row format and Between rows.

  4. Make a trigger called Top command on Chat command !top, with a Cooldown of 30s, running Top.

The Points macro with a Look up a viewer step (ID lookup) and a Send chat message using {lookup.points}

Step 4: A leaderboard on stream

  1. Open Overlays and pick an overlay you already have in OBS, or make one and add it as in Add an alerts overlay to OBS.
  2. Click Add and pick Leaderboard under Alerts & data.
  3. In the inspector, set Ranked by to Points, Period to All time, How many to 5 and Title to Top coins. Leave Show the numbers on.
  4. Drag it where you want it on the canvas.

Check it works

  1. Chat once from your own account so CroStream has a record of you. Then open Viewers, click your name, and in the Adjust coins box (it is named after your points) choose Add, type 100 and click Add.
  2. Click Test on the Points command trigger. Chat shows your balance.
  3. Click Test on Top command. You lead the list, and the leaderboard on your overlay shows you too.
  4. To check the timer without waiting, set Every to 1m while you are live, then put it back. Each viewer's Ledger tab lists every change with its reason.

Testing never changes balances

Testing a macro does not change anyone's points, so a Test of Pay viewers pays nobody. Add points by hand, or wait for the real timer, to see numbers move.

Troubleshooting

What you see What to do
!points says 0 for everyone Nobody has earned yet. The timer only pays while you are live, every 10 minutes.
Watch time stays at zero CroStream needs Twitch's permission to see who is in your chat. If the Twitch page or a login warning asks you to log in again, do it.
A viewer isn't paid Bots and ignored logins are skipped. Check More → Settings → Ignored viewers on the Viewers page.
!top is empty Nobody has points yet, or every viewer is ignored.

Next steps

  • Let viewers spend points: check the balance with an If on the Look up a viewer result, then use Change points set to subtract. Add logic to a macro shows the If step; Viewers has ready-made recipes.
  • Move points over from StreamElements or Streamlabs with More → Import… on the Viewers page.
  • Points can't be rebuilt if lost. Back them up: Back up and move your setup.