Skip to content

Stick a chatter's emote on your model

The goal

A viewer types !bonk with an emote, say !bonk Kappa, and that emote lands somewhere on your model's head for 15 seconds. Several viewers can pile emotes on at once. A message without an emote gets a friendly hint in chat.

Time: about 10 minutes. Level: beginner.

What you need

  • CroStream connected to VTube Studio, with your model loaded, and logged in to Twitch.
  • The Load custom images as items permission, granted on the VTube Studio page's Permissions card (how). Emotes are custom images.

Step 1: Set a head anchor

  1. Open Integrations → VTube Studio.
  2. In the Anchors card, click the head suggestion.
  3. Click Pick in VTube Studio. In VTube Studio, select the part that covers most of the head (often the face or the front hair) and confirm.

With Position set to random (step 2), emotes land anywhere on the anchor's part, so the exact spot doesn't matter and picking the part is the simplest way to set it. A head anchor you've already clicked works just as well.

Step 2: Build the macro

  1. Click Macros, then New macro. Set Name to Bonk emote.
  2. Filter the palette for if and click If (under Tools). Click Choose what to check…, choose {args}, then is empty.
  3. Under Then, add a Send chat message step (under Twitch): @{user} add an emote, like !bonk Kappa. Then add a Stop step (under Tools) set to Succeed.
  4. Below the If (not inside it), add Put on a prop (filter for prop) and fill it in:

    Setting Value Why
    Image from chat_emote The emote from the chatter's own message.
    Which chat emote first The first emote they typed.
    Anchor head The anchor from step 1.
    Size 0.08 Emotes look best small.
    Position random Somewhere different every time.
    For how long 15s
    Replace an earlier prop Off So emotes pile up instead of replacing each other.
  5. Click Save.

Step 3: Add the trigger

  1. Click Triggers, then New trigger. Set Name to !bonk.
  2. Under When, pick Chat command and type !bonk into Command.
  3. Under Who & how often, set User cooldown to 30s, so each viewer can bonk you twice a minute at most.
  4. Under Then run, pick Bonk emote, then click Save.

Check it works

Try it in your own chat (your own commands skip cooldowns):

  1. Type !bonk Kappa. Kappa lands somewhere on your head and comes off 15 seconds later.
  2. Type !bonk Kappa a few more times: the emotes pile up in different spots.
  3. Type just !bonk. The hint appears in chat and nothing goes on.
  4. Type !bonk hello (no emote). The prop step fails with The chat message that ran this macro has no emotes., which you'll see in Activity.

Why not the Test button?

A Test run has no text after the command, so {args} is empty: the If step sends the hint and stops before the prop. Typing the command in chat is the real test here.

Variables used

Variable Becomes
{user} The chatter's display name.
{args} Everything after !bonk, such as Kappa. Empty when they typed only !bonk.

Make it yours

  • Safety first. Viewers choose these images. To see each new emote before it shows on stream, turn on Ask in VTube Studio first: VTube Studio asks you with a small popup, and once you've allowed an emote it never asks about that one again. Keep the macro's Timeout at least 30s so there's time to answer.
  • The most-spammed emote wins. Set Which chat emote to most, and !bonk LUL LUL Kappa puts LUL on.
  • Bonk the forehead. Click a forehead anchor on your model and use it with Position auto for an emote that lands on exactly the same spot every time.

Troubleshooting

What you see What to do
The chat message that ran this macro has no emotes. The chatter typed no Twitch emote. Emotes from browser extensions (such as 7TV or BetterTTV) aren't Twitch emotes, so Twitch doesn't report them.
VTube Studio hasn't allowed CroStream to load images Grant Load custom images as items on the Permissions card.
VTube Studio's scene is full of items. Remove some first. Too many emotes at once. Shorten For how long, or raise the user cooldown. Remove CroStream's items in the Model card clears them.
Emotes all land in the same place Position is auto or center. Set it to random.

Every image source: Props and anchors. More fixes in Troubleshooting.